@simpleangularcontrols/sac-bootstrap4 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 (350) hide show
  1. package/README.md +18 -0
  2. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js +3279 -0
  3. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js.map +1 -0
  4. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js +2 -0
  5. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js.map +1 -0
  6. package/components/browser/browser.d.ts +45 -0
  7. package/components/browser/browser.module.d.ts +2 -0
  8. package/components/browser/browser.module.ngfactory.d.ts +3 -0
  9. package/components/browser/browser.ngfactory.d.ts +1 -0
  10. package/controls/buttons/button.d.ts +8 -0
  11. package/controls/buttons/button.module.d.ts +2 -0
  12. package/controls/buttons/button.module.ngfactory.d.ts +3 -0
  13. package/controls/buttons/button.ngfactory.d.ts +1 -0
  14. package/controls/checkbox/checkbox.d.ts +14 -0
  15. package/controls/checkbox/checkbox.module.d.ts +2 -0
  16. package/controls/checkbox/checkbox.module.ngfactory.d.ts +3 -0
  17. package/controls/checkbox/checkbox.ngfactory.d.ts +1 -0
  18. package/controls/checkbox/checkbox.scss.ngstyle.d.ts +1 -0
  19. package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts +1 -0
  20. package/controls/checkbox/radiobutton.d.ts +12 -0
  21. package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -0
  22. package/controls/checkbox/radiobutton.scss.ngstyle.d.ts +1 -0
  23. package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts +1 -0
  24. package/controls/checkbox/radiobuttons.d.ts +14 -0
  25. package/controls/checkbox/radiobuttons.ngfactory.d.ts +1 -0
  26. package/controls/confirm/confirm.d.ts +6 -0
  27. package/controls/confirm/confirm.module.d.ts +11 -0
  28. package/controls/confirm/confirm.module.ngfactory.d.ts +3 -0
  29. package/controls/confirm/confirm.ngfactory.d.ts +1 -0
  30. package/controls/confirm/confirm.service.d.ts +54 -0
  31. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -0
  32. package/controls/contextmenu/contextmenu.d.ts +16 -0
  33. package/controls/contextmenu/contextmenu.module.d.ts +2 -0
  34. package/controls/contextmenu/contextmenu.module.ngfactory.d.ts +3 -0
  35. package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -0
  36. package/controls/contextmenu/contextmenuanchor.d.ts +12 -0
  37. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -0
  38. package/controls/contextmenu/contextmenucontainer.d.ts +12 -0
  39. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -0
  40. package/controls/contextmenu/contextmenuitembutton.d.ts +11 -0
  41. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -0
  42. package/controls/contextmenu/contextmenuitemsplitter.d.ts +6 -0
  43. package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts +1 -0
  44. package/controls/datetime/date.d.ts +15 -0
  45. package/controls/datetime/date.ngfactory.d.ts +1 -0
  46. package/controls/datetime/dateselector.d.ts +6 -0
  47. package/controls/datetime/dateselector.ngfactory.d.ts +1 -0
  48. package/controls/datetime/datetime.d.ts +15 -0
  49. package/controls/datetime/datetime.module.d.ts +2 -0
  50. package/controls/datetime/datetime.module.ngfactory.d.ts +3 -0
  51. package/controls/datetime/datetime.ngfactory.d.ts +1 -0
  52. package/controls/datetime/time.d.ts +15 -0
  53. package/controls/datetime/time.ngfactory.d.ts +1 -0
  54. package/controls/dialog/dialog.d.ts +25 -0
  55. package/controls/dialog/dialog.module.d.ts +2 -0
  56. package/controls/dialog/dialog.module.ngfactory.d.ts +3 -0
  57. package/controls/dialog/dialog.ngfactory.d.ts +1 -0
  58. package/controls/form/form.d.ts +25 -0
  59. package/controls/form/form.module.d.ts +2 -0
  60. package/controls/form/form.module.ngfactory.d.ts +3 -0
  61. package/controls/form/form.ngfactory.d.ts +1 -0
  62. package/controls/form/inheritform.directive.d.ts +47 -0
  63. package/controls/form/inheritform.directive.ngfactory.d.ts +1 -0
  64. package/controls/grid/grid.d.ts +20 -0
  65. package/controls/grid/grid.module.d.ts +2 -0
  66. package/controls/grid/grid.module.ngfactory.d.ts +3 -0
  67. package/controls/grid/grid.ngfactory.d.ts +1 -0
  68. package/controls/grid/gridbutton.d.ts +19 -0
  69. package/controls/grid/gridbutton.ngfactory.d.ts +1 -0
  70. package/controls/grid/gridcolumn.d.ts +14 -0
  71. package/controls/grid/gridcolumn.ngfactory.d.ts +1 -0
  72. package/controls/grid/gridcolumnaction.d.ts +14 -0
  73. package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -0
  74. package/controls/grid/gridimage.d.ts +11 -0
  75. package/controls/grid/gridimage.ngfactory.d.ts +1 -0
  76. package/controls/grid/paging.d.ts +12 -0
  77. package/controls/grid/paging.ngfactory.d.ts +1 -0
  78. package/controls/input/input.d.ts +14 -0
  79. package/controls/input/input.module.d.ts +2 -0
  80. package/controls/input/input.module.ngfactory.d.ts +3 -0
  81. package/controls/input/input.ngfactory.d.ts +1 -0
  82. package/controls/input/inputarea.d.ts +14 -0
  83. package/controls/input/inputarea.ngfactory.d.ts +1 -0
  84. package/controls/input/inputcurrency.d.ts +14 -0
  85. package/controls/input/inputcurrency.ngfactory.d.ts +1 -0
  86. package/controls/input/inputdecimal.d.ts +14 -0
  87. package/controls/input/inputdecimal.ngfactory.d.ts +1 -0
  88. package/controls/input/inputemail.d.ts +14 -0
  89. package/controls/input/inputemail.ngfactory.d.ts +1 -0
  90. package/controls/input/inputinteger.d.ts +14 -0
  91. package/controls/input/inputinteger.ngfactory.d.ts +1 -0
  92. package/controls/input/inputpassword.d.ts +14 -0
  93. package/controls/input/inputpassword.ngfactory.d.ts +1 -0
  94. package/controls/input/inputsearch.d.ts +14 -0
  95. package/controls/input/inputsearch.ngfactory.d.ts +1 -0
  96. package/controls/layout/formlayout.directive.d.ts +3 -0
  97. package/controls/layout/formlayout.directive.ngfactory.d.ts +1 -0
  98. package/controls/layout/layout.module.d.ts +2 -0
  99. package/controls/layout/layout.module.ngfactory.d.ts +3 -0
  100. package/controls/layout/tocontrolheight.pipe.d.ts +9 -0
  101. package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts +1 -0
  102. package/controls/layout/tocontrolwidthcss.pipe.d.ts +16 -0
  103. package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +1 -0
  104. package/controls/layout/tolabelheight.pipe.d.ts +9 -0
  105. package/controls/layout/tolabelheight.pipe.ngfactory.d.ts +1 -0
  106. package/controls/layout/tolabelwidthcss.pipe.d.ts +10 -0
  107. package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +1 -0
  108. package/controls/list/dropdown.d.ts +28 -0
  109. package/controls/list/dropdown.module.d.ts +2 -0
  110. package/controls/list/dropdown.module.ngfactory.d.ts +3 -0
  111. package/controls/list/dropdown.ngfactory.d.ts +1 -0
  112. package/controls/list/list.module.d.ts +2 -0
  113. package/controls/list/list.module.ngfactory.d.ts +3 -0
  114. package/controls/list/listbox.d.ts +26 -0
  115. package/controls/list/listbox.ngfactory.d.ts +1 -0
  116. package/controls/multilanguage/multilanguage.module.d.ts +2 -0
  117. package/controls/multilanguage/multilanguage.module.ngfactory.d.ts +3 -0
  118. package/controls/multilanguage/multilanguageinput.d.ts +18 -0
  119. package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +1 -0
  120. package/controls/multilanguage/multilanguageinputarea.d.ts +18 -0
  121. package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +1 -0
  122. package/controls/multilanguage/multilanguagemenu.d.ts +16 -0
  123. package/controls/multilanguage/multilanguagemenu.ngfactory.d.ts +1 -0
  124. package/controls/multilanguage/multilanguagemenuanchor.d.ts +12 -0
  125. package/controls/multilanguage/multilanguagemenuanchor.ngfactory.d.ts +1 -0
  126. package/controls/multilanguage/multilanguagemenucontainer.d.ts +12 -0
  127. package/controls/multilanguage/multilanguagemenucontainer.ngfactory.d.ts +1 -0
  128. package/controls/multilanguage/multilanguagemenuitembutton.d.ts +11 -0
  129. package/controls/multilanguage/multilanguagemenuitembutton.ngfactory.d.ts +1 -0
  130. package/controls/static/formcontainer.d.ts +25 -0
  131. package/controls/static/formcontainer.ngfactory.d.ts +1 -0
  132. package/controls/static/staticlabel.d.ts +14 -0
  133. package/controls/static/staticlabel.module.d.ts +2 -0
  134. package/controls/static/staticlabel.module.ngfactory.d.ts +3 -0
  135. package/controls/static/staticlabel.ngfactory.d.ts +1 -0
  136. package/controls/tabs/tab.d.ts +17 -0
  137. package/controls/tabs/tab.ngfactory.d.ts +1 -0
  138. package/controls/tabs/tabitem.d.ts +6 -0
  139. package/controls/tabs/tabitem.ngfactory.d.ts +1 -0
  140. package/controls/tabs/tabs.module.d.ts +2 -0
  141. package/controls/tabs/tabs.module.ngfactory.d.ts +3 -0
  142. package/controls/tinymce/tinymce.d.ts +20 -0
  143. package/controls/tinymce/tinymce.module.d.ts +2 -0
  144. package/controls/tinymce/tinymce.module.ngfactory.d.ts +3 -0
  145. package/controls/tinymce/tinymce.ngfactory.d.ts +1 -0
  146. package/controls/tinymce/tinymce.scss.ngstyle.d.ts +1 -0
  147. package/controls/tinymce/tinymce.scss.shim.ngstyle.d.ts +1 -0
  148. package/controls/upload/dropzone.scss.ngstyle.d.ts +1 -0
  149. package/controls/upload/dropzone.scss.shim.ngstyle.d.ts +1 -0
  150. package/controls/upload/dropzonemultiple.d.ts +21 -0
  151. package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -0
  152. package/controls/upload/dropzonesingle.d.ts +21 -0
  153. package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -0
  154. package/controls/upload/upload.d.ts +17 -0
  155. package/controls/upload/upload.module.d.ts +2 -0
  156. package/controls/upload/upload.module.ngfactory.d.ts +3 -0
  157. package/controls/upload/upload.ngfactory.d.ts +1 -0
  158. package/controls/upload/upload.scss.ngstyle.d.ts +1 -0
  159. package/controls/upload/upload.scss.shim.ngstyle.d.ts +1 -0
  160. package/controls/upload/uploadmultiple.d.ts +17 -0
  161. package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -0
  162. package/controls/validation/validationsummary.d.ts +14 -0
  163. package/controls/validation/validationsummary.module.d.ts +2 -0
  164. package/controls/validation/validationsummary.module.ngfactory.d.ts +3 -0
  165. package/controls/validation/validationsummary.ngfactory.d.ts +1 -0
  166. package/controls/wizard/wizard.d.ts +17 -0
  167. package/controls/wizard/wizard.module.d.ts +2 -0
  168. package/controls/wizard/wizard.module.ngfactory.d.ts +3 -0
  169. package/controls/wizard/wizard.ngfactory.d.ts +1 -0
  170. package/controls/wizard/wizarditem.d.ts +6 -0
  171. package/controls/wizard/wizarditem.ngfactory.d.ts +1 -0
  172. package/esm2015/components/browser/browser.js +109 -0
  173. package/esm2015/components/browser/browser.module.js +28 -0
  174. package/esm2015/components/browser/browser.module.ngfactory.js +7 -0
  175. package/esm2015/components/browser/browser.ngfactory.js +7 -0
  176. package/esm2015/controls/buttons/button.js +16 -0
  177. package/esm2015/controls/buttons/button.module.js +15 -0
  178. package/esm2015/controls/buttons/button.module.ngfactory.js +7 -0
  179. package/esm2015/controls/buttons/button.ngfactory.js +7 -0
  180. package/esm2015/controls/checkbox/checkbox.js +44 -0
  181. package/esm2015/controls/checkbox/checkbox.module.js +24 -0
  182. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +7 -0
  183. package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -0
  184. package/esm2015/controls/checkbox/checkbox.scss.ngstyle.js +7 -0
  185. package/esm2015/controls/checkbox/checkbox.scss.shim.ngstyle.js +7 -0
  186. package/esm2015/controls/checkbox/radiobutton.js +26 -0
  187. package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -0
  188. package/esm2015/controls/checkbox/radiobutton.scss.ngstyle.js +7 -0
  189. package/esm2015/controls/checkbox/radiobutton.scss.shim.ngstyle.js +7 -0
  190. package/esm2015/controls/checkbox/radiobuttons.js +42 -0
  191. package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -0
  192. package/esm2015/controls/confirm/confirm.js +14 -0
  193. package/esm2015/controls/confirm/confirm.module.js +31 -0
  194. package/esm2015/controls/confirm/confirm.module.ngfactory.js +7 -0
  195. package/esm2015/controls/confirm/confirm.ngfactory.js +7 -0
  196. package/esm2015/controls/confirm/confirm.service.js +102 -0
  197. package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -0
  198. package/esm2015/controls/contextmenu/contextmenu.js +40 -0
  199. package/esm2015/controls/contextmenu/contextmenu.module.js +28 -0
  200. package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +7 -0
  201. package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -0
  202. package/esm2015/controls/contextmenu/contextmenuanchor.js +30 -0
  203. package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -0
  204. package/esm2015/controls/contextmenu/contextmenucontainer.js +30 -0
  205. package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -0
  206. package/esm2015/controls/contextmenu/contextmenuitembutton.js +24 -0
  207. package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -0
  208. package/esm2015/controls/contextmenu/contextmenuitemsplitter.js +14 -0
  209. package/esm2015/controls/contextmenu/contextmenuitemsplitter.ngfactory.js +7 -0
  210. package/esm2015/controls/datetime/date.js +50 -0
  211. package/esm2015/controls/datetime/date.ngfactory.js +7 -0
  212. package/esm2015/controls/datetime/dateselector.js +14 -0
  213. package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -0
  214. package/esm2015/controls/datetime/datetime.js +44 -0
  215. package/esm2015/controls/datetime/datetime.module.js +28 -0
  216. package/esm2015/controls/datetime/datetime.module.ngfactory.js +7 -0
  217. package/esm2015/controls/datetime/datetime.ngfactory.js +7 -0
  218. package/esm2015/controls/datetime/time.js +44 -0
  219. package/esm2015/controls/datetime/time.ngfactory.js +7 -0
  220. package/esm2015/controls/dialog/dialog.js +44 -0
  221. package/esm2015/controls/dialog/dialog.module.js +15 -0
  222. package/esm2015/controls/dialog/dialog.module.ngfactory.js +7 -0
  223. package/esm2015/controls/dialog/dialog.ngfactory.js +7 -0
  224. package/esm2015/controls/form/form.js +41 -0
  225. package/esm2015/controls/form/form.module.js +15 -0
  226. package/esm2015/controls/form/form.module.ngfactory.js +7 -0
  227. package/esm2015/controls/form/form.ngfactory.js +7 -0
  228. package/esm2015/controls/form/inheritform.directive.js +71 -0
  229. package/esm2015/controls/form/inheritform.directive.ngfactory.js +7 -0
  230. package/esm2015/controls/grid/grid.js +44 -0
  231. package/esm2015/controls/grid/grid.module.js +21 -0
  232. package/esm2015/controls/grid/grid.module.ngfactory.js +7 -0
  233. package/esm2015/controls/grid/grid.ngfactory.js +7 -0
  234. package/esm2015/controls/grid/gridbutton.js +47 -0
  235. package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -0
  236. package/esm2015/controls/grid/gridcolumn.js +34 -0
  237. package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -0
  238. package/esm2015/controls/grid/gridcolumnaction.js +35 -0
  239. package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -0
  240. package/esm2015/controls/grid/gridimage.js +28 -0
  241. package/esm2015/controls/grid/gridimage.ngfactory.js +7 -0
  242. package/esm2015/controls/grid/paging.js +34 -0
  243. package/esm2015/controls/grid/paging.ngfactory.js +7 -0
  244. package/esm2015/controls/input/input.js +38 -0
  245. package/esm2015/controls/input/input.module.js +39 -0
  246. package/esm2015/controls/input/input.module.ngfactory.js +7 -0
  247. package/esm2015/controls/input/input.ngfactory.js +7 -0
  248. package/esm2015/controls/input/inputarea.js +42 -0
  249. package/esm2015/controls/input/inputarea.ngfactory.js +7 -0
  250. package/esm2015/controls/input/inputcurrency.js +42 -0
  251. package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -0
  252. package/esm2015/controls/input/inputdecimal.js +42 -0
  253. package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -0
  254. package/esm2015/controls/input/inputemail.js +42 -0
  255. package/esm2015/controls/input/inputemail.ngfactory.js +7 -0
  256. package/esm2015/controls/input/inputinteger.js +42 -0
  257. package/esm2015/controls/input/inputinteger.ngfactory.js +7 -0
  258. package/esm2015/controls/input/inputpassword.js +42 -0
  259. package/esm2015/controls/input/inputpassword.ngfactory.js +7 -0
  260. package/esm2015/controls/input/inputsearch.js +42 -0
  261. package/esm2015/controls/input/inputsearch.ngfactory.js +7 -0
  262. package/esm2015/controls/layout/formlayout.directive.js +10 -0
  263. package/esm2015/controls/layout/formlayout.directive.ngfactory.js +7 -0
  264. package/esm2015/controls/layout/layout.module.js +29 -0
  265. package/esm2015/controls/layout/layout.module.ngfactory.js +7 -0
  266. package/esm2015/controls/layout/tocontrolheight.pipe.js +29 -0
  267. package/esm2015/controls/layout/tocontrolheight.pipe.ngfactory.js +7 -0
  268. package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +50 -0
  269. package/esm2015/controls/layout/tocontrolwidthcss.pipe.ngfactory.js +7 -0
  270. package/esm2015/controls/layout/tolabelheight.pipe.js +29 -0
  271. package/esm2015/controls/layout/tolabelheight.pipe.ngfactory.js +7 -0
  272. package/esm2015/controls/layout/tolabelwidthcss.pipe.js +34 -0
  273. package/esm2015/controls/layout/tolabelwidthcss.pipe.ngfactory.js +7 -0
  274. package/esm2015/controls/list/dropdown.js +71 -0
  275. package/esm2015/controls/list/dropdown.module.js +14 -0
  276. package/esm2015/controls/list/dropdown.module.ngfactory.js +7 -0
  277. package/esm2015/controls/list/dropdown.ngfactory.js +7 -0
  278. package/esm2015/controls/list/list.module.js +14 -0
  279. package/esm2015/controls/list/list.module.ngfactory.js +7 -0
  280. package/esm2015/controls/list/listbox.js +67 -0
  281. package/esm2015/controls/list/listbox.ngfactory.js +7 -0
  282. package/esm2015/controls/multilanguage/multilanguage.module.js +26 -0
  283. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +7 -0
  284. package/esm2015/controls/multilanguage/multilanguageinput.js +48 -0
  285. package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -0
  286. package/esm2015/controls/multilanguage/multilanguageinputarea.js +48 -0
  287. package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -0
  288. package/esm2015/controls/multilanguage/multilanguagemenu.js +40 -0
  289. package/esm2015/controls/multilanguage/multilanguagemenu.ngfactory.js +7 -0
  290. package/esm2015/controls/multilanguage/multilanguagemenuanchor.js +30 -0
  291. package/esm2015/controls/multilanguage/multilanguagemenuanchor.ngfactory.js +7 -0
  292. package/esm2015/controls/multilanguage/multilanguagemenucontainer.js +30 -0
  293. package/esm2015/controls/multilanguage/multilanguagemenucontainer.ngfactory.js +7 -0
  294. package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +24 -0
  295. package/esm2015/controls/multilanguage/multilanguagemenuitembutton.ngfactory.js +7 -0
  296. package/esm2015/controls/static/formcontainer.js +53 -0
  297. package/esm2015/controls/static/formcontainer.ngfactory.js +7 -0
  298. package/esm2015/controls/static/staticlabel.js +42 -0
  299. package/esm2015/controls/static/staticlabel.module.js +15 -0
  300. package/esm2015/controls/static/staticlabel.module.ngfactory.js +7 -0
  301. package/esm2015/controls/static/staticlabel.ngfactory.js +7 -0
  302. package/esm2015/controls/tabs/tab.js +25 -0
  303. package/esm2015/controls/tabs/tab.ngfactory.js +7 -0
  304. package/esm2015/controls/tabs/tabitem.js +14 -0
  305. package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -0
  306. package/esm2015/controls/tabs/tabs.module.js +16 -0
  307. package/esm2015/controls/tabs/tabs.module.ngfactory.js +7 -0
  308. package/esm2015/controls/tinymce/tinymce.js +54 -0
  309. package/esm2015/controls/tinymce/tinymce.module.js +27 -0
  310. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +7 -0
  311. package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -0
  312. package/esm2015/controls/tinymce/tinymce.scss.ngstyle.js +7 -0
  313. package/esm2015/controls/tinymce/tinymce.scss.shim.ngstyle.js +7 -0
  314. package/esm2015/controls/upload/dropzone.scss.ngstyle.js +7 -0
  315. package/esm2015/controls/upload/dropzone.scss.shim.ngstyle.js +7 -0
  316. package/esm2015/controls/upload/dropzonemultiple.js +55 -0
  317. package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -0
  318. package/esm2015/controls/upload/dropzonesingle.js +55 -0
  319. package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -0
  320. package/esm2015/controls/upload/upload.js +47 -0
  321. package/esm2015/controls/upload/upload.module.js +28 -0
  322. package/esm2015/controls/upload/upload.module.ngfactory.js +7 -0
  323. package/esm2015/controls/upload/upload.ngfactory.js +7 -0
  324. package/esm2015/controls/upload/upload.scss.ngstyle.js +7 -0
  325. package/esm2015/controls/upload/upload.scss.shim.ngstyle.js +7 -0
  326. package/esm2015/controls/upload/uploadmultiple.js +47 -0
  327. package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -0
  328. package/esm2015/controls/validation/validationsummary.js +37 -0
  329. package/esm2015/controls/validation/validationsummary.module.js +15 -0
  330. package/esm2015/controls/validation/validationsummary.module.ngfactory.js +7 -0
  331. package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -0
  332. package/esm2015/controls/wizard/wizard.js +30 -0
  333. package/esm2015/controls/wizard/wizard.module.js +16 -0
  334. package/esm2015/controls/wizard/wizard.module.ngfactory.js +7 -0
  335. package/esm2015/controls/wizard/wizard.ngfactory.js +7 -0
  336. package/esm2015/controls/wizard/wizarditem.js +14 -0
  337. package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -0
  338. package/esm2015/public_api.js +25 -0
  339. package/esm2015/public_api.ngfactory.js +7 -0
  340. package/esm2015/simpleangularcontrols-sac-bootstrap4.js +61 -0
  341. package/esm2015/simpleangularcontrols-sac-bootstrap4.ngfactory.js +7 -0
  342. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js +2488 -0
  343. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js.map +1 -0
  344. package/package.json +32 -0
  345. package/public_api.d.ts +21 -0
  346. package/public_api.ngfactory.d.ts +1 -0
  347. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.1.tgz +0 -0
  348. package/simpleangularcontrols-sac-bootstrap4.d.ts +60 -0
  349. package/simpleangularcontrols-sac-bootstrap4.metadata.json +1 -0
  350. package/simpleangularcontrols-sac-bootstrap4.ngfactory.d.ts +1 -0
@@ -0,0 +1,2488 @@
1
+ import { CommonModule, DOCUMENT } from '@angular/common';
2
+ import { HttpClient, HttpClientModule } from '@angular/common/http';
3
+ import { Component, NgModule, ElementRef, ChangeDetectorRef, Injectable, ComponentFactoryResolver, Inject, ApplicationRef, Injector, forwardRef, NgZone, Renderer2, Directive, HostBinding, SkipSelf, Pipe, Host, Optional, ViewChild, ContentChild, TemplateRef, ContentChildren } from '@angular/core';
4
+ import { NgForm, ControlContainer, FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
+ import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacFormCommon, SacFormLayoutCommon, ControlHeight, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacPagingCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
6
+ import { forkJoin, Observable } from 'rxjs';
7
+ import { take } from 'rxjs/operators';
8
+ import { IMaskModule } from 'angular-imask';
9
+ import moment_ from 'moment';
10
+ import { EditorModule } from '@tinymce/tinymce-angular';
11
+
12
+ /**
13
+ * Button Component
14
+ *
15
+ * <example-url>http://localhost/demo/mysample.component.html</example-url>
16
+ */
17
+ class SacButtonComponent extends SacButtonCommon {
18
+ }
19
+ SacButtonComponent.decorators = [
20
+ { type: Component, args: [{
21
+ selector: 'sac-button',
22
+ template: "<button\r\n [id]=\"name\"\r\n type=\"button\"\r\n class=\"btn d-flex justify-content-center align-items-center\"\r\n [attr.disabled]=\"_isdisabled || isloading ? 'disabled' : null\"\r\n (click)=\"buttonClick()\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary' || role === 'default'\"\r\n [class.btn-success]=\"role === 'success'\"\r\n [class.btn-danger]=\"role === 'danger'\"\r\n [class.btn-warning]=\"role === 'warning'\"\r\n [class.btn-info]=\"role === 'info'\"\r\n [class.btn-link]=\"role === 'link'\"\r\n>\r\n <span\r\n *ngIf=\"isloading\"\r\n class=\"spinner-border spinner-border-sm mr-2\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n <i *ngIf=\"!isloading && icon !== ''\" [ngClass]=\"icon\" [class.mr-2]=\"text\"></i\r\n >{{text}}\r\n</button>\r\n"
23
+ },] }
24
+ ];
25
+
26
+ class SACBootstrap4ButtonModule {
27
+ }
28
+ SACBootstrap4ButtonModule.decorators = [
29
+ { type: NgModule, args: [{
30
+ declarations: [SacButtonComponent],
31
+ imports: [
32
+ CommonModule
33
+ ],
34
+ exports: [SacButtonComponent]
35
+ },] }
36
+ ];
37
+
38
+ /**
39
+ * Dialog Komponente
40
+ */
41
+ class SacDialogComponent extends SacDialogCommon {
42
+ /**
43
+ * Konstruktor
44
+ * @param el DOM Element Referenz
45
+ * @param cdRef Change Detection Service
46
+ */
47
+ constructor(el, cdRef) {
48
+ super(cdRef);
49
+ this.element = el.nativeElement;
50
+ }
51
+ /**
52
+ * Event wenn Komponente initialisiert wird
53
+ */
54
+ ngOnInit() {
55
+ // Element an Body für korrektes Styling unter Bootstrap 3 verschieben
56
+ document.body.appendChild(this.element);
57
+ }
58
+ /**
59
+ * Event wenn Element entfernt wird
60
+ */
61
+ ngOnDestroy() {
62
+ this.hide();
63
+ if (document.body.contains(this.element)) {
64
+ document.body.removeChild(this.element);
65
+ }
66
+ super.ngOnDestroy();
67
+ }
68
+ }
69
+ SacDialogComponent.decorators = [
70
+ { type: Component, args: [{
71
+ selector: 'sac-dialog',
72
+ template: "<div #dialog class=\"modal show\" style=\"display: block\" tabindex=\"-1\" role=\"dialog\" *ngIf=\"_show\">\r\n <div class=\"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable\" role=\"document\"\r\n [class.modal-xl]=\"_size === 'extralarge'\"\r\n [class.modal-lg]=\"_size === 'large'\"\r\n [class.modal-sm]=\"_size === 'small'\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{title}}</h5>\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"hide()\" *ngIf=\"closebutton\"><span aria-hidden=\"true\">&times;</span></button>\r\n </div>\r\n <div class=\"modal-body\" [style.height]=\"height\">\r\n <ng-content select=\"[dialogbody]\"></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-content select=\"[dialogfooter]\"></ng-content>\r\n </div>\r\n </div><!-- /.modal-content -->\r\n </div><!-- /.modal-dialog -->\r\n</div><!-- /.modal -->\r\n<div class=\"modal-backdrop show\" *ngIf=\"_show && backdrop\" #backdrop></div>\r\n"
73
+ },] }
74
+ ];
75
+ SacDialogComponent.ctorParameters = () => [
76
+ { type: ElementRef },
77
+ { type: ChangeDetectorRef }
78
+ ];
79
+
80
+ class SACBootstrap4DialogModule {
81
+ }
82
+ SACBootstrap4DialogModule.decorators = [
83
+ { type: NgModule, args: [{
84
+ declarations: [SacDialogComponent],
85
+ imports: [
86
+ CommonModule
87
+ ],
88
+ exports: [SacDialogComponent]
89
+ },] }
90
+ ];
91
+
92
+ /**
93
+ * Confirm Komponente
94
+ */
95
+ class SacConfirmComponent extends SacConfirmCommon {
96
+ }
97
+ SacConfirmComponent.decorators = [
98
+ { type: Component, args: [{
99
+ selector: 'sac-confirm',
100
+ template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n"
101
+ },] }
102
+ ];
103
+
104
+ /**
105
+ * Service für Confirm Messages in TypeScript Code
106
+ *
107
+ * @example
108
+ * // Beispiel für ConfirmMessage mit Standard Buttons (Ja / Nein).
109
+ * confirmService.ConfirmMessage('titel', 'frage').subscribe(action => { // Action Code });
110
+ *
111
+ * @example
112
+ * // Beispiel für ConfirmMessage mit eigenen Buttons
113
+ * let buttons: SacConfirmButton[] = [];
114
+ * buttons.push(new SacConfirmButton('ActionKey','Text Primary'));
115
+ * buttons.push(new SacConfirmButton('ActionKey2','Text Button 2'));
116
+ * confirmService.ConfirmMessage('titel', 'frage', buttons).subscribe(action => { // Action Code });
117
+ */
118
+ class ServiceConfirm extends ServiceConfirmCommon {
119
+ // #endregion Properties
120
+ // #region Constructors
121
+ /**
122
+ * Konstruktor
123
+ * @param componentFactoryResolver Component Factory Resolver Instanz
124
+ * @param appRef Application Referenz. Wird benötigt um den Dialog am Body anzuhängen
125
+ * @param injector Injector. Wird benötigt um den Dialog dynamisch zu erzeugen
126
+ */
127
+ constructor(componentFactoryResolver, appRef, injector) {
128
+ super(appRef, injector);
129
+ this.componentFactoryResolver = componentFactoryResolver;
130
+ // #region Properties
131
+ /**
132
+ * Collection von Buttons die angezeigt werden müssen.
133
+ */
134
+ this.buttons = [];
135
+ /**
136
+ * Message die in Dialog angezeigt werden soll.
137
+ */
138
+ this.message = '';
139
+ /**
140
+ * Titel der im Dialog angezeigt werden soll.
141
+ */
142
+ this.title = '';
143
+ }
144
+ // #endregion Constructors
145
+ // #region Public Methods
146
+ /**
147
+ * Confirm Dialog anzeigen
148
+ * @param message Nachricht die angezeigt werden soll.
149
+ * @returns EventEmitter mit Key des Buttons, welcher geklickt wurde.
150
+ */
151
+ ConfirmMessage(title, message, buttons = null) {
152
+ this.title = title;
153
+ this.message = message;
154
+ // Default Buttons setzen, wenn keine Buttons angegeben sind
155
+ if (!isDefined(buttons)) {
156
+ this.buttons = [];
157
+ forkJoin({
158
+ button_yes: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),
159
+ button_no: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo),
160
+ })
161
+ .pipe(take(1))
162
+ .subscribe((texte) => {
163
+ this.buttons.push(new SacConfirmButton('yes', texte.button_yes, 'primary'));
164
+ this.buttons.push(new SacConfirmButton('no', texte.button_no));
165
+ });
166
+ }
167
+ else {
168
+ this.buttons = buttons;
169
+ }
170
+ return super.Confirm();
171
+ }
172
+ /**
173
+ * Erzeugen einer Component Factory für einen Dialog
174
+ */
175
+ GetComponentFactory() {
176
+ return this.componentFactoryResolver.resolveComponentFactory(SacConfirmComponent);
177
+ }
178
+ // #endregion Public Methods
179
+ // #region Protected Methods
180
+ /**
181
+ * Konfiguration des Dialogs
182
+ * @param instance Instanz eines SacConfirm Dialogs
183
+ */
184
+ ConfigureDialog(instance) {
185
+ // Text in Dialog setzen
186
+ instance.title = this.title;
187
+ instance.message = this.message;
188
+ instance.buttons = this.buttons;
189
+ instance.image = this.iconService.ConfirmDefaultImage;
190
+ }
191
+ }
192
+ ServiceConfirm.decorators = [
193
+ { type: Injectable }
194
+ ];
195
+ ServiceConfirm.ctorParameters = () => [
196
+ { type: ComponentFactoryResolver, decorators: [{ type: Inject, args: [ComponentFactoryResolver,] }] },
197
+ { type: ApplicationRef },
198
+ { type: Injector }
199
+ ];
200
+
201
+ /**
202
+ * Module für Confirm Messages
203
+ *
204
+ * In NgModule der Applikation folgenden Eintrag bei Imports einfügen: ExanicBootstrap4ConfirmModule.forRoot()
205
+ *
206
+ */
207
+ class SACBootstrap4ConfirmModule {
208
+ // #region Public Static Methods
209
+ static forRoot() {
210
+ return {
211
+ ngModule: SACBootstrap4ConfirmModule,
212
+ providers: [ServiceConfirm],
213
+ };
214
+ }
215
+ }
216
+ SACBootstrap4ConfirmModule.decorators = [
217
+ { type: NgModule, args: [{
218
+ declarations: [SacConfirmComponent],
219
+ imports: [CommonModule, SACBootstrap4DialogModule, SACBootstrap4ButtonModule],
220
+ exports: [SacConfirmComponent],
221
+ entryComponents: [SacConfirmComponent],
222
+ },] }
223
+ ];
224
+
225
+ /**
226
+ * Component für Contextmenü
227
+ */
228
+ class SacContextmenuComponent extends SacContextmenuCommon {
229
+ // #region Constructors
230
+ /**
231
+ * Constructor
232
+ * @param document Referenz auf HTML Document
233
+ * @param ngZone Angular Zone Service
234
+ * @param elementRef Referenz auf HTML Element der aktuellen Komponente
235
+ * @param renderer Render Service von Angular
236
+ * @param injector injector to resolve services
237
+ */
238
+ constructor(document, ngZone, elementRef, renderer, injector) {
239
+ super(document, ngZone, elementRef, renderer, injector);
240
+ }
241
+ }
242
+ SacContextmenuComponent.decorators = [
243
+ { type: Component, args: [{
244
+ selector: 'sac-contextmenu',
245
+ template: "<div class=\"dropdown\" [ngClass]=\"cssclass\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"\r\n ></ng-container>\r\n\r\n <div\r\n class=\"dropdown-menu dropdown-menu-right\"\r\n sacContextMenuContainer\r\n [class.show]=\"isopen\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacContextMenuAnchor\r\n class=\"btn btn-sm btn-link text-secondary text-decoration-none\"\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n >\r\n <i [class]=\"IconContextMenu\"></i>\r\n </button>\r\n</ng-template>\r\n",
246
+ providers: [
247
+ {
248
+ provide: SacContextmenuCommon,
249
+ useExisting: forwardRef(() => SacContextmenuComponent),
250
+ },
251
+ ]
252
+ },] }
253
+ ];
254
+ SacContextmenuComponent.ctorParameters = () => [
255
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
256
+ { type: NgZone },
257
+ { type: ElementRef },
258
+ { type: Renderer2 },
259
+ { type: Injector }
260
+ ];
261
+
262
+ /**
263
+ * Component für Menü Eintrag in Context Menü
264
+ */
265
+ class SacContextmenuItemButtonComponent extends SacContextmenuItemButtonCommon {
266
+ /**
267
+ * Constructor
268
+ * @param contextmenu Instance von Context Menü
269
+ */
270
+ constructor(contextmenu) {
271
+ super(contextmenu);
272
+ }
273
+ }
274
+ SacContextmenuItemButtonComponent.decorators = [
275
+ { type: Component, args: [{
276
+ selector: 'sac-contextmenubutton',
277
+ template: "<button\r\n type=\"button\"\r\n class=\"dropdown-item\"\r\n (click)=\"callaction($event)\"\r\n [class.disabled]=\"isdisabled\"\r\n [ngClass]=\"cssclass\"\r\n [attr.disabled]=\"isdisabled ? 'disabled' : null\"\r\n>\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"!isicondisabled\" style=\"min-width: 1.5rem\">\r\n <img *ngIf=\"image\" [src]=\"image\" class=\"align-baseline\" />\r\n <i *ngIf=\"icon\" [class]=\"iconstyle + ' ' + icon\"></i>\r\n </div>\r\n <div class=\"flex-grow-1\">{{ text }}</div>\r\n </div>\r\n</button>\r\n"
278
+ },] }
279
+ ];
280
+ SacContextmenuItemButtonComponent.ctorParameters = () => [
281
+ { type: SacContextmenuCommon }
282
+ ];
283
+
284
+ /**
285
+ * Splitter Komponente in Context Menü
286
+ */
287
+ class SacContextmenuItemSplitterComponent extends SacContextmenuItemCommon {
288
+ }
289
+ SacContextmenuItemSplitterComponent.decorators = [
290
+ { type: Component, args: [{
291
+ selector: 'sac-contextmenusplitter',
292
+ template: "<div class=\"dropdown-divider\"></div>"
293
+ },] }
294
+ ];
295
+
296
+ /**
297
+ * Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
298
+ */
299
+ class SacContextmenuAnchorDirective extends SacContextmenuAnchorCommon {
300
+ // #region Constructors
301
+ /**
302
+ * Konstruktor
303
+ * @param elementRef HTML DOM Referenz
304
+ */
305
+ constructor(elementRef) {
306
+ super(elementRef);
307
+ }
308
+ }
309
+ SacContextmenuAnchorDirective.decorators = [
310
+ { type: Directive, args: [{
311
+ selector: '[sacContextMenuAnchor]',
312
+ providers: [
313
+ {
314
+ provide: SacContextmenuAnchorCommon,
315
+ useExisting: forwardRef(() => SacContextmenuAnchorDirective),
316
+ },
317
+ ],
318
+ },] }
319
+ ];
320
+ SacContextmenuAnchorDirective.ctorParameters = () => [
321
+ { type: ElementRef }
322
+ ];
323
+
324
+ /**
325
+ * Marker Komponente für Context Menü
326
+ */
327
+ class SacContextmenuContainerDirective extends SacContextMenuContrainerCommon {
328
+ // #region Constructors
329
+ /**
330
+ * Konstruktor
331
+ * @param elementRef Referenz auf DOM Element
332
+ */
333
+ constructor(elementRef) {
334
+ super(elementRef);
335
+ }
336
+ }
337
+ SacContextmenuContainerDirective.decorators = [
338
+ { type: Directive, args: [{
339
+ selector: '[sacContextMenuContainer]',
340
+ providers: [
341
+ {
342
+ provide: SacContextMenuContrainerCommon,
343
+ useExisting: forwardRef(() => SacContextmenuContainerDirective),
344
+ },
345
+ ],
346
+ },] }
347
+ ];
348
+ SacContextmenuContainerDirective.ctorParameters = () => [
349
+ { type: ElementRef }
350
+ ];
351
+
352
+ class SACBootstrap4ContextmenuModule {
353
+ }
354
+ SACBootstrap4ContextmenuModule.decorators = [
355
+ { type: NgModule, args: [{
356
+ declarations: [
357
+ SacContextmenuComponent,
358
+ SacContextmenuItemButtonComponent,
359
+ SacContextmenuItemSplitterComponent,
360
+ SacContextmenuAnchorDirective,
361
+ SacContextmenuContainerDirective,
362
+ ],
363
+ imports: [CommonModule],
364
+ exports: [
365
+ SacContextmenuComponent,
366
+ SacContextmenuItemButtonComponent,
367
+ SacContextmenuItemSplitterComponent,
368
+ SacContextmenuAnchorDirective,
369
+ ],
370
+ },] }
371
+ ];
372
+
373
+ /**
374
+ * Erweiterung / Hooking für automatismen in Formular. Wird als Container für alle Controls benötigt.
375
+ *
376
+ * @example Beispiel über Div Container
377
+ *
378
+ * <div ngForm></div>
379
+ *
380
+ * @example Beispiel über Form Tag
381
+ *
382
+ * <form></form>
383
+ *
384
+ */
385
+ class SacFormDirective extends SacFormCommon {
386
+ /**
387
+ * Konstruktor
388
+ * @param form Instanz von NgForm für eigene automatische Formular Logik
389
+ */
390
+ constructor(form) {
391
+ super(form);
392
+ /**
393
+ * Setzt die Standard CSS Klasse für auf dem Form Container
394
+ */
395
+ this.cssClassForm = true;
396
+ }
397
+ }
398
+ SacFormDirective.decorators = [
399
+ { type: Directive, args: [{
400
+ selector: 'form:not([ngNoForm]):not([formGroup]),[ngForm]',
401
+ exportAs: 'sacform',
402
+ },] }
403
+ ];
404
+ SacFormDirective.ctorParameters = () => [
405
+ { type: NgForm }
406
+ ];
407
+ SacFormDirective.propDecorators = {
408
+ cssClassForm: [{ type: HostBinding, args: ['class.form',] }]
409
+ };
410
+
411
+ /**
412
+ * Factory Methode für SacForm
413
+ * @param form SacFormular
414
+ */
415
+ function SACFORM_FACTORY(form) {
416
+ return form;
417
+ }
418
+ /**
419
+ * Factory Methode für NgForm
420
+ * @param form NgForm
421
+ */
422
+ function NGFORM_FACTORY(form) {
423
+ return form;
424
+ }
425
+ /**
426
+ * Directive zum erben eines NgForm/NgFormular einer übergeordneten Komponente
427
+ *
428
+ * @example Implementation in Markup
429
+ *
430
+ * <div sacInheritForm>
431
+ * </div>
432
+ *
433
+ * @example Model an Sub-Komponente übergeben
434
+ *
435
+ * <div sacInheritForm>
436
+ * <div>SubForm</div>
437
+ * <div>
438
+ * <ngInput [(ngModel)]="mymodel.fieldarea2" name="subformField3" label="field 3" [isrequired]="true"></ngInput>
439
+ * </div>
440
+ * </div>
441
+ *
442
+ *
443
+ * (at)Component({
444
+ * selector: 'sacInheritForm',
445
+ * templateUrl: './subform.component.html'
446
+ * })
447
+ * export class SubFormComponent implements DoCheck {
448
+ *
449
+ * (at)Input() mymodel;
450
+ * (at)Output() mymodelChange = new EventEmitter();
451
+ *
452
+ * ngDoCheck() {
453
+ * this.mymodelChange.next(this.mymodel);
454
+ * }
455
+ *}
456
+ *
457
+ */
458
+ class SacInheritFormDirective {
459
+ }
460
+ SacInheritFormDirective.decorators = [
461
+ { type: Directive, args: [{
462
+ selector: '[sacInheritForm]',
463
+ providers: [
464
+ {
465
+ provide: SacFormDirective,
466
+ useFactory: SACFORM_FACTORY,
467
+ deps: [[new SkipSelf(), SacFormDirective]]
468
+ }, {
469
+ provide: ControlContainer,
470
+ useFactory: NGFORM_FACTORY,
471
+ deps: [NgForm]
472
+ }
473
+ ]
474
+ },] }
475
+ ];
476
+
477
+ class SACBootstrap4FormModule {
478
+ }
479
+ SACBootstrap4FormModule.decorators = [
480
+ { type: NgModule, args: [{
481
+ declarations: [SacFormDirective, SacInheritFormDirective],
482
+ imports: [CommonModule, FormsModule],
483
+ exports: [SacFormDirective, SacInheritFormDirective],
484
+ },] }
485
+ ];
486
+
487
+ class SacFormLayoutDirective extends SacFormLayoutCommon {
488
+ }
489
+ SacFormLayoutDirective.decorators = [
490
+ { type: Directive, args: [{
491
+ selector: '[sacFormLayout]',
492
+ },] }
493
+ ];
494
+
495
+ class SacToControlHeightPipe {
496
+ // #region Public Methods
497
+ /**
498
+ * Returns the CSS class that defines the height for the control
499
+ * @param value ControlHeight value or null
500
+ */
501
+ transform(value) {
502
+ // Return default value
503
+ if (!value) {
504
+ return '';
505
+ }
506
+ switch (value) {
507
+ case ControlHeight.Small:
508
+ return 'form-control-sm';
509
+ case ControlHeight.Large:
510
+ return 'form-control-lg';
511
+ default:
512
+ return '';
513
+ }
514
+ }
515
+ }
516
+ SacToControlHeightPipe.decorators = [
517
+ { type: Pipe, args: [{
518
+ name: 'toControlHeight',
519
+ },] }
520
+ ];
521
+
522
+ class SacToControlWidthCssPipe {
523
+ // #region Public Methods
524
+ /**
525
+ * Get CSS classes from label width configuration to set control size
526
+ * @param value Configuration with grid columns for different viewports
527
+ * @returns string with css classe for bootstrap3
528
+ */
529
+ transform(value) {
530
+ const classes = [];
531
+ if (value.labelSizeXs) {
532
+ classes.push('col-' + this.calcControlSize(value.labelSizeXs));
533
+ }
534
+ if (value.labelSizeSm) {
535
+ classes.push('col-sm-' + this.calcControlSize(value.labelSizeSm));
536
+ }
537
+ if (value.labelSizeMd) {
538
+ classes.push('col-md-' + this.calcControlSize(value.labelSizeMd));
539
+ }
540
+ if (value.labelSizeLg) {
541
+ classes.push('col-lg-' + this.calcControlSize(value.labelSizeLg));
542
+ }
543
+ if (value.labelSizeXl) {
544
+ classes.push('col-xl-' + this.calcControlSize(value.labelSizeXl));
545
+ }
546
+ return classes.join(' ');
547
+ }
548
+ // #endregion Public Methods
549
+ // #region Private Methods
550
+ /**
551
+ * calculate the control size
552
+ * @param labelsize grid size of label
553
+ * @returns grid size for control. should be between 1 and 12
554
+ */
555
+ calcControlSize(labelsize) {
556
+ if (labelsize === 12) {
557
+ return 12;
558
+ }
559
+ if (!labelsize) {
560
+ return 12;
561
+ }
562
+ return 12 - labelsize;
563
+ }
564
+ }
565
+ SacToControlWidthCssPipe.decorators = [
566
+ { type: Pipe, args: [{
567
+ name: 'toControlWidthCss',
568
+ },] }
569
+ ];
570
+
571
+ class SacToLabelHeightPipe {
572
+ // #region Public Methods
573
+ /**
574
+ * Returns the CSS class that defines the height for the control
575
+ * @param value ControlHeight value or null
576
+ */
577
+ transform(value) {
578
+ // Return default value
579
+ if (!value) {
580
+ return '';
581
+ }
582
+ switch (value) {
583
+ case ControlHeight.Small:
584
+ return 'col-form-label-sm';
585
+ case ControlHeight.Large:
586
+ return 'col-form-label-lg';
587
+ default:
588
+ return '';
589
+ }
590
+ }
591
+ }
592
+ SacToLabelHeightPipe.decorators = [
593
+ { type: Pipe, args: [{
594
+ name: 'toLabelHeight',
595
+ },] }
596
+ ];
597
+
598
+ class SacToLabelWidthCssPipe {
599
+ // #region Public Methods
600
+ /**
601
+ * Get CSS classes from label width configuration to set label size
602
+ * @param value Configuration with grid columns for different viewports
603
+ * @returns string with css classe for bootstrap3
604
+ */
605
+ transform(value) {
606
+ const classes = [];
607
+ if (value.labelSizeXs) {
608
+ classes.push('col-' + value.labelSizeXs);
609
+ }
610
+ if (value.labelSizeSm) {
611
+ classes.push('col-sm-' + value.labelSizeSm);
612
+ }
613
+ if (value.labelSizeMd) {
614
+ classes.push('col-md-' + value.labelSizeMd);
615
+ }
616
+ if (value.labelSizeLg) {
617
+ classes.push('col-lg-' + value.labelSizeLg);
618
+ }
619
+ if (value.labelSizeXl) {
620
+ classes.push('col-xl-' + value.labelSizeXl);
621
+ }
622
+ return classes.join(' ');
623
+ }
624
+ }
625
+ SacToLabelWidthCssPipe.decorators = [
626
+ { type: Pipe, args: [{
627
+ name: 'toLabelWidthCss',
628
+ },] }
629
+ ];
630
+
631
+ class SACBootstrap4LayoutModule {
632
+ }
633
+ SACBootstrap4LayoutModule.decorators = [
634
+ { type: NgModule, args: [{
635
+ declarations: [
636
+ SacFormLayoutDirective,
637
+ SacToControlHeightPipe,
638
+ SacToControlWidthCssPipe,
639
+ SacToLabelHeightPipe,
640
+ SacToLabelWidthCssPipe,
641
+ ],
642
+ imports: [CommonModule],
643
+ exports: [
644
+ SacFormLayoutDirective,
645
+ SacToControlHeightPipe,
646
+ SacToControlWidthCssPipe,
647
+ SacToLabelHeightPipe,
648
+ SacToLabelWidthCssPipe,
649
+ ],
650
+ },] }
651
+ ];
652
+
653
+ /**
654
+ * Dropzone Komponente für mehrere Uploads
655
+ * @see https://github.com/kukhariev/ngx-uploadx/
656
+ */
657
+ class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
658
+ // #region Constructors
659
+ /**
660
+ * Constructor
661
+ * @param formLayout SacFormLayout to define scoped layout settings
662
+ * @param injector Injector for injecting services
663
+ * @param renderer Angular rendering engine
664
+ * @param ngZone ngZone to manage external javascripts
665
+ */
666
+ constructor(formLayout, injector, renderer, ngZone) {
667
+ super(formLayout, injector, renderer, ngZone);
668
+ }
669
+ // #endregion Constructors
670
+ // #region Public Methods
671
+ /**
672
+ * Initialisiert das Control
673
+ */
674
+ ngOnInit() {
675
+ super.ngOnInit();
676
+ }
677
+ }
678
+ SacDropzoneMultipleComponent.decorators = [
679
+ { type: Component, args: [{
680
+ selector: 'sac-dropzonemultiple',
681
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
682
+ providers: [
683
+ {
684
+ provide: NG_VALUE_ACCESSOR,
685
+ multi: true,
686
+ useExisting: SacDropzoneMultipleComponent,
687
+ },
688
+ {
689
+ provide: NG_VALIDATORS,
690
+ multi: true,
691
+ useExisting: forwardRef(() => SacDropzoneMultipleComponent),
692
+ },
693
+ ],
694
+ styles: [".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]
695
+ },] }
696
+ ];
697
+ SacDropzoneMultipleComponent.ctorParameters = () => [
698
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
699
+ { type: Injector },
700
+ { type: Renderer2 },
701
+ { type: NgZone }
702
+ ];
703
+
704
+ /**
705
+ * Dropzone Komponente für den Upload eines Files
706
+ * @see https://github.com/kukhariev/ngx-uploadx/
707
+ */
708
+ class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
709
+ // #region Constructors
710
+ /**
711
+ * Constructor
712
+ * @param formLayout SacFormLayout to define scoped layout settings
713
+ * @param injector Injector for injecting services
714
+ * @param renderer Angular rendering engine
715
+ * @param ngZone ngZone to manage external javascripts
716
+ */
717
+ constructor(formLayout, injector, renderer, ngZone) {
718
+ super(formLayout, injector, renderer, ngZone);
719
+ }
720
+ // #endregion Constructors
721
+ // #region Public Methods
722
+ /**
723
+ * Initialisiert das Control
724
+ */
725
+ ngOnInit() {
726
+ super.ngOnInit();
727
+ }
728
+ }
729
+ SacDropzoneSingleComponent.decorators = [
730
+ { type: Component, args: [{
731
+ selector: 'sac-dropzonesingle',
732
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
733
+ providers: [
734
+ {
735
+ provide: NG_VALUE_ACCESSOR,
736
+ multi: true,
737
+ useExisting: SacDropzoneSingleComponent,
738
+ },
739
+ {
740
+ provide: NG_VALIDATORS,
741
+ multi: true,
742
+ useExisting: forwardRef(() => SacDropzoneSingleComponent),
743
+ },
744
+ ],
745
+ styles: [".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]
746
+ },] }
747
+ ];
748
+ SacDropzoneSingleComponent.ctorParameters = () => [
749
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
750
+ { type: Injector },
751
+ { type: Renderer2 },
752
+ { type: NgZone }
753
+ ];
754
+
755
+ /**
756
+ * Upload Komponten
757
+ * @see https://github.com/kukhariev/ngx-uploadx/
758
+ */
759
+ class SacUploadComponent extends SacUploadSingleCommon {
760
+ // #region Constructors
761
+ /**
762
+ * Constructor
763
+ * @param formLayout SacFormLayout to define scoped layout settings
764
+ * @param injector Injector for injecting services
765
+ * @param renderer Angular rendering engine
766
+ * @param ngZone ngZone to manage external javascripts
767
+ */
768
+ constructor(formLayout, injector, renderer, ngZone) {
769
+ super(formLayout, injector, renderer, ngZone);
770
+ }
771
+ }
772
+ SacUploadComponent.decorators = [
773
+ { type: Component, args: [{
774
+ selector: 'sac-upload',
775
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
776
+ providers: [
777
+ {
778
+ provide: NG_VALUE_ACCESSOR,
779
+ multi: true,
780
+ useExisting: SacUploadComponent,
781
+ },
782
+ {
783
+ provide: NG_VALIDATORS,
784
+ multi: true,
785
+ useExisting: forwardRef(() => SacUploadComponent),
786
+ },
787
+ ],
788
+ styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
789
+ },] }
790
+ ];
791
+ SacUploadComponent.ctorParameters = () => [
792
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
793
+ { type: Injector },
794
+ { type: Renderer2 },
795
+ { type: NgZone }
796
+ ];
797
+
798
+ /**
799
+ * Upload Komponente für den Upload mehrer Files
800
+ * @see https://github.com/kukhariev/ngx-uploadx/
801
+ */
802
+ class SacUploadMultipleComponent extends SacUploadMultipleCommon {
803
+ // #region Constructors
804
+ /**
805
+ * Constructor
806
+ * @param formLayout SacFormLayout to define scoped layout settings
807
+ * @param injector Injector for injecting services
808
+ * @param renderer Angular rendering engine
809
+ * @param ngZone ngZone to manage external javascripts
810
+ */
811
+ constructor(formLayout, injector, renderer, ngZone) {
812
+ super(formLayout, injector, renderer, ngZone);
813
+ }
814
+ }
815
+ SacUploadMultipleComponent.decorators = [
816
+ { type: Component, args: [{
817
+ selector: 'sac-uploadmultiple',
818
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pr-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
819
+ providers: [
820
+ {
821
+ provide: NG_VALUE_ACCESSOR,
822
+ multi: true,
823
+ useExisting: SacUploadMultipleComponent,
824
+ },
825
+ {
826
+ provide: NG_VALIDATORS,
827
+ multi: true,
828
+ useExisting: forwardRef(() => SacUploadMultipleComponent),
829
+ },
830
+ ],
831
+ styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
832
+ },] }
833
+ ];
834
+ SacUploadMultipleComponent.ctorParameters = () => [
835
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
836
+ { type: Injector },
837
+ { type: Renderer2 },
838
+ { type: NgZone }
839
+ ];
840
+
841
+ class SACBootstrap4UploadModule {
842
+ }
843
+ SACBootstrap4UploadModule.decorators = [
844
+ { type: NgModule, args: [{
845
+ declarations: [
846
+ SacUploadComponent,
847
+ SacUploadMultipleComponent,
848
+ SacDropzoneSingleComponent,
849
+ SacDropzoneMultipleComponent,
850
+ ],
851
+ imports: [CommonModule, FormsModule, SACBootstrap4LayoutModule],
852
+ exports: [
853
+ SacUploadComponent,
854
+ SacUploadMultipleComponent,
855
+ SacDropzoneSingleComponent,
856
+ SacDropzoneMultipleComponent,
857
+ ],
858
+ },] }
859
+ ];
860
+
861
+ /**
862
+ * Server File Browser Komponente
863
+ */
864
+ class SacBrowserComponent extends SacFileBrowserCommon {
865
+ // #endregion Properties
866
+ // #region Constructors
867
+ /**
868
+ * Konstruktor
869
+ * @param httpClient HTTP Client
870
+ * @param injector Angular Dependency Injection Service
871
+ * @param confirmService Confirm Service
872
+ */
873
+ constructor(httpClient, injector, confirmService) {
874
+ super(httpClient, injector);
875
+ this.confirmService = confirmService;
876
+ }
877
+ // #endregion Constructors
878
+ // #region Public Methods
879
+ /**
880
+ * Confirm Action wenn ein File gelöscht werden soll
881
+ * @param file File das gelöscht werden soll.
882
+ * @returns Observable ob File gelöscht werden kann.
883
+ */
884
+ confirmDeleteFile(file) {
885
+ return new Observable((observer) => {
886
+ forkJoin({
887
+ title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
888
+ message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserConfirmTextDeleteFile),
889
+ }).subscribe((text) => {
890
+ this.confirmService
891
+ .ConfirmMessage(text.title, text.message)
892
+ .subscribe((result) => {
893
+ if (result === 'yes') {
894
+ observer.next(true);
895
+ }
896
+ else {
897
+ observer.next(false);
898
+ }
899
+ observer.complete();
900
+ });
901
+ });
902
+ });
903
+ }
904
+ /**
905
+ * Confirm Action wenn ein Ordner gelöscht werden soll
906
+ * @param node Ordner der gelöscht werden soll
907
+ * @returns Observable ob Ordner gelöscht kann.
908
+ */
909
+ confirmDeleteNode(node) {
910
+ return new Observable((observer) => {
911
+ forkJoin({
912
+ title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
913
+ message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserConfirmTextDeleteFolder),
914
+ }).subscribe((text) => {
915
+ this.confirmService
916
+ .ConfirmMessage(text.title, text.message)
917
+ .subscribe((result) => {
918
+ if (result === 'yes') {
919
+ observer.next(true);
920
+ }
921
+ else {
922
+ observer.next(false);
923
+ }
924
+ observer.complete();
925
+ });
926
+ });
927
+ });
928
+ }
929
+ /**
930
+ * Erzeugt ein Array von einer bestimmten grösse
931
+ * @param anzahl Grösse des Array
932
+ * @returns Array
933
+ */
934
+ count(anzahl) {
935
+ return new Array(anzahl);
936
+ }
937
+ /**
938
+ * Methode wird aufgerufen, wenn eine Datei verschoben wird
939
+ * @param uploadid Upload ID
940
+ */
941
+ uploadedFileMoved(uploadid) {
942
+ const item = this.uploadComponent.uploads.find((itm) => itm.documentid === uploadid);
943
+ if (item) {
944
+ this.uploadComponent.cancel(item.uploadId);
945
+ }
946
+ }
947
+ }
948
+ SacBrowserComponent.decorators = [
949
+ { type: Component, args: [{
950
+ selector: 'sac-filebrowser',
951
+ template: "<div class=\"row\">\r\n <div class=\"col-12 col-md-5 col-lg-4\">\r\n <ul class=\"list-group list-group-flush\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: rootNode, deep: 0}\"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node=\"node\" let-deep=\"deep\">\r\n <li\r\n class=\"list-group-item py-1 px-2 d-flex align-items-center\"\r\n [class.list-group-item-secondary]=\"node === selectedNode\"\r\n (click)=\"selectNode(node)\"\r\n style=\"cursor: pointer\"\r\n >\r\n <div class=\"mx-3\" *ngFor=\"let i of count(deep)\"></div>\r\n <div\r\n (click)=\"switchExpandNode(node);$event.stopPropagation();\"\r\n class=\"mr-2\"\r\n [ngClass]=\"node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : ''))\"\r\n ></div>\r\n <ng-container *ngIf=\"!node.IsEditMode\">\r\n <div class=\"flex-grow-1\">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"node.IsEditMode\">\r\n <div class=\"flex-grow-1\" ngForm>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"node.Name\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameNode(node, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false;\"\r\n (blur)=\"renameNode(node, null)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class=\"flex-shrink-0\">\r\n <a\r\n *ngIf=\"node.Path !== '/' && allowfolderrename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editNode(node);$event.stopPropagation();\"\r\n >\r\n <i [class]=\"iconEdit\"></i>\r\n </a>\r\n <sac-contextmenu cssclass=\"d-inline-block\">\r\n <sac-contextmenubutton\r\n *ngIf=\"allowfoldercreate\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}\"\r\n [icon]=\"iconFolderNew\"\r\n (clicked)=\"newNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf=\"node.Path !== '/' && allowfolderdelete\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}\"\r\n [icon]=\"iconDelete\"\r\n (clicked)=\"deleteNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf=\"allowfoldercreate || (node.Path !== '/' && allowfolderdelete)\"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text=\"{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}\"\r\n [icon]=\"iconRefresh\"\r\n (clicked)=\"refreshNode(node)\"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf=\"node.IsExpanded\">\r\n <ng-template\r\n *ngFor=\"let child of node.ChildNodes\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: child, deep: deep + 1}\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-12 col-md-7 col-lg-8\">\r\n <ng-container *ngIf=\"selectedNode && selectedNode.Files\">\r\n <div *ngIf=\"allowfileupload\" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]=\"true\"\r\n [endpoint]=\"apiurl + '/uploadregister'\"\r\n name=\"upload\"\r\n uploadheight=\"5rem\"\r\n [ngModel]=\"uploads\"\r\n (ngModelChange)=\"uploadComplete(selectedNode,$event)\"\r\n [allowedtypes]=\"allowedtypes\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\r\n | async }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover align-middle\">\r\n <thead>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\r\n | async }}\r\n </th>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\r\n | async }}\r\n </th>\r\n <th style=\"width: 80px\"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"selectedNode.Files.length === 0\">\r\n <tr>\r\n <td colspan=\"3\">\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\r\n | async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedNode.Files.length > 0\">\r\n <tr\r\n *ngFor=\"let item of selectedNode.Files\"\r\n (click)=\"selectFile(item)\"\r\n [class.table-primary]=\"selectedFileItem === item\"\r\n >\r\n <td [class.p-2]=\"item.IsEditMode\">\r\n <ng-container *ngIf=\"!item.IsEditMode\">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf=\"item.IsEditMode\">\r\n <div>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"item.Filename\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameFile(item, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false\"\r\n (blur)=\"renameFile(item, null)\"\r\n (click)=\"$event.stopPropagation();\"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class=\"p-2\">\r\n <div class=\"btn-toolbar\" role=\"toolbar\">\r\n <div class=\"btn-group ml-auto\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfilerename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconEdit\"></i\r\n ></a>\r\n </div>\r\n <div class=\"btn-group\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfiledelete\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"deleteFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconDelete\"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
952
+ providers: [ServiceConfirm]
953
+ },] }
954
+ ];
955
+ SacBrowserComponent.ctorParameters = () => [
956
+ { type: HttpClient },
957
+ { type: Injector },
958
+ { type: ServiceConfirm }
959
+ ];
960
+ SacBrowserComponent.propDecorators = {
961
+ uploadComponent: [{ type: ViewChild, args: [SacDropzoneMultipleComponent, { static: false },] }]
962
+ };
963
+
964
+ class SACBootstrap4BrowserModule {
965
+ }
966
+ SACBootstrap4BrowserModule.decorators = [
967
+ { type: NgModule, args: [{
968
+ declarations: [SacBrowserComponent],
969
+ imports: [
970
+ CommonModule,
971
+ HttpClientModule,
972
+ SACBootstrap4ConfirmModule,
973
+ SACBootstrap4ContextmenuModule,
974
+ SACBootstrap4UploadModule,
975
+ SACBootstrap4FormModule,
976
+ FormsModule,
977
+ ],
978
+ exports: [SacBrowserComponent],
979
+ bootstrap: [SacBrowserComponent],
980
+ },] }
981
+ ];
982
+
983
+ /**
984
+ * Checkbox Kompontente
985
+ */
986
+ class SacCheckboxComponent extends SacCheckboxCommon {
987
+ // #region Constructors
988
+ /**
989
+ *
990
+ * @param formLayout SacFormLayout to define scoped layout settings
991
+ * @param injector Injector for injecting services
992
+ */
993
+ constructor(formLayout, injector) {
994
+ super(formLayout, injector);
995
+ }
996
+ }
997
+ SacCheckboxComponent.decorators = [
998
+ { type: Component, args: [{
999
+ selector: 'sac-checkbox',
1000
+ template: "<div\r\n class=\"row\"\r\n [class.no-gutters]=\"disablelabel\"\r\n [class.form-group]=\"!stacked\"\r\n>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"align-self-center col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n",
1001
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1002
+ providers: [
1003
+ {
1004
+ provide: NG_VALUE_ACCESSOR,
1005
+ multi: true,
1006
+ useExisting: SacCheckboxComponent,
1007
+ },
1008
+ {
1009
+ provide: NG_VALIDATORS,
1010
+ useExisting: forwardRef(() => SacCheckboxComponent),
1011
+ multi: true,
1012
+ },
1013
+ ],
1014
+ styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]
1015
+ },] }
1016
+ ];
1017
+ SacCheckboxComponent.ctorParameters = () => [
1018
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1019
+ { type: Injector }
1020
+ ];
1021
+
1022
+ /**
1023
+ * Radiobuttons Group Komponente
1024
+ */
1025
+ class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
1026
+ // #region Constructors
1027
+ /**
1028
+ *
1029
+ * @param formLayout SacFormLayout to define scoped layout settings
1030
+ * @param injector Injector for injecting services
1031
+ */
1032
+ constructor(formLayout, injector) {
1033
+ super(formLayout, injector);
1034
+ }
1035
+ }
1036
+ SacRadiobuttonsComponent.decorators = [
1037
+ { type: Component, args: [{
1038
+ selector: 'sac-radiobuttons',
1039
+ template: "<div class=\"row form-group\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n *ngIf=\"!disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.pt-1]=\"componentHeight === ControlHeight.Small\"\r\n [class.pt-2]=\"componentHeight !== ControlHeight.Small\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n",
1040
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1041
+ providers: [
1042
+ {
1043
+ provide: NG_VALUE_ACCESSOR,
1044
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
1045
+ multi: true,
1046
+ },
1047
+ {
1048
+ provide: NG_VALIDATORS,
1049
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
1050
+ multi: true,
1051
+ },
1052
+ ]
1053
+ },] }
1054
+ ];
1055
+ SacRadiobuttonsComponent.ctorParameters = () => [
1056
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1057
+ { type: Injector }
1058
+ ];
1059
+
1060
+ /**
1061
+ * Radiobutton Komponente
1062
+ */
1063
+ class SacRadiobuttonComponent extends SacRadiobuttonCommon {
1064
+ /**
1065
+ * Konstruktor
1066
+ * @param SacRadioButtons Radio Buttons Group Komponente
1067
+ */
1068
+ constructor(sacRadioButtons) {
1069
+ super(sacRadioButtons);
1070
+ }
1071
+ }
1072
+ SacRadiobuttonComponent.decorators = [
1073
+ { type: Component, args: [{
1074
+ selector: 'sac-radiobutton',
1075
+ template: "<div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n *ngIf=\"hidden===false\"\r\n>\r\n <input\r\n id=\"{{getName}}_{{getIndex}}\"\r\n name=\"{{getName}}\"\r\n type=\"radio\"\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n [value]=\"value\"\r\n [checked]=\"checked\"\r\n (change)=\"ChangeEvent()\"\r\n [disabled]=\"isDisabled\"\r\n />\r\n <label\r\n for=\"{{getName}}_{{getIndex}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\"\r\n >\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>\r\n",
1076
+ styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;margin-top:.4rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]
1077
+ },] }
1078
+ ];
1079
+ SacRadiobuttonComponent.ctorParameters = () => [
1080
+ { type: SacRadiobuttonsComponent, decorators: [{ type: Host }] }
1081
+ ];
1082
+
1083
+ class SACBootstrap4CheckboxModule {
1084
+ }
1085
+ SACBootstrap4CheckboxModule.decorators = [
1086
+ { type: NgModule, args: [{
1087
+ declarations: [
1088
+ SacCheckboxComponent,
1089
+ SacRadiobuttonComponent,
1090
+ SacRadiobuttonsComponent,
1091
+ ],
1092
+ imports: [CommonModule, SACBootstrap4LayoutModule],
1093
+ exports: [
1094
+ SacCheckboxComponent,
1095
+ SacRadiobuttonComponent,
1096
+ SacRadiobuttonsComponent,
1097
+ ],
1098
+ },] }
1099
+ ];
1100
+
1101
+ /**
1102
+ * Referenz auf Moment.JS
1103
+ */
1104
+ const moment = moment_;
1105
+ /**
1106
+ * Komponente für Datumauswahl
1107
+ */
1108
+ class SacDateComponent extends SacDateCommon {
1109
+ // #region Constructors
1110
+ /**
1111
+ * Constructor
1112
+ * @param formLayout SacFormLayout to define scoped layout settings
1113
+ * @param injector Injector for injecting services
1114
+ * @param elementRef Reference to html dom element
1115
+ */
1116
+ constructor(formLayout, injector, elementRef) {
1117
+ super(formLayout, injector, elementRef);
1118
+ }
1119
+ }
1120
+ SacDateComponent.decorators = [
1121
+ { type: Component, args: [{
1122
+ selector: 'sac-date',
1123
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1124
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1125
+ providers: [
1126
+ {
1127
+ provide: NG_VALUE_ACCESSOR,
1128
+ multi: true,
1129
+ useExisting: forwardRef(() => SacDateComponent),
1130
+ },
1131
+ {
1132
+ provide: NG_VALIDATORS,
1133
+ multi: true,
1134
+ useExisting: forwardRef(() => SacDateComponent),
1135
+ },
1136
+ ]
1137
+ },] }
1138
+ ];
1139
+ SacDateComponent.ctorParameters = () => [
1140
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1141
+ { type: Injector },
1142
+ { type: ElementRef }
1143
+ ];
1144
+
1145
+ /**
1146
+ * DateTime Selektor Komponente
1147
+ */
1148
+ class SacDateSelectorComponent extends SacDateSelectorCommon {
1149
+ }
1150
+ SacDateSelectorComponent.decorators = [
1151
+ { type: Component, args: [{
1152
+ selector: 'sac-dateselector',
1153
+ template: "<div class=\"calendar-selector\">\r\n <div *ngIf=\"dateselection\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col text-left\">\r\n <a (click)=\"monthBack()\"><span [class]=\"iconMonthPrev\"></span></a>\r\n </div>\r\n <div class=\"col text-center\">{{month+1}}/{{year}}</div>\r\n <div class=\"col text-right\">\r\n <a (click)=\"monthNext()\"><span [class]=\"iconMonthNext\"></span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div></div>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let week of dates; let i=index\">\r\n <ng-container *ngFor=\"let item of week\">\r\n <div\r\n class=\"p-2 col text-center\"\r\n [ngStyle]=\"{'cursor': item.isenabled ? 'pointer' : null}\"\r\n [ngClass]=\"{'day-current': item.iscurrent, 'day-selected': item.isselected, 'day-new': item.isnew, 'day-disabled': !item.isenabled}\"\r\n (click)=\"selectDate(item)\"\r\n >\r\n {{ item.displaytext }}\r\n </div>\r\n </ng-container>\r\n <div class=\"w-100\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row justify-content-start\" *ngIf=\"timeselection\">\r\n <div class=\"p-2\">\r\n <div class=\"form-group\">\r\n <label>Stunde</label>\r\n <input\r\n type=\"number\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"getHours()\"\r\n (input)=\"setHours($event.target.value)\"\r\n min=\"0\"\r\n max=\"23\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"p-2\">\r\n <div class=\"form-group\">\r\n <label>Minute</label>\r\n <input\r\n type=\"number\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"getMinutes()\"\r\n (input)=\"setMinutes($event.target.value)\"\r\n min=\"0\"\r\n max=\"59\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"mr-auto p-2\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"setToday()\">\r\n Heute\r\n </button>\r\n </div>\r\n <div class=\"p-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n (click)=\"resetSelection()\"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n <div class=\"p-2\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"applySelection()\">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n"
1154
+ },] }
1155
+ ];
1156
+
1157
+ /**
1158
+ * Date und Time Komponente
1159
+ */
1160
+ class SacDateTimeComponent extends SacDateTimeCommon {
1161
+ // #region Constructors
1162
+ /**
1163
+ * Constructor
1164
+ * @param formLayout SacFormLayout to define scoped layout settings
1165
+ * @param injector Injector for injecting services
1166
+ * @param elementRef Reference to html dom element
1167
+ */
1168
+ constructor(formLayout, injector, elementRef) {
1169
+ super(formLayout, injector, elementRef);
1170
+ }
1171
+ }
1172
+ SacDateTimeComponent.decorators = [
1173
+ { type: Component, args: [{
1174
+ selector: 'sac-datetime',
1175
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1176
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1177
+ providers: [
1178
+ {
1179
+ provide: NG_VALUE_ACCESSOR,
1180
+ multi: true,
1181
+ useExisting: forwardRef(() => SacDateTimeComponent),
1182
+ },
1183
+ {
1184
+ provide: NG_VALIDATORS,
1185
+ multi: true,
1186
+ useExisting: forwardRef(() => SacDateTimeComponent),
1187
+ },
1188
+ ]
1189
+ },] }
1190
+ ];
1191
+ SacDateTimeComponent.ctorParameters = () => [
1192
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1193
+ { type: Injector },
1194
+ { type: ElementRef }
1195
+ ];
1196
+
1197
+ /**
1198
+ * Time Auswahl Komponente
1199
+ */
1200
+ class SacTimeComponent extends SacTimeCommon {
1201
+ // #region Constructors
1202
+ /**
1203
+ * Constructor
1204
+ * @param formLayout SacFormLayout to define scoped layout settings
1205
+ * @param injector Injector for injecting services
1206
+ * @param elementRef Reference to html dom element
1207
+ */
1208
+ constructor(formLayout, injector, elementRef) {
1209
+ super(formLayout, injector, elementRef);
1210
+ }
1211
+ }
1212
+ SacTimeComponent.decorators = [
1213
+ { type: Component, args: [{
1214
+ selector: 'sac-time',
1215
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showTimeSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"timeselect($event)\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1216
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1217
+ providers: [
1218
+ {
1219
+ provide: NG_VALUE_ACCESSOR,
1220
+ multi: true,
1221
+ useExisting: forwardRef(() => SacTimeComponent),
1222
+ },
1223
+ {
1224
+ provide: NG_VALIDATORS,
1225
+ multi: true,
1226
+ useExisting: forwardRef(() => SacTimeComponent),
1227
+ },
1228
+ ]
1229
+ },] }
1230
+ ];
1231
+ SacTimeComponent.ctorParameters = () => [
1232
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1233
+ { type: Injector },
1234
+ { type: ElementRef }
1235
+ ];
1236
+
1237
+ class SACBootstrap4DateTimeModule {
1238
+ }
1239
+ SACBootstrap4DateTimeModule.decorators = [
1240
+ { type: NgModule, args: [{
1241
+ declarations: [
1242
+ SacDateComponent,
1243
+ SacDateTimeComponent,
1244
+ SacTimeComponent,
1245
+ SacDateSelectorComponent,
1246
+ ],
1247
+ imports: [CommonModule, IMaskModule, SACBootstrap4LayoutModule],
1248
+ exports: [
1249
+ SacDateComponent,
1250
+ SacDateTimeComponent,
1251
+ SacTimeComponent,
1252
+ SacDateSelectorComponent,
1253
+ ],
1254
+ },] }
1255
+ ];
1256
+
1257
+ /**
1258
+ * Grid Komponente
1259
+ */
1260
+ class SacGridComponent extends SacGridCommon {
1261
+ // #endregion Properties
1262
+ // #region Constructors
1263
+ /**
1264
+ * Konstrukor
1265
+ * @param cdRef Change Detection Reference
1266
+ */
1267
+ constructor(cdRef, injector) {
1268
+ super(cdRef, injector);
1269
+ /**
1270
+ * Setzt die Ellipsis Funktion auf der Column
1271
+ */
1272
+ this.ellipsis = false;
1273
+ }
1274
+ }
1275
+ SacGridComponent.decorators = [
1276
+ { type: Component, args: [{
1277
+ selector: 'sac-grid',
1278
+ template: "<div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover\" id={{name}}>\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\">\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\">\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"value === undefined || value === null || value.length===0\">\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n <tr>\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging name=\"{{name}}Paging\" (paging)=\"pageChange($event)\" [pagerdata]=\"pagerdata\" [pagesizes]=\"pagesizes\" [pagingtext]=\"pagingtext\" [pagesizetext]=\"pagesizetext\" [pagesizedisabled]=\"pagesizedisabled\"></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
1279
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1280
+ providers: [
1281
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacGridComponent },
1282
+ {
1283
+ provide: NG_VALIDATORS,
1284
+ multi: true,
1285
+ useExisting: forwardRef(() => SacGridComponent),
1286
+ },
1287
+ ]
1288
+ },] }
1289
+ ];
1290
+ SacGridComponent.ctorParameters = () => [
1291
+ { type: ChangeDetectorRef },
1292
+ { type: Injector }
1293
+ ];
1294
+ SacGridComponent.propDecorators = {
1295
+ template: [{ type: ContentChild, args: [TemplateRef, { static: false },] }]
1296
+ };
1297
+
1298
+ /**
1299
+ * Grid Action Button
1300
+ *
1301
+ * @example Standard Action
1302
+ *
1303
+ * <ngGridButton icon="edit" (clicked)="action('edit')" [isdisabled]="true"></ngGridButton>
1304
+ *
1305
+ * @example Custom Action
1306
+ *
1307
+ * <ngGridButton iconstyle="sprite" icon="icon-sprite-base-main_info" (clicked)="action("info")"></ngGridButton>
1308
+ *
1309
+ */
1310
+ class SacGridButtonComponent extends SacGridButtonCommon {
1311
+ /**
1312
+ * Gibt das Icon für den Button zurück
1313
+ */
1314
+ getIconClass() {
1315
+ let iconset = this.iconstyle;
1316
+ let iconcss = this.icon;
1317
+ if (iconset === '') {
1318
+ switch (this.icon) {
1319
+ case 'edit':
1320
+ iconset = 'sprite';
1321
+ iconcss = 'icon-sprite-base-main_edit';
1322
+ break;
1323
+ case 'delete':
1324
+ iconset = 'sprite';
1325
+ iconcss = 'icon-sprite-base-main_delete';
1326
+ break;
1327
+ }
1328
+ }
1329
+ if (this._isdisabledvalue) {
1330
+ iconcss += '_disabled';
1331
+ }
1332
+ const result = iconset + ' ' + iconcss;
1333
+ return result.trim();
1334
+ }
1335
+ }
1336
+ SacGridButtonComponent.decorators = [
1337
+ { type: Component, args: [{
1338
+ selector: 'sac-gridbutton',
1339
+ template: "<a (click)=\"callaction()\" style=\"padding-right: 5px;\" [class.disabled]=\"isdisabled\" [attr.disabled]=\"isdisabled ? 'disabled' : null\"><span class=\"{{getIconClass()}}\"></span></a>\r\n"
1340
+ },] }
1341
+ ];
1342
+
1343
+ /**
1344
+ * Grid Column Komponente
1345
+ */
1346
+ class SacGridColumnComponent extends SacGridColumnCommon {
1347
+ /**
1348
+ * Konstruktor
1349
+ * @param grid Grid Referenz
1350
+ * @param el HTML DOM Element
1351
+ */
1352
+ constructor(grid, injector, el) {
1353
+ super(grid, injector, el);
1354
+ }
1355
+ }
1356
+ SacGridColumnComponent.decorators = [
1357
+ { type: Component, args: [{
1358
+ selector: 'sac-gridcolumn',
1359
+ template: "<th\r\n scope=\"col\"\r\n *ngIf=\"IsHeader()\"\r\n [style.width]=\"width\"\r\n (click)=\"SortByColumn()\"\r\n>\r\n <span>{{header}}</span>\r\n <span\r\n class=\"pl-2\"\r\n [class]=\"IconSortUp\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='asc'\"\r\n ></span>\r\n <span\r\n class=\"pl-2\"\r\n [class]=\"IconSortDown\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='desc'\"\r\n ></span>\r\n</th>\r\n<td\r\n scope=\"col\"\r\n *ngIf=\"IsBody()\"\r\n [style.width]=\"width\"\r\n [class.ellipsis]=\"IsEllipsis()\"\r\n>\r\n <span [attr.title]=\"IsEllipsis() ? value : null\"> {{value}} </span>\r\n</td>\r\n",
1360
+ providers: [
1361
+ {
1362
+ provide: SacGridColumnBaseCommon,
1363
+ useExisting: forwardRef(() => SacGridColumnComponent),
1364
+ },
1365
+ ]
1366
+ },] }
1367
+ ];
1368
+ SacGridColumnComponent.ctorParameters = () => [
1369
+ { type: SacGridComponent },
1370
+ { type: Injector },
1371
+ { type: ElementRef }
1372
+ ];
1373
+
1374
+ /**
1375
+ * Grid Action Komponent
1376
+ */
1377
+ class SacGridColumnActionComponent extends SacGridColumnActionCommon {
1378
+ /**
1379
+ * Konstruktor
1380
+ * @param grid Referenz auf Grid
1381
+ * @param el HTML Element Referenz
1382
+ */
1383
+ constructor(grid, injector, el) {
1384
+ super(grid, injector, el);
1385
+ this.width = '60px';
1386
+ }
1387
+ }
1388
+ SacGridColumnActionComponent.decorators = [
1389
+ { type: Component, args: [{
1390
+ selector: 'sac-gridcolumnaction',
1391
+ template: "<th scope=\"col\" *ngIf=\"IsHeader()\" [style.width]=\"width\"><span></span></th>\r\n<td scope=\"col\" class=\"px-2\" *ngIf=\"IsBody()\">\r\n <ng-content></ng-content>\r\n</td>\r\n",
1392
+ providers: [
1393
+ {
1394
+ provide: SacGridColumnBaseCommon,
1395
+ useExisting: forwardRef(() => SacGridColumnActionComponent),
1396
+ },
1397
+ ]
1398
+ },] }
1399
+ ];
1400
+ SacGridColumnActionComponent.ctorParameters = () => [
1401
+ { type: SacGridComponent },
1402
+ { type: Injector },
1403
+ { type: ElementRef }
1404
+ ];
1405
+
1406
+ /**
1407
+ * Image Item für Grid
1408
+ */
1409
+ class SacGridImageComponent extends SacGridImageCommon {
1410
+ /**
1411
+ * Gibt die CSS Klassen für Sprite Images zurück
1412
+ * @returns CSS Klasse
1413
+ */
1414
+ getIconClass() {
1415
+ switch (this.iconstyle) {
1416
+ case 'edit':
1417
+ return 'sprite icon-sprite-base-main_edit';
1418
+ case 'delete':
1419
+ return 'sprite icon-sprite-base-main_delete';
1420
+ default:
1421
+ return this.iconstyle;
1422
+ }
1423
+ }
1424
+ }
1425
+ SacGridImageComponent.decorators = [
1426
+ { type: Component, args: [{
1427
+ selector: 'sac-gridimage',
1428
+ template: "<span><span class=\"{{getIconClass()}}\"></span></span>\r\n"
1429
+ },] }
1430
+ ];
1431
+
1432
+ /**
1433
+ * Paging Komponente
1434
+ */
1435
+ class SacPagingComponent extends SacPagingCommon {
1436
+ /**
1437
+ * Konstruktor
1438
+ * @param injector Angular Dependency Injection Service
1439
+ */
1440
+ constructor(injector) {
1441
+ super(injector);
1442
+ }
1443
+ }
1444
+ SacPagingComponent.decorators = [
1445
+ { type: Component, args: [{
1446
+ selector: 'sac-paging',
1447
+ template: "<div\r\n class=\"d-flex justify-content-between align-items-center flex-wrap\"\r\n id=\"{{name}}\"\r\n>\r\n <div class=\"col-pagination order-2 order-md-1\" id=\"{{name}}_pages\">\r\n <ul class=\"pagination mb-4 mb-md-0\">\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === firstPageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"firstPage()\">\u00AB</a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n *ngFor=\"let page of paginators; let i = index\"\r\n [ngClass]=\"{'active': page === activePageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"changePage(page)\">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n class=\"page-item\"\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === lastPageIndex}\"\r\n >\r\n <a class=\"page-link\" (click)=\"lastPage()\">\u00BB</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-summary order-1 order-md-2\">\r\n <div class=\"mb-4 mb-md-0 mr-4 mb-md-0\">{{ PagingText | async }}</div>\r\n </div>\r\n <div class=\"col-pagesize order-3\" *ngIf=\"!pagesizedisabled\">\r\n <div class=\"d-flex align-items-center\" id=\"{{name}}_size\">\r\n <select\r\n class=\"form-control form-control-sm\"\r\n style=\"width: 85px\"\r\n [ngModel]=\"pageSize\"\r\n (ngModelChange)=\"changePageSize($event)\"\r\n >\r\n <option [ngValue]=\"size\" *ngFor=\"let size of getPageSizes\">\r\n {{size}}\r\n </option>\r\n </select>\r\n <div class=\"ml-2\">{{ PageSizeText | async }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1448
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1449
+ providers: [
1450
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacPagingComponent },
1451
+ {
1452
+ provide: NG_VALIDATORS,
1453
+ multi: true,
1454
+ useExisting: forwardRef(() => SacPagingComponent),
1455
+ },
1456
+ ]
1457
+ },] }
1458
+ ];
1459
+ SacPagingComponent.ctorParameters = () => [
1460
+ { type: Injector }
1461
+ ];
1462
+
1463
+ class SACBootstrap4GridModule {
1464
+ }
1465
+ SACBootstrap4GridModule.decorators = [
1466
+ { type: NgModule, args: [{
1467
+ declarations: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent],
1468
+ imports: [
1469
+ CommonModule, FormsModule
1470
+ ],
1471
+ exports: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent]
1472
+ },] }
1473
+ ];
1474
+
1475
+ /**
1476
+ * Input Komponente
1477
+ */
1478
+ class SacInputComponent extends SacInputCommon {
1479
+ // #region Constructors
1480
+ /**
1481
+ * Constructor
1482
+ * @param formLayout SacFormLayout to define scoped layout settings
1483
+ * @param injector Injector for injecting services
1484
+ */
1485
+ constructor(formLayout, injector) {
1486
+ super(formLayout, injector);
1487
+ }
1488
+ }
1489
+ SacInputComponent.decorators = [
1490
+ { type: Component, args: [{
1491
+ selector: 'sac-input',
1492
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1493
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1494
+ providers: [
1495
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacInputComponent },
1496
+ {
1497
+ provide: NG_VALIDATORS,
1498
+ multi: true,
1499
+ useExisting: forwardRef(() => SacInputComponent),
1500
+ },
1501
+ ]
1502
+ },] }
1503
+ ];
1504
+ SacInputComponent.ctorParameters = () => [
1505
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1506
+ { type: Injector }
1507
+ ];
1508
+
1509
+ /**
1510
+ * Input Box für lange Texte
1511
+ */
1512
+ class SacInputAreaComponent extends SacInputAreaCommon {
1513
+ // #region Constructors
1514
+ /**
1515
+ * Constructor
1516
+ * @param formLayout SacFormLayout to define scoped layout settings
1517
+ * @param injector Injector for injecting services
1518
+ */
1519
+ constructor(formLayout, injector) {
1520
+ super(formLayout, injector);
1521
+ }
1522
+ }
1523
+ SacInputAreaComponent.decorators = [
1524
+ { type: Component, args: [{
1525
+ selector: 'sac-inputarea',
1526
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.rows]=\"rows\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [attr.maxlength]=\"maxlength\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1527
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1528
+ providers: [
1529
+ {
1530
+ provide: NG_VALUE_ACCESSOR,
1531
+ multi: true,
1532
+ useExisting: forwardRef(() => SacInputAreaComponent),
1533
+ },
1534
+ {
1535
+ provide: NG_VALIDATORS,
1536
+ multi: true,
1537
+ useExisting: forwardRef(() => SacInputAreaComponent),
1538
+ },
1539
+ ]
1540
+ },] }
1541
+ ];
1542
+ SacInputAreaComponent.ctorParameters = () => [
1543
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1544
+ { type: Injector }
1545
+ ];
1546
+
1547
+ /**
1548
+ * Input Control für Währungen
1549
+ */
1550
+ class SacInputCurrencyComponent extends SacInputCurrencyCommon {
1551
+ // #region Constructors
1552
+ /**
1553
+ * Constructor
1554
+ * @param formLayout SacFormLayout to define scoped layout settings
1555
+ * @param injector Injector for injecting services
1556
+ */
1557
+ constructor(formLayout, injector) {
1558
+ super(formLayout, injector);
1559
+ }
1560
+ }
1561
+ SacInputCurrencyComponent.decorators = [
1562
+ { type: Component, args: [{
1563
+ selector: 'sac-inputcurrency',
1564
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\">{{currency}}</span>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1565
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1566
+ providers: [
1567
+ {
1568
+ provide: NG_VALUE_ACCESSOR,
1569
+ multi: true,
1570
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1571
+ },
1572
+ {
1573
+ provide: NG_VALIDATORS,
1574
+ multi: true,
1575
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1576
+ },
1577
+ ]
1578
+ },] }
1579
+ ];
1580
+ SacInputCurrencyComponent.ctorParameters = () => [
1581
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1582
+ { type: Injector }
1583
+ ];
1584
+
1585
+ /**
1586
+ * Input Komponente für Zahlen
1587
+ */
1588
+ class SacInputDecimalComponent extends SacInputDecimalCommon {
1589
+ // #region Constructors
1590
+ /**
1591
+ * Constructor
1592
+ * @param formlayout SacFormLayoutCommon to define scoped layout settings
1593
+ * @param injector Injector for injecting services
1594
+ */
1595
+ constructor(formlayout, injector) {
1596
+ super(formlayout, injector);
1597
+ }
1598
+ }
1599
+ SacInputDecimalComponent.decorators = [
1600
+ { type: Component, args: [{
1601
+ selector: 'sac-inputdecimal',
1602
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1603
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1604
+ providers: [
1605
+ {
1606
+ provide: NG_VALUE_ACCESSOR,
1607
+ multi: true,
1608
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1609
+ },
1610
+ {
1611
+ provide: NG_VALIDATORS,
1612
+ multi: true,
1613
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1614
+ },
1615
+ ]
1616
+ },] }
1617
+ ];
1618
+ SacInputDecimalComponent.ctorParameters = () => [
1619
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1620
+ { type: Injector }
1621
+ ];
1622
+
1623
+ /**
1624
+ * Input Box für E-Mail Adressen
1625
+ */
1626
+ class SacInputEmailComponent extends SacInputEmailCommon {
1627
+ // #region Constructors
1628
+ /**
1629
+ * Constructor
1630
+ * @param formLayout SacFormLayout to define scoped layout settings
1631
+ * @param injector Injector for injecting services
1632
+ */
1633
+ constructor(formLayout, injector) {
1634
+ super(formLayout, injector);
1635
+ }
1636
+ }
1637
+ SacInputEmailComponent.decorators = [
1638
+ { type: Component, args: [{
1639
+ selector: 'sac-inputemail',
1640
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\">@</span>\r\n </div>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"email\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1641
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1642
+ providers: [
1643
+ {
1644
+ provide: NG_VALUE_ACCESSOR,
1645
+ multi: true,
1646
+ useExisting: forwardRef(() => SacInputEmailComponent),
1647
+ },
1648
+ {
1649
+ provide: NG_VALIDATORS,
1650
+ multi: true,
1651
+ useExisting: forwardRef(() => SacInputEmailComponent),
1652
+ },
1653
+ ]
1654
+ },] }
1655
+ ];
1656
+ SacInputEmailComponent.ctorParameters = () => [
1657
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1658
+ { type: Injector }
1659
+ ];
1660
+
1661
+ /**
1662
+ * Input Komponten für Ganzzahlen
1663
+ */
1664
+ class SacInputIntegerComponent extends SacInputIntegerCommon {
1665
+ // #region Constructors
1666
+ /**
1667
+ * Constructor
1668
+ * @param formLayout SacFormLayout to define scoped layout settings
1669
+ * @param injector Injector for injecting services
1670
+ */
1671
+ constructor(formLayout, injector) {
1672
+ super(formLayout, injector);
1673
+ }
1674
+ }
1675
+ SacInputIntegerComponent.decorators = [
1676
+ { type: Component, args: [{
1677
+ selector: 'sac-inputinteger',
1678
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1679
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1680
+ providers: [
1681
+ {
1682
+ provide: NG_VALUE_ACCESSOR,
1683
+ multi: true,
1684
+ useExisting: SacInputIntegerComponent,
1685
+ },
1686
+ {
1687
+ provide: NG_VALIDATORS,
1688
+ multi: true,
1689
+ useExisting: forwardRef(() => SacInputIntegerComponent),
1690
+ },
1691
+ ]
1692
+ },] }
1693
+ ];
1694
+ SacInputIntegerComponent.ctorParameters = () => [
1695
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1696
+ { type: Injector }
1697
+ ];
1698
+
1699
+ /**
1700
+ * Input Box für Passwörter
1701
+ */
1702
+ class SacInputPasswordComponent extends SacInputPasswordCommon {
1703
+ // #region Constructors
1704
+ /**
1705
+ * Constructor
1706
+ * @param formLayout SacFormLayout to define scoped layout settings
1707
+ * @param injector Injector for injecting services
1708
+ */
1709
+ constructor(formLayout, injector) {
1710
+ super(formLayout, injector);
1711
+ }
1712
+ }
1713
+ SacInputPasswordComponent.decorators = [
1714
+ { type: Component, args: [{
1715
+ selector: 'sac-inputpassword',
1716
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"new-password\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1717
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1718
+ providers: [
1719
+ {
1720
+ provide: NG_VALUE_ACCESSOR,
1721
+ multi: true,
1722
+ useExisting: SacInputPasswordComponent,
1723
+ },
1724
+ {
1725
+ provide: NG_VALIDATORS,
1726
+ multi: true,
1727
+ useExisting: forwardRef(() => SacInputPasswordComponent),
1728
+ },
1729
+ ]
1730
+ },] }
1731
+ ];
1732
+ SacInputPasswordComponent.ctorParameters = () => [
1733
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1734
+ { type: Injector }
1735
+ ];
1736
+
1737
+ /**
1738
+ * Input Box für Suche
1739
+ */
1740
+ class SacInputSearchComponent extends SacInputSearchCommon {
1741
+ // #region Constructors
1742
+ /**
1743
+ * Constructor
1744
+ * @param formLayout SacFormLayout to define scoped layout settings
1745
+ * @param injector Injector for injecting services
1746
+ */
1747
+ constructor(formLayout, injector) {
1748
+ super(formLayout, injector);
1749
+ }
1750
+ }
1751
+ SacInputSearchComponent.decorators = [
1752
+ { type: Component, args: [{
1753
+ selector: 'sac-inputsearch',
1754
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div class=\"input-group-append\">\r\n <input\r\n type=\"submit\"\r\n class=\"btn btn-secondary\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n [value]=\"buttontext\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1755
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1756
+ providers: [
1757
+ {
1758
+ provide: NG_VALUE_ACCESSOR,
1759
+ multi: true,
1760
+ useExisting: SacInputSearchComponent,
1761
+ },
1762
+ {
1763
+ provide: NG_VALIDATORS,
1764
+ multi: true,
1765
+ useExisting: forwardRef(() => SacInputSearchComponent),
1766
+ },
1767
+ ]
1768
+ },] }
1769
+ ];
1770
+ SacInputSearchComponent.ctorParameters = () => [
1771
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1772
+ { type: Injector }
1773
+ ];
1774
+
1775
+ class SACBootstrap4InputModule {
1776
+ }
1777
+ SACBootstrap4InputModule.decorators = [
1778
+ { type: NgModule, args: [{
1779
+ declarations: [
1780
+ SacInputComponent,
1781
+ SacInputAreaComponent,
1782
+ SacInputCurrencyComponent,
1783
+ SacInputDecimalComponent,
1784
+ SacInputEmailComponent,
1785
+ SacInputIntegerComponent,
1786
+ SacInputPasswordComponent,
1787
+ SacInputSearchComponent,
1788
+ ],
1789
+ imports: [CommonModule, SACBootstrap4LayoutModule],
1790
+ exports: [
1791
+ SacInputComponent,
1792
+ SacInputAreaComponent,
1793
+ SacInputCurrencyComponent,
1794
+ SacInputDecimalComponent,
1795
+ SacInputEmailComponent,
1796
+ SacInputIntegerComponent,
1797
+ SacInputPasswordComponent,
1798
+ SacInputSearchComponent,
1799
+ ],
1800
+ },] }
1801
+ ];
1802
+
1803
+ // #region Classes
1804
+ /**
1805
+ * Dropdown Komponente
1806
+ */
1807
+ class SacDropdownComponent extends SacDropdownCommon {
1808
+ // #region Constructors
1809
+ /**
1810
+ * Constructor
1811
+ * @param formLayout SacFormLayout to define scoped layout settings
1812
+ * @param injector Injector for injecting services
1813
+ * @param renderer Angular rendering engine
1814
+ * @param elementRef Reference to html dom element
1815
+ */
1816
+ constructor(formLayout, injector, renderer, elementRef) {
1817
+ super(formLayout, injector, renderer, elementRef);
1818
+ }
1819
+ }
1820
+ SacDropdownComponent.decorators = [
1821
+ { type: Component, args: [{
1822
+ selector: 'sac-dropdown',
1823
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n",
1824
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1825
+ providers: [
1826
+ {
1827
+ provide: NG_VALUE_ACCESSOR,
1828
+ multi: true,
1829
+ useExisting: SacDropdownComponent,
1830
+ },
1831
+ {
1832
+ provide: NG_VALIDATORS,
1833
+ multi: true,
1834
+ useExisting: forwardRef(() => SacDropdownComponent),
1835
+ },
1836
+ ]
1837
+ },] }
1838
+ ];
1839
+ SacDropdownComponent.ctorParameters = () => [
1840
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1841
+ { type: Injector },
1842
+ { type: Renderer2 },
1843
+ { type: ElementRef }
1844
+ ];
1845
+ /**
1846
+ * Direktive für Dropdown Option List
1847
+ */
1848
+ class SacDropdownOptionDirective extends SacDropdownOptionCommon {
1849
+ // #region Constructors
1850
+ /**
1851
+ * Konstruktor
1852
+ * @param elementRef Referenz auf HTML DOM Element
1853
+ * @param renderer Angular Rendering Engine
1854
+ * @param dropdownList Referenz auf DropDown Komponente
1855
+ */
1856
+ constructor(elementRef, renderer, dropdownList) {
1857
+ super(elementRef, renderer, dropdownList);
1858
+ }
1859
+ }
1860
+ SacDropdownOptionDirective.decorators = [
1861
+ { type: Directive, args: [{ selector: '[sacOption],option' },] }
1862
+ ];
1863
+ SacDropdownOptionDirective.ctorParameters = () => [
1864
+ { type: ElementRef },
1865
+ { type: Renderer2 },
1866
+ { type: SacDropdownComponent, decorators: [{ type: Optional }, { type: Host }] }
1867
+ ];
1868
+ // #endregion Classes
1869
+
1870
+ class SACBootstrap4DropdownModule {
1871
+ }
1872
+ SACBootstrap4DropdownModule.decorators = [
1873
+ { type: NgModule, args: [{
1874
+ declarations: [SacDropdownComponent, SacDropdownOptionDirective],
1875
+ imports: [CommonModule, SACBootstrap4LayoutModule],
1876
+ exports: [SacDropdownComponent, SacDropdownOptionDirective],
1877
+ },] }
1878
+ ];
1879
+
1880
+ // #region Classes
1881
+ /**
1882
+ * Listbox Komponente
1883
+ */
1884
+ class SacListboxComponent extends SacListboxCommon {
1885
+ // #region Constructors
1886
+ /**
1887
+ * Constructor
1888
+ * @param formLayout SacFormLayout to define scoped layout settings
1889
+ * @param injector Injector for injecting services
1890
+ */
1891
+ constructor(formLayout, injector) {
1892
+ super(formLayout, injector);
1893
+ }
1894
+ }
1895
+ SacListboxComponent.decorators = [
1896
+ { type: Component, args: [{
1897
+ selector: 'sac-listbox',
1898
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [size]=\"rowsize\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1899
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1900
+ providers: [
1901
+ {
1902
+ provide: NG_VALUE_ACCESSOR,
1903
+ multi: true,
1904
+ useExisting: SacListboxComponent,
1905
+ },
1906
+ {
1907
+ provide: NG_VALIDATORS,
1908
+ multi: true,
1909
+ useExisting: forwardRef(() => SacListboxComponent),
1910
+ },
1911
+ ]
1912
+ },] }
1913
+ ];
1914
+ SacListboxComponent.ctorParameters = () => [
1915
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1916
+ { type: Injector }
1917
+ ];
1918
+ /**
1919
+ * Option Item in Listbox
1920
+ */
1921
+ class SacListboxOptionDirective extends SacListboxOptionCommon {
1922
+ // #region Constructors
1923
+ /**
1924
+ * Konstruktor
1925
+ * @param elementRef Referenz auf DOM Element
1926
+ * @param renderer Angular Rendering Engine
1927
+ * @param listbox Referenz auf Listbox Komponente
1928
+ */
1929
+ constructor(elementRef, renderer, listbox) {
1930
+ super(elementRef, renderer, listbox);
1931
+ }
1932
+ }
1933
+ SacListboxOptionDirective.decorators = [
1934
+ { type: Directive, args: [{ selector: '[sacOption],option' },] }
1935
+ ];
1936
+ SacListboxOptionDirective.ctorParameters = () => [
1937
+ { type: ElementRef },
1938
+ { type: Renderer2 },
1939
+ { type: SacListboxComponent, decorators: [{ type: Optional }, { type: Host }] }
1940
+ ];
1941
+ // #endregion Classes
1942
+
1943
+ class SACBootstrap4ListModule {
1944
+ }
1945
+ SACBootstrap4ListModule.decorators = [
1946
+ { type: NgModule, args: [{
1947
+ declarations: [SacListboxComponent, SacListboxOptionDirective],
1948
+ imports: [CommonModule, SACBootstrap4LayoutModule],
1949
+ exports: [SacListboxComponent, SacListboxOptionDirective],
1950
+ },] }
1951
+ ];
1952
+
1953
+ /**
1954
+ * Componente für Mehrsprache Texte
1955
+ */
1956
+ class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
1957
+ // #endregion Properties
1958
+ // #region Constructors
1959
+ /**
1960
+ * Constructor
1961
+ * @param formLayout SacFormLayout to define scoped layout settings
1962
+ * @param injector Injector for injecting services
1963
+ */
1964
+ constructor(formLayout, injector) {
1965
+ super(formLayout, injector);
1966
+ // #region Properties
1967
+ /**
1968
+ * Enum für IconType in HTML Template
1969
+ */
1970
+ this.IconType = IconType;
1971
+ }
1972
+ }
1973
+ SacMultilanguageInputComponent.decorators = [
1974
+ { type: Component, args: [{
1975
+ selector: 'sac-multilanguageinput',
1976
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
1977
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1978
+ providers: [
1979
+ {
1980
+ provide: NG_VALUE_ACCESSOR,
1981
+ multi: true,
1982
+ useExisting: SacMultilanguageInputComponent,
1983
+ },
1984
+ {
1985
+ provide: NG_VALIDATORS,
1986
+ multi: true,
1987
+ useExisting: forwardRef(() => SacMultilanguageInputComponent),
1988
+ },
1989
+ ]
1990
+ },] }
1991
+ ];
1992
+ SacMultilanguageInputComponent.ctorParameters = () => [
1993
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
1994
+ { type: Injector }
1995
+ ];
1996
+
1997
+ /**
1998
+ * Componente für Mehrsprache Texte als mehrzeiliger Text
1999
+ */
2000
+ class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAreaCommon {
2001
+ // #endregion Properties
2002
+ // #region Constructors
2003
+ /**
2004
+ * Constructor
2005
+ * @param formLayout SacFormLayout to define scoped layout settings
2006
+ * @param injector Injector for injecting services
2007
+ */
2008
+ constructor(formLayout, injector) {
2009
+ super(formLayout, injector);
2010
+ // #region Properties
2011
+ /**
2012
+ * Enum für IconType in HTML Template
2013
+ */
2014
+ this.IconType = IconType;
2015
+ }
2016
+ }
2017
+ SacMultilanguageInputAreaComponent.decorators = [
2018
+ { type: Component, args: [{
2019
+ selector: 'sac-multilanguageinputarea',
2020
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n style=\"height: auto\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.rows]=\"rows\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n ></textarea>\r\n\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <i\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></i>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
2021
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2022
+ providers: [
2023
+ {
2024
+ provide: NG_VALUE_ACCESSOR,
2025
+ multi: true,
2026
+ useExisting: SacMultilanguageInputAreaComponent,
2027
+ },
2028
+ {
2029
+ provide: NG_VALIDATORS,
2030
+ multi: true,
2031
+ useExisting: forwardRef(() => SacMultilanguageInputAreaComponent),
2032
+ },
2033
+ ]
2034
+ },] }
2035
+ ];
2036
+ SacMultilanguageInputAreaComponent.ctorParameters = () => [
2037
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
2038
+ { type: Injector }
2039
+ ];
2040
+
2041
+ /**
2042
+ * Component für Contextmenü
2043
+ */
2044
+ class SacMultilanguagemenuComponent extends SacContextmenuCommon {
2045
+ // #region Constructors
2046
+ /**
2047
+ * Constructor
2048
+ * @param document Referenz auf HTML Document
2049
+ * @param ngZone Angular Zone Service
2050
+ * @param elementRef Referenz auf HTML Element der aktuellen Komponente
2051
+ * @param renderer Render Service von Angular
2052
+ * @param injector injector to resolve services in base component
2053
+ */
2054
+ constructor(document, ngZone, elementRef, renderer, injector) {
2055
+ super(document, ngZone, elementRef, renderer, injector);
2056
+ }
2057
+ }
2058
+ SacMultilanguagemenuComponent.decorators = [
2059
+ { type: Component, args: [{
2060
+ selector: '[sac-multilanguagemenu]',
2061
+ template: "<ng-container\r\n [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"\r\n></ng-container>\r\n\r\n<div\r\n class=\"dropdown-menu dropdown-menu-right\"\r\n sacMultilanguageMenuContainer\r\n [class.show]=\"isopen\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n class=\"btn btn-secondary dropdown-toggle\"\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n ></button>\r\n</ng-template>\r\n",
2062
+ providers: [
2063
+ {
2064
+ provide: SacContextmenuCommon,
2065
+ useExisting: forwardRef(() => SacMultilanguagemenuComponent),
2066
+ },
2067
+ ]
2068
+ },] }
2069
+ ];
2070
+ SacMultilanguagemenuComponent.ctorParameters = () => [
2071
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
2072
+ { type: NgZone },
2073
+ { type: ElementRef },
2074
+ { type: Renderer2 },
2075
+ { type: Injector }
2076
+ ];
2077
+
2078
+ /**
2079
+ * Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
2080
+ */
2081
+ class SacMultilanguagemenuAnchorDirective extends SacContextmenuAnchorCommon {
2082
+ // #region Constructors
2083
+ /**
2084
+ * Konstruktor
2085
+ * @param elementRef HTML DOM Referenz
2086
+ */
2087
+ constructor(elementRef) {
2088
+ super(elementRef);
2089
+ }
2090
+ }
2091
+ SacMultilanguagemenuAnchorDirective.decorators = [
2092
+ { type: Directive, args: [{
2093
+ selector: '[sacMultilanguageMenuAnchor]',
2094
+ providers: [
2095
+ {
2096
+ provide: SacContextmenuAnchorCommon,
2097
+ useExisting: forwardRef(() => SacMultilanguagemenuAnchorDirective),
2098
+ },
2099
+ ],
2100
+ },] }
2101
+ ];
2102
+ SacMultilanguagemenuAnchorDirective.ctorParameters = () => [
2103
+ { type: ElementRef }
2104
+ ];
2105
+
2106
+ /**
2107
+ * Marker Komponente für Context Menü
2108
+ */
2109
+ class SacMultilanguagemenuContainerDirective extends SacContextMenuContrainerCommon {
2110
+ // #region Constructors
2111
+ /**
2112
+ * Konstruktor
2113
+ * @param elementRef Referenz auf DOM Element
2114
+ */
2115
+ constructor(elementRef) {
2116
+ super(elementRef);
2117
+ }
2118
+ }
2119
+ SacMultilanguagemenuContainerDirective.decorators = [
2120
+ { type: Directive, args: [{
2121
+ selector: '[sacMultilanguageMenuContainer]',
2122
+ providers: [
2123
+ {
2124
+ provide: SacContextMenuContrainerCommon,
2125
+ useExisting: forwardRef(() => SacMultilanguagemenuContainerDirective),
2126
+ },
2127
+ ],
2128
+ },] }
2129
+ ];
2130
+ SacMultilanguagemenuContainerDirective.ctorParameters = () => [
2131
+ { type: ElementRef }
2132
+ ];
2133
+
2134
+ /**
2135
+ * Component für Menü Eintrag in Context Menü
2136
+ */
2137
+ class SacMultilanguagemenuItemButtonComponent extends SacContextmenuItemButtonCommon {
2138
+ /**
2139
+ * Constructor
2140
+ * @param contextmenu Instance von Context Menü
2141
+ */
2142
+ constructor(contextmenu) {
2143
+ super(contextmenu);
2144
+ }
2145
+ }
2146
+ SacMultilanguagemenuItemButtonComponent.decorators = [
2147
+ { type: Component, args: [{
2148
+ selector: 'sac-multilanguagemenubutton',
2149
+ template: "<button\r\n type=\"button\"\r\n class=\"dropdown-item\"\r\n (click)=\"callaction($event)\"\r\n [class.disabled]=\"isdisabled\"\r\n [ngClass]=\"cssclass\"\r\n [attr.disabled]=\"isdisabled ? 'disabled' : null\"\r\n>\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"!isicondisabled\" style=\"min-width: 1.5rem\">\r\n <img *ngIf=\"image\" [src]=\"image\" class=\"align-baseline\" />\r\n <i *ngIf=\"icon\" [class]=\"iconstyle + ' ' + icon\"></i>\r\n </div>\r\n <div class=\"flex-grow-1\">{{ text }}</div>\r\n </div>\r\n</button>\r\n"
2150
+ },] }
2151
+ ];
2152
+ SacMultilanguagemenuItemButtonComponent.ctorParameters = () => [
2153
+ { type: SacContextmenuCommon }
2154
+ ];
2155
+
2156
+ class SACBootstrap4MultilanguageModule {
2157
+ }
2158
+ SACBootstrap4MultilanguageModule.decorators = [
2159
+ { type: NgModule, args: [{
2160
+ declarations: [
2161
+ SacMultilanguageInputComponent,
2162
+ SacMultilanguageInputAreaComponent,
2163
+ SacMultilanguagemenuComponent,
2164
+ SacMultilanguagemenuAnchorDirective,
2165
+ SacMultilanguagemenuContainerDirective,
2166
+ SacMultilanguagemenuItemButtonComponent,
2167
+ ],
2168
+ imports: [CommonModule, SACBootstrap4LayoutModule],
2169
+ exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
2170
+ },] }
2171
+ ];
2172
+
2173
+ /**
2174
+ * Component für einbindung eines beliebigen Controls in die Form Struktur
2175
+ *
2176
+ * @example
2177
+ * <ngStaticFormContainer name='myformcontainer' label="My Custom Form Control" [isrequired]='false'>
2178
+ * <input type="range" class="form-control" />
2179
+ * </ngStaticFormContainer>
2180
+ *
2181
+ * @example
2182
+ * <ngStaticFormContainer name='myformcintainer' label="My Custom Form Control" [isrequired]='false' tooltiptext="Dies ist ein Tooltip Text">
2183
+ * <input type="range" class="form-control" />
2184
+ * </ngStaticFormContainer>
2185
+ *
2186
+ **/
2187
+ class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
2188
+ // #region Constructors
2189
+ /**
2190
+ *
2191
+ * @param formLayout SacFormLayout to define scoped layout settings
2192
+ * @param injector Injector for injecting services
2193
+ */
2194
+ constructor(formLayout, injector) {
2195
+ super(formLayout, injector);
2196
+ }
2197
+ }
2198
+ SacStaticFormContainerComponent.decorators = [
2199
+ { type: Component, args: [{
2200
+ selector: 'sac-staticformcontainer',
2201
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <ng-content></ng-content>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-label-adaptive form-label-fixed\"\r\n [ngClass]=\"{ 'required': isrequired }\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
2202
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2203
+ providers: [
2204
+ {
2205
+ provide: NG_VALUE_ACCESSOR,
2206
+ multi: true,
2207
+ useExisting: SacStaticFormContainerComponent,
2208
+ },
2209
+ {
2210
+ provide: NG_VALIDATORS,
2211
+ multi: true,
2212
+ useExisting: forwardRef(() => SacStaticFormContainerComponent),
2213
+ },
2214
+ ]
2215
+ },] }
2216
+ ];
2217
+ SacStaticFormContainerComponent.ctorParameters = () => [
2218
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
2219
+ { type: Injector }
2220
+ ];
2221
+
2222
+ /**
2223
+ * Komponente für statischen Text in einem Formular
2224
+ */
2225
+ class SacStaticLabelComponent extends SacStaticLabelCommon {
2226
+ // #region Constructors
2227
+ /**
2228
+ *
2229
+ * @param formLayout SacFormLayout to define scoped layout settings
2230
+ * @param injector Injector for injecting services
2231
+ */
2232
+ constructor(formLayout, injector) {
2233
+ super(formLayout, injector);
2234
+ }
2235
+ }
2236
+ SacStaticLabelComponent.decorators = [
2237
+ { type: Component, args: [{
2238
+ selector: 'sac-staticlabel',
2239
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n",
2240
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2241
+ providers: [
2242
+ {
2243
+ provide: NG_VALUE_ACCESSOR,
2244
+ multi: true,
2245
+ useExisting: SacStaticLabelComponent,
2246
+ },
2247
+ {
2248
+ provide: NG_VALIDATORS,
2249
+ multi: true,
2250
+ useExisting: forwardRef(() => SacStaticLabelComponent),
2251
+ },
2252
+ ]
2253
+ },] }
2254
+ ];
2255
+ SacStaticLabelComponent.ctorParameters = () => [
2256
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
2257
+ { type: Injector }
2258
+ ];
2259
+
2260
+ class SACBootstrap4StaticLabelModule {
2261
+ }
2262
+ SACBootstrap4StaticLabelModule.decorators = [
2263
+ { type: NgModule, args: [{
2264
+ declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2265
+ imports: [CommonModule, SACBootstrap4LayoutModule],
2266
+ exports: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2267
+ },] }
2268
+ ];
2269
+
2270
+ /**
2271
+ * Tab Item Komponente
2272
+ */
2273
+ class SacTabItemComponent extends SacTabItemCommon {
2274
+ }
2275
+ SacTabItemComponent.decorators = [
2276
+ { type: Component, args: [{
2277
+ selector: 'sac-tabitem',
2278
+ template: "<div [id]=\"id\" [hidden]=\"unloadwhenhidden === false && active === false\" *ngIf=\"(unloadwhenhidden === true && active === true) || unloadwhenhidden === false\" class=\"tab-pane\">\r\n <ng-template [ngTemplateOutlet]=\"templateRef\"></ng-template>\r\n</div>\r\n"
2279
+ },] }
2280
+ ];
2281
+
2282
+ /**
2283
+ * Komponente für Tabs
2284
+ */
2285
+ class SacTabComponent extends SacTabCommon {
2286
+ /**
2287
+ * Gibt die TabItems zurück
2288
+ * @returns Array von TabItems
2289
+ */
2290
+ tabItems() {
2291
+ return this._tabItems.toArray();
2292
+ }
2293
+ }
2294
+ SacTabComponent.decorators = [
2295
+ { type: Component, args: [{
2296
+ selector: 'sac-tab',
2297
+ template: "<!-- Nav tabs -->\r\n<div class=\"nav nav-tabs\" role=\"tablist\">\r\n <a\r\n *ngFor=\"let item of _tabItems\"\r\n role=\"tab\"\r\n class=\"nav-item nav-link active\"\r\n data-toggle=\"tab\"\r\n [ngClass]=\"{ 'active show': item.active, 'disabled': item.disabled }\"\r\n (click)=\"selectTab(item)\"\r\n [ngStyle]=\"{'cursor': item.disabled ? 'not-allowed' : 'pointer'}\"\r\n >{{item.label}}</a\r\n >\r\n</div>\r\n\r\n<!-- Tab panes -->\r\n<div class=\"tab-content pl-3 pt-2\">\r\n <ng-content></ng-content>\r\n</div>\r\n"
2298
+ },] }
2299
+ ];
2300
+ SacTabComponent.propDecorators = {
2301
+ _tabItems: [{ type: ContentChildren, args: [SacTabItemComponent,] }]
2302
+ };
2303
+
2304
+ class SACBootstrap4TabsModule {
2305
+ }
2306
+ SACBootstrap4TabsModule.decorators = [
2307
+ { type: NgModule, args: [{
2308
+ declarations: [SacTabComponent, SacTabItemComponent],
2309
+ imports: [
2310
+ CommonModule
2311
+ ],
2312
+ exports: [SacTabComponent, SacTabItemComponent]
2313
+ },] }
2314
+ ];
2315
+
2316
+ /**
2317
+ * TinyMCE Komponente
2318
+ */
2319
+ class SacTinyMceComponent extends SacTinyMceCommon {
2320
+ // #region Constructors
2321
+ /**
2322
+ * Constructor
2323
+ * @param formLayout SacFormLayout to define scoped layout settings
2324
+ * @param injector Injector for injecting services
2325
+ * @param ngZone ngZone to manage external javascripts
2326
+ */
2327
+ constructor(formLayout, injector, ngZone) {
2328
+ super(formLayout, injector, ngZone);
2329
+ }
2330
+ // #endregion Constructors
2331
+ // #region Public Methods
2332
+ /**
2333
+ * overwrite tinymce defaults
2334
+ * @returns boostrap4 has no overwrites
2335
+ */
2336
+ overwriteDefaultSettings() {
2337
+ return {};
2338
+ }
2339
+ }
2340
+ SacTinyMceComponent.decorators = [
2341
+ { type: Component, args: [{
2342
+ selector: 'sac-tinymce',
2343
+ template: "<div class=\"form-row form-group\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label\">{{label}}</label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <editor\r\n [id]=\"name + '_tinymce'\"\r\n [init]=\"_config\"\r\n [initialValue]=\"value\"\r\n ngModel\r\n [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"setValue($event)\"\r\n (onSaveContent)=\"save($event.event.content)\"\r\n [disabled]=\"disabled\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n ></editor>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]=\"filebrowserapiurl\"\r\n (file)=\"selectDialogSettings.value = $event\"\r\n [allowfoldercreate]=\"allowfoldercreate\"\r\n [allowfolderrename]=\"allowfolderrename\"\r\n [allowfolderdelete]=\"allowfolderdelete\"\r\n [allowfileupload]=\"allowfileupload\"\r\n [allowfilerename]=\"allowfilerename\"\r\n [allowfiledelete]=\"allowfiledelete\"\r\n [selectedfile]=\"selectDialogSettings.value\"\r\n [allowedtypes]=\"selectDialogSettings.allowedtypes\"\r\n ></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
2344
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2345
+ providers: [
2346
+ {
2347
+ provide: NG_VALUE_ACCESSOR,
2348
+ multi: true,
2349
+ useExisting: SacTinyMceComponent,
2350
+ },
2351
+ {
2352
+ provide: NG_VALIDATORS,
2353
+ useExisting: forwardRef(() => SacTinyMceComponent),
2354
+ multi: true,
2355
+ },
2356
+ ],
2357
+ styles: [".is-invalid{border:1px solid var(--red)}"]
2358
+ },] }
2359
+ ];
2360
+ SacTinyMceComponent.ctorParameters = () => [
2361
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
2362
+ { type: Injector },
2363
+ { type: NgZone }
2364
+ ];
2365
+
2366
+ class SACBootstrap4TinyMceModule {
2367
+ }
2368
+ SACBootstrap4TinyMceModule.decorators = [
2369
+ { type: NgModule, args: [{
2370
+ declarations: [SacTinyMceComponent],
2371
+ imports: [
2372
+ CommonModule,
2373
+ FormsModule,
2374
+ EditorModule,
2375
+ SACBootstrap4LayoutModule,
2376
+ SACBootstrap4ButtonModule,
2377
+ SACBootstrap4DialogModule,
2378
+ SACBootstrap4BrowserModule,
2379
+ ],
2380
+ exports: [SacTinyMceComponent],
2381
+ },] }
2382
+ ];
2383
+
2384
+ /**
2385
+ * Validation Summary Kompontente
2386
+ */
2387
+ class SacValidationSummaryComponent extends SacValidationSummaryCommon {
2388
+ // #region Constructors
2389
+ /**
2390
+ * Constructor
2391
+ * @param formControl Instance of Form Component to receive invalid form controls
2392
+ * @param injector Injector for injecting services
2393
+ */
2394
+ constructor(parentForm, injector) {
2395
+ super(parentForm, injector);
2396
+ }
2397
+ }
2398
+ SacValidationSummaryComponent.decorators = [
2399
+ { type: Component, args: [{
2400
+ selector: 'sac-validationsummary',
2401
+ template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n",
2402
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2403
+ providers: [
2404
+ {
2405
+ provide: NG_VALUE_ACCESSOR,
2406
+ multi: true,
2407
+ useExisting: SacValidationSummaryComponent,
2408
+ },
2409
+ ]
2410
+ },] }
2411
+ ];
2412
+ SacValidationSummaryComponent.ctorParameters = () => [
2413
+ { type: SacFormDirective, decorators: [{ type: Host }, { type: Optional }] },
2414
+ { type: Injector }
2415
+ ];
2416
+
2417
+ class SACBootstrap4ValidationSummaryModule {
2418
+ }
2419
+ SACBootstrap4ValidationSummaryModule.decorators = [
2420
+ { type: NgModule, args: [{
2421
+ declarations: [SacValidationSummaryComponent],
2422
+ imports: [
2423
+ CommonModule
2424
+ ],
2425
+ exports: [SacValidationSummaryComponent]
2426
+ },] }
2427
+ ];
2428
+
2429
+ /**
2430
+ * Wizard Komponente Item
2431
+ */
2432
+ class SacWizardItemComponent extends SacWizardItemCommon {
2433
+ }
2434
+ SacWizardItemComponent.decorators = [
2435
+ { type: Component, args: [{
2436
+ selector: 'sac-wizarditem',
2437
+ template: ""
2438
+ },] }
2439
+ ];
2440
+
2441
+ /**
2442
+ * Wizard Komponente
2443
+ */
2444
+ class SacWizardComponent extends SacWizardCommon {
2445
+ /**
2446
+ * Gibt die Wizard Items zurück
2447
+ * @returns Collection von WizardItems
2448
+ */
2449
+ wizardItems() {
2450
+ return this._wizardItems;
2451
+ }
2452
+ }
2453
+ SacWizardComponent.decorators = [
2454
+ { type: Component, args: [{
2455
+ selector: 'sac-wizard',
2456
+ template: "<ul class=\"nav nav-wizard\" role=\"tablist\">\r\n <li *ngFor=\"let item of _wizardItems\" class=\"nav-item\" [ngClass]=\"{ 'active': item._active, 'disabled': item._disabled, 'success': item._iscomplete }\"\r\n [ngStyle]=\"{'cursor': item._disabled ? 'not-allowed' : 'pointer'}\">\r\n <a role=\"tab\" (click)=\"selectStep(item)\">\r\n <div class=\"circle\">\r\n <span class=\"step\"></span>\r\n </div>\r\n </a>\r\n <div class=\"info\">\r\n <a (click)=\"selectStep(item)\">{{item._label}}</a>\r\n </div>\r\n </li>\r\n</ul>\r\n",
2457
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2458
+ providers: [
2459
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacWizardComponent },
2460
+ ]
2461
+ },] }
2462
+ ];
2463
+ SacWizardComponent.propDecorators = {
2464
+ _wizardItems: [{ type: ContentChildren, args: [SacWizardItemComponent,] }]
2465
+ };
2466
+
2467
+ class SACBootstrap4WizardModule {
2468
+ }
2469
+ SACBootstrap4WizardModule.decorators = [
2470
+ { type: NgModule, args: [{
2471
+ declarations: [SacWizardComponent, SacWizardItemComponent],
2472
+ imports: [
2473
+ CommonModule
2474
+ ],
2475
+ exports: [SacWizardComponent, SacWizardItemComponent]
2476
+ },] }
2477
+ ];
2478
+
2479
+ /*
2480
+ * Public API Surface of sac-bootstrap4
2481
+ */
2482
+
2483
+ /**
2484
+ * Generated bundle index. Do not edit.
2485
+ */
2486
+
2487
+ export { SACBootstrap4BrowserModule, SACBootstrap4ButtonModule, SACBootstrap4CheckboxModule, SACBootstrap4ConfirmModule, SACBootstrap4ContextmenuModule, SACBootstrap4DateTimeModule, SACBootstrap4DialogModule, SACBootstrap4DropdownModule, SACBootstrap4FormModule, SACBootstrap4GridModule, SACBootstrap4InputModule, SACBootstrap4LayoutModule, SACBootstrap4ListModule, SACBootstrap4MultilanguageModule, SACBootstrap4StaticLabelModule, SACBootstrap4TabsModule, SACBootstrap4TinyMceModule, SACBootstrap4UploadModule, SACBootstrap4ValidationSummaryModule, SACBootstrap4WizardModule, SacFormDirective, ServiceConfirm, SacBrowserComponent as ɵa, SacDropzoneMultipleComponent as ɵb, SacTimeComponent as ɵba, SacDateSelectorComponent as ɵbb, SacGridComponent as ɵbc, SacGridColumnComponent as ɵbd, SacGridColumnActionComponent as ɵbe, SacPagingComponent as ɵbf, SacGridButtonComponent as ɵbg, SacGridImageComponent as ɵbh, SacInputComponent as ɵbi, SacInputAreaComponent as ɵbj, SacInputCurrencyComponent as ɵbk, SacInputDecimalComponent as ɵbl, SacInputEmailComponent as ɵbm, SacInputIntegerComponent as ɵbn, SacInputPasswordComponent as ɵbo, SacInputSearchComponent as ɵbp, SacDropdownComponent as ɵbq, SacDropdownOptionDirective as ɵbr, SacListboxComponent as ɵbs, SacListboxOptionDirective as ɵbt, SacMultilanguageInputComponent as ɵbu, SacMultilanguageInputAreaComponent as ɵbv, SacMultilanguagemenuComponent as ɵbw, SacMultilanguagemenuAnchorDirective as ɵbx, SacMultilanguagemenuContainerDirective as ɵby, SacMultilanguagemenuItemButtonComponent as ɵbz, SacFormLayoutDirective as ɵc, SacStaticLabelComponent as ɵca, SacStaticFormContainerComponent as ɵcb, SacTabComponent as ɵcc, SacTabItemComponent as ɵcd, SacTinyMceComponent as ɵce, SacValidationSummaryComponent as ɵcf, SacWizardComponent as ɵcg, SacWizardItemComponent as ɵch, SacConfirmComponent as ɵd, SacDialogComponent as ɵe, SacButtonComponent as ɵf, SacContextmenuComponent as ɵg, SacContextmenuItemButtonComponent as ɵh, SacContextmenuItemSplitterComponent as ɵi, SacContextmenuAnchorDirective as ɵj, SacContextmenuContainerDirective as ɵk, SacUploadComponent as ɵl, SacUploadMultipleComponent as ɵm, SacDropzoneSingleComponent as ɵn, SacToControlHeightPipe as ɵo, SacToControlWidthCssPipe as ɵp, SacToLabelHeightPipe as ɵq, SacToLabelWidthCssPipe as ɵr, SACFORM_FACTORY as ɵs, NGFORM_FACTORY as ɵt, SacInheritFormDirective as ɵu, SacCheckboxComponent as ɵv, SacRadiobuttonComponent as ɵw, SacRadiobuttonsComponent as ɵx, SacDateComponent as ɵy, SacDateTimeComponent as ɵz };
2488
+ //# sourceMappingURL=simpleangularcontrols-sac-bootstrap4.js.map