@simpleangularcontrols/sac-bootstrap5 10.0.0-rc.26 → 10.0.0-rc.28

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 (229) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js +223 -265
  2. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js.map +1 -1
  5. package/controls/buttons/button.d.ts.map +1 -1
  6. package/controls/buttons/button.module.d.ts.map +1 -1
  7. package/controls/buttons/button.module.ngfactory.d.ts.map +1 -1
  8. package/controls/checkbox/checkbox.d.ts +1 -1
  9. package/controls/checkbox/checkbox.d.ts.map +1 -1
  10. package/controls/checkbox/checkbox.module.d.ts.map +1 -1
  11. package/controls/checkbox/checkbox.module.ngfactory.d.ts.map +1 -1
  12. package/controls/checkbox/radiobuttons.d.ts +1 -1
  13. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  14. package/controls/confirm/confirm.service.d.ts +1 -1
  15. package/controls/confirm/confirm.service.d.ts.map +1 -1
  16. package/controls/contextmenu/contextmenu.module.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenu.module.ngfactory.d.ts.map +1 -1
  18. package/controls/datetime/date.d.ts.map +1 -1
  19. package/controls/datetime/datetime.module.d.ts.map +1 -1
  20. package/controls/datetime/datetime.module.ngfactory.d.ts.map +1 -1
  21. package/controls/dialog/dialog.d.ts +4 -4
  22. package/controls/dialog/dialog.d.ts.map +1 -1
  23. package/controls/dialog/dialog.module.d.ts.map +1 -1
  24. package/controls/dialog/dialog.module.ngfactory.d.ts.map +1 -1
  25. package/controls/form/form.d.ts +4 -4
  26. package/controls/form/form.d.ts.map +1 -1
  27. package/controls/form/inheritform.directive.d.ts +11 -11
  28. package/controls/form/inheritform.directive.d.ts.map +1 -1
  29. package/controls/grid/grid.d.ts +4 -4
  30. package/controls/grid/grid.d.ts.map +1 -1
  31. package/controls/grid/grid.module.d.ts.map +1 -1
  32. package/controls/grid/grid.module.ngfactory.d.ts.map +1 -1
  33. package/controls/grid/gridbutton.d.ts +5 -2
  34. package/controls/grid/gridbutton.d.ts.map +1 -1
  35. package/controls/grid/gridcolumn.d.ts +1 -1
  36. package/controls/grid/gridcolumn.d.ts.map +1 -1
  37. package/controls/grid/gridcolumnaction.d.ts +1 -1
  38. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  39. package/controls/grid/gridimage.d.ts +0 -5
  40. package/controls/grid/gridimage.d.ts.map +1 -1
  41. package/controls/grid/paging.d.ts.map +1 -1
  42. package/controls/input/input.d.ts +1 -1
  43. package/controls/input/input.d.ts.map +1 -1
  44. package/controls/input/input.module.d.ts.map +1 -1
  45. package/controls/input/input.module.ngfactory.d.ts.map +1 -1
  46. package/controls/input/inputarea.d.ts +1 -1
  47. package/controls/input/inputarea.d.ts.map +1 -1
  48. package/controls/input/inputcurrency.d.ts +1 -1
  49. package/controls/input/inputcurrency.d.ts.map +1 -1
  50. package/controls/input/inputdecimal.d.ts +1 -1
  51. package/controls/input/inputdecimal.d.ts.map +1 -1
  52. package/controls/input/inputemail.d.ts +1 -1
  53. package/controls/input/inputemail.d.ts.map +1 -1
  54. package/controls/input/inputinteger.d.ts +1 -1
  55. package/controls/input/inputinteger.d.ts.map +1 -1
  56. package/controls/input/inputpassword.d.ts +1 -1
  57. package/controls/input/inputpassword.d.ts.map +1 -1
  58. package/controls/input/inputsearch.d.ts +1 -1
  59. package/controls/input/inputsearch.d.ts.map +1 -1
  60. package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -1
  61. package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -1
  62. package/controls/layout/tolabelheight.pipe.d.ts.map +1 -1
  63. package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -1
  64. package/controls/list/dropdown.d.ts +1 -13
  65. package/controls/list/dropdown.d.ts.map +1 -1
  66. package/controls/list/dropdown.module.d.ts.map +1 -1
  67. package/controls/list/dropdown.module.ngfactory.d.ts.map +1 -1
  68. package/controls/list/dropdownoption.directive.d.ts +15 -0
  69. package/controls/list/dropdownoption.directive.d.ts.map +1 -0
  70. package/controls/list/dropdownoption.directive.ngfactory.d.ts +2 -0
  71. package/controls/list/dropdownoption.directive.ngfactory.d.ts.map +1 -0
  72. package/controls/list/list.module.d.ts.map +1 -1
  73. package/controls/list/list.module.ngfactory.d.ts.map +1 -1
  74. package/controls/list/list.token.d.ts +4 -0
  75. package/controls/list/list.token.d.ts.map +1 -0
  76. package/controls/list/list.token.ngfactory.d.ts +2 -0
  77. package/controls/list/list.token.ngfactory.d.ts.map +1 -0
  78. package/controls/list/listbox.d.ts +2 -14
  79. package/controls/list/listbox.d.ts.map +1 -1
  80. package/controls/list/listboxoption.directive.d.ts +15 -0
  81. package/controls/list/listboxoption.directive.d.ts.map +1 -0
  82. package/controls/list/listboxoption.directive.ngfactory.d.ts +2 -0
  83. package/controls/list/listboxoption.directive.ngfactory.d.ts.map +1 -0
  84. package/controls/multilanguage/multilanguage.module.d.ts.map +1 -1
  85. package/controls/multilanguage/multilanguage.module.ngfactory.d.ts.map +1 -1
  86. package/controls/multilanguage/multilanguageinput.d.ts +1 -1
  87. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  88. package/controls/multilanguage/multilanguageinputarea.d.ts +1 -1
  89. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  90. package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -1
  91. package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -1
  92. package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -1
  93. package/controls/static/staticlabel.d.ts +1 -1
  94. package/controls/static/staticlabel.d.ts.map +1 -1
  95. package/controls/static/staticlabel.module.d.ts.map +1 -1
  96. package/controls/static/staticlabel.module.ngfactory.d.ts.map +1 -1
  97. package/controls/tabs/tab.d.ts +1 -1
  98. package/controls/tabs/tab.d.ts.map +1 -1
  99. package/controls/tabs/tabs.module.d.ts.map +1 -1
  100. package/controls/tabs/tabs.module.ngfactory.d.ts.map +1 -1
  101. package/controls/tinymce/tinymce.module.d.ts.map +1 -1
  102. package/controls/tinymce/tinymce.module.ngfactory.d.ts.map +1 -1
  103. package/controls/tooltip/tooltip.d.ts.map +1 -1
  104. package/controls/tooltip/tooltip.module.d.ts.map +1 -1
  105. package/controls/tooltip/tooltip.module.ngfactory.d.ts.map +1 -1
  106. package/controls/treeview/treeview.module.d.ts.map +1 -1
  107. package/controls/treeview/treeview.module.ngfactory.d.ts.map +1 -1
  108. package/controls/upload/upload.d.ts +1 -1
  109. package/controls/upload/upload.d.ts.map +1 -1
  110. package/controls/upload/upload.module.d.ts.map +1 -1
  111. package/controls/upload/upload.module.ngfactory.d.ts.map +1 -1
  112. package/controls/validation/validationsummary.d.ts +1 -1
  113. package/controls/validation/validationsummary.d.ts.map +1 -1
  114. package/controls/validation/validationsummary.module.d.ts.map +1 -1
  115. package/controls/validation/validationsummary.module.ngfactory.d.ts.map +1 -1
  116. package/controls/wizard/wizard.d.ts +1 -1
  117. package/controls/wizard/wizard.d.ts.map +1 -1
  118. package/controls/wizard/wizard.module.d.ts.map +1 -1
  119. package/controls/wizard/wizard.module.ngfactory.d.ts.map +1 -1
  120. package/esm2015/controls/buttons/button.js +2 -2
  121. package/esm2015/controls/buttons/button.module.js +5 -6
  122. package/esm2015/controls/buttons/button.module.ngfactory.js +1 -1
  123. package/esm2015/controls/checkbox/checkbox.js +4 -4
  124. package/esm2015/controls/checkbox/checkbox.module.js +7 -18
  125. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  126. package/esm2015/controls/checkbox/radiobuttons.js +4 -4
  127. package/esm2015/controls/confirm/confirm.js +2 -2
  128. package/esm2015/controls/confirm/confirm.service.js +3 -3
  129. package/esm2015/controls/contextmenu/contextmenu.js +2 -2
  130. package/esm2015/controls/contextmenu/contextmenu.module.js +7 -6
  131. package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +1 -1
  132. package/esm2015/controls/datetime/date.js +10 -10
  133. package/esm2015/controls/datetime/dateselector.js +2 -2
  134. package/esm2015/controls/datetime/datetime.js +2 -2
  135. package/esm2015/controls/datetime/datetime.module.js +8 -16
  136. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  137. package/esm2015/controls/datetime/time.js +2 -2
  138. package/esm2015/controls/dialog/dialog.js +14 -10
  139. package/esm2015/controls/dialog/dialog.module.js +6 -7
  140. package/esm2015/controls/dialog/dialog.module.ngfactory.js +1 -1
  141. package/esm2015/controls/form/form.js +4 -1
  142. package/esm2015/controls/form/form.module.js +3 -3
  143. package/esm2015/controls/form/inheritform.directive.js +20 -20
  144. package/esm2015/controls/grid/grid.js +4 -3
  145. package/esm2015/controls/grid/grid.module.js +21 -8
  146. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  147. package/esm2015/controls/grid/gridbutton.js +12 -25
  148. package/esm2015/controls/grid/gridcolumn.js +5 -4
  149. package/esm2015/controls/grid/gridcolumnaction.js +5 -4
  150. package/esm2015/controls/grid/gridimage.js +2 -16
  151. package/esm2015/controls/grid/paging.js +4 -3
  152. package/esm2015/controls/input/input.js +4 -4
  153. package/esm2015/controls/input/input.module.js +5 -8
  154. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  155. package/esm2015/controls/input/inputarea.js +4 -4
  156. package/esm2015/controls/input/inputcurrency.js +4 -4
  157. package/esm2015/controls/input/inputdecimal.js +4 -4
  158. package/esm2015/controls/input/inputemail.js +4 -4
  159. package/esm2015/controls/input/inputinteger.js +4 -4
  160. package/esm2015/controls/input/inputpassword.js +4 -4
  161. package/esm2015/controls/input/inputsearch.js +4 -4
  162. package/esm2015/controls/layout/formlayout.directive.js +1 -1
  163. package/esm2015/controls/layout/layout.module.js +3 -3
  164. package/esm2015/controls/layout/tocontrolheight.pipe.js +1 -1
  165. package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +1 -1
  166. package/esm2015/controls/layout/tolabelheight.pipe.js +1 -1
  167. package/esm2015/controls/layout/tolabelwidthcss.pipe.js +1 -1
  168. package/esm2015/controls/list/dropdown.js +6 -29
  169. package/esm2015/controls/list/dropdown.module.js +7 -9
  170. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  171. package/esm2015/controls/list/dropdownoption.directive.js +27 -0
  172. package/esm2015/controls/list/dropdownoption.directive.ngfactory.js +7 -0
  173. package/esm2015/controls/list/list.module.js +7 -9
  174. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  175. package/esm2015/controls/list/list.token.js +6 -0
  176. package/esm2015/controls/list/list.token.ngfactory.js +7 -0
  177. package/esm2015/controls/list/listbox.js +6 -29
  178. package/esm2015/controls/list/listboxoption.directive.js +27 -0
  179. package/esm2015/controls/list/listboxoption.directive.ngfactory.js +7 -0
  180. package/esm2015/controls/multilanguage/multilanguage.module.js +5 -8
  181. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  182. package/esm2015/controls/multilanguage/multilanguageinput.js +5 -5
  183. package/esm2015/controls/multilanguage/multilanguageinputarea.js +5 -5
  184. package/esm2015/controls/multilanguage/multilanguagemenu.js +3 -3
  185. package/esm2015/controls/multilanguage/multilanguagemenuanchor.js +1 -1
  186. package/esm2015/controls/multilanguage/multilanguagemenucontainer.js +1 -1
  187. package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +2 -2
  188. package/esm2015/controls/static/formcontainer.js +2 -2
  189. package/esm2015/controls/static/staticlabel.js +4 -4
  190. package/esm2015/controls/static/staticlabel.module.js +5 -8
  191. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  192. package/esm2015/controls/tabs/tab.js +5 -3
  193. package/esm2015/controls/tabs/tabitem.js +2 -2
  194. package/esm2015/controls/tabs/tabs.module.js +5 -4
  195. package/esm2015/controls/tabs/tabs.module.ngfactory.js +1 -1
  196. package/esm2015/controls/tinymce/tinymce.js +3 -3
  197. package/esm2015/controls/tinymce/tinymce.module.js +7 -5
  198. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  199. package/esm2015/controls/tooltip/tooltip.js +2 -2
  200. package/esm2015/controls/tooltip/tooltip.module.js +4 -3
  201. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +1 -1
  202. package/esm2015/controls/treeview/treeview.js +2 -2
  203. package/esm2015/controls/treeview/treeview.module.js +9 -2
  204. package/esm2015/controls/treeview/treeview.module.ngfactory.js +1 -1
  205. package/esm2015/controls/upload/dropzonemultiple.js +2 -2
  206. package/esm2015/controls/upload/dropzonesingle.js +2 -2
  207. package/esm2015/controls/upload/upload.js +4 -4
  208. package/esm2015/controls/upload/upload.module.js +7 -10
  209. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  210. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  211. package/esm2015/controls/validation/validationsummary.js +3 -3
  212. package/esm2015/controls/validation/validationsummary.module.js +5 -6
  213. package/esm2015/controls/validation/validationsummary.module.ngfactory.js +1 -1
  214. package/esm2015/controls/wizard/wizard.js +7 -7
  215. package/esm2015/controls/wizard/wizard.module.js +5 -4
  216. package/esm2015/controls/wizard/wizard.module.ngfactory.js +1 -1
  217. package/esm2015/controls/wizard/wizarditem.js +1 -1
  218. package/esm2015/public-api.js +3 -1
  219. package/esm2015/simpleangularcontrols-sac-bootstrap5.js +6 -5
  220. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js +209 -250
  221. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js.map +1 -1
  222. package/package.json +2 -2
  223. package/public-api.d.ts +2 -0
  224. package/public-api.d.ts.map +1 -1
  225. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.28.tgz +0 -0
  226. package/simpleangularcontrols-sac-bootstrap5.d.ts +5 -4
  227. package/simpleangularcontrols-sac-bootstrap5.d.ts.map +1 -1
  228. package/simpleangularcontrols-sac-bootstrap5.metadata.json +1 -1
  229. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.26.tgz +0 -0
@@ -1,2 +1,2 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/common"),require("@angular/common/http"),require("@angular/core"),require("@angular/forms"),require("@simpleangularcontrols/sac-common"),require("rxjs"),require("rxjs/operators"),require("angular-imask"),require("moment"),require("@tinymce/tinymce-angular")):"function"==typeof define&&define.amd?define("@simpleangularcontrols/sac-bootstrap5",["exports","@angular/common","@angular/common/http","@angular/core","@angular/forms","@simpleangularcontrols/sac-common","rxjs","rxjs/operators","angular-imask","moment","@tinymce/tinymce-angular"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self).simpleangularcontrols=e.simpleangularcontrols||{},e.simpleangularcontrols["sac-bootstrap5"]={}),e.ng.common,e.ng.common.http,e.ng.core,e.ng.forms,e.sacCommon,e.rxjs,e.rxjs.operators,e.angularImask,e.moment,e.tinymceAngular)}(this,(function(e,n,t,o,l,a,s,i,r,d,c){"use strict";function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=p(d),m=function(e,n){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])})(e,n)};function g(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function t(){this.constructor=e}m(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var b=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacButtonCommon);b.decorators=[{type:o.Component,args:[{selector:"sac-button",template:'<button\n [id]="name"\n type="button"\n class="btn d-flex justify-content-center align-items-center"\n [attr.disabled]="_isdisabled || isloading ? \'disabled\' : null"\n (click)="buttonClick()"\n [class.btn-primary]="role === \'primary\'"\n [class.btn-secondary]="role === \'secondary\' || role === \'default\'"\n [class.btn-success]="role === \'success\'"\n [class.btn-danger]="role === \'danger\'"\n [class.btn-warning]="role === \'warning\'"\n [class.btn-info]="role === \'info\'"\n [class.btn-link]="role === \'link\'"\n>\n <span\n *ngIf="isloading"\n class="spinner-border spinner-border-sm me-2"\n role="status"\n aria-hidden="true"\n ></span>\n <i *ngIf="!isloading && icon !== \'\'" [ngClass]="icon" [class.me-2]="text"></i\n >{{text}}\n</button>\n'}]}];var v=function(){};v.decorators=[{type:o.NgModule,args:[{declarations:[b],imports:[n.CommonModule],exports:[b]}]}];var h=function(e){function n(n,t){var o=e.call(this,t)||this;return o.element=n.nativeElement,o}return g(n,e),n.prototype.ngOnInit=function(){document.body.appendChild(this.element)},n.prototype.ngOnDestroy=function(){this.hide(),document.body.contains(this.element)&&document.body.removeChild(this.element),e.prototype.ngOnDestroy.call(this)},n}(a.SacDialogCommon);h.decorators=[{type:o.Component,args:[{selector:"sac-dialog",template:'<div\n #dialog\n class="modal show"\n style="display: block"\n tabindex="-1"\n role="dialog"\n *ngIf="_show"\n>\n <div\n class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable"\n role="document"\n [class.modal-xl]="_size === \'extralarge\'"\n [class.modal-lg]="_size === \'large\'"\n [class.modal-sm]="_size === \'small\'"\n >\n <div class="modal-content">\n <div class="modal-header">\n <h5 class="modal-title">{{title}}</h5>\n <button\n type="button"\n class="btn-close"\n data-dismiss="modal"\n aria-label="Close"\n (click)="hide()"\n *ngIf="closebutton"\n ></button>\n </div>\n <div class="modal-body">\n <ng-content select="[dialogbody]"></ng-content>\n </div>\n <div class="modal-footer">\n <ng-content select="[dialogfooter]"></ng-content>\n </div>\n </div>\n \x3c!-- /.modal-content --\x3e\n </div>\n \x3c!-- /.modal-dialog --\x3e\n</div>\n\x3c!-- /.modal --\x3e\n<div class="modal-backdrop show" *ngIf="_show && backdrop" #backdrop></div>\n'}]}],h.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var f=function(){};f.decorators=[{type:o.NgModule,args:[{declarations:[h],imports:[n.CommonModule],exports:[h]}]}];var x=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacConfirmCommon);x.decorators=[{type:o.Component,args:[{selector:"sac-confirm",template:'<sac-dialog\n name="confirmDialog"\n [(isvisible)]="isvisible"\n [title]="title"\n [allowesc]="false"\n [closebutton]="false"\n dialogsize="small"\n>\n <div dialogbody>\n <div class="d-flex align-items-center">\n <div class="me-2">\n <img\n [attr.src]="image"\n class="align-self-center mr-3"\n *ngIf="hasImage()"\n />\n </div>\n <div class="flex-grow-1">{{message}}</div>\n </div>\n </div>\n <ng-container dialogfooter>\n <ng-container *ngFor="let button of buttons">\n <sac-button\n [name]="button.key"\n [text]="button.text"\n [role]="button.role || \'default\'"\n (clicked)="confirm(button.key)"\n ></sac-button>\n </ng-container>\n </ng-container>\n</sac-dialog>\n'}]}];var y=function(e){function n(n,t,o){var l=e.call(this,t,o)||this;return l.componentFactoryResolver=n,l.buttons=[],l.message="",l.title="",l}return g(n,e),n.prototype.ConfirmMessage=function(n,t,o){var l=this;return void 0===o&&(o=null),this.title=n,this.message=t,a.isDefined(o)?this.buttons=o:(this.buttons=[],s.forkJoin({button_yes:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),button_no:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo)}).pipe(i.take(1)).subscribe((function(e){l.buttons.push(new a.SacConfirmButton("yes",e.button_yes,"primary")),l.buttons.push(new a.SacConfirmButton("no",e.button_no))}))),e.prototype.Confirm.call(this)},n.prototype.GetComponentFactory=function(){return this.componentFactoryResolver.resolveComponentFactory(x)},n.prototype.ConfigureDialog=function(e){e.title=this.title,e.message=this.message,e.buttons=this.buttons,e.image=this.iconService.ConfirmDefaultImage},n}(a.ServiceConfirmCommon);y.decorators=[{type:o.Injectable}],y.ctorParameters=function(){return[{type:o.ComponentFactoryResolver,decorators:[{type:o.Inject,args:[o.ComponentFactoryResolver]}]},{type:o.ApplicationRef},{type:o.Injector}]};var C=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[y]}},e}();C.decorators=[{type:o.NgModule,args:[{declarations:[x],imports:[n.CommonModule,f,v],exports:[x],entryComponents:[x]}]}];var S=function(e){function n(n,t,o,l,a){return e.call(this,n,t,o,l,a)||this}return g(n,e),n}(a.SacContextmenuCommon);S.decorators=[{type:o.Component,args:[{selector:"sac-contextmenu",template:'<div class="dropdown" [ngClass]="cssclass">\n <ng-container\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\n ></ng-container>\n\n <ul\n class="dropdown-menu dropdown-menu-end"\n sacContextMenuContainer\n [class.show]="isopen"\n >\n <ng-content></ng-content>\n </ul>\n</div>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacContextMenuAnchor\n class="btn btn-sm btn-link text-secondary text-decoration-none"\n type="button"\n (click)="toggle()"\n >\n <i [class]="IconContextMenu"></i>\n </button>\n</ng-template>\n'}]}],S.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[n.DOCUMENT]}]},{type:o.NgZone},{type:o.ElementRef},{type:o.Renderer2},{type:o.Injector}]};var I=function(e){function n(){return e.call(this)||this}return g(n,e),n}(a.SacContextmenuItemButtonCommon);I.decorators=[{type:o.Component,args:[{selector:"sac-contextmenubutton",template:'<li>\n <button\n [id]="name"\n type="button"\n class="dropdown-item"\n (click)="callaction($event)"\n [class.disabled]="isdisabled"\n [ngClass]="cssclass"\n [attr.disabled]="isdisabled ? \'disabled\' : null">\n <div class="d-flex">\n <div\n *ngIf="!isicondisabled"\n style="min-width: 1.5rem">\n <img\n *ngIf="image"\n [src]="image"\n class="align-baseline" />\n <i\n *ngIf="icon"\n [class]="iconstyle + \' \' + icon"></i>\n </div>\n <div class="flex-grow-1">{{ text }}</div>\n </div>\n </button>\n</li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return I}))}]}]}],I.ctorParameters=function(){return[]};var w=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacContextmenuItemCommon);w.decorators=[{type:o.Component,args:[{selector:"sac-contextmenusplitter",template:'<li><div class="dropdown-divider"></div></li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return w}))}]}]}];var H=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextmenuAnchorCommon);H.decorators=[{type:o.Directive,args:[{selector:"[sacContextMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:o.forwardRef((function(){return H}))}]}]}],H.ctorParameters=function(){return[{type:o.ElementRef}]};var T=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextMenuContrainerCommon);T.decorators=[{type:o.Directive,args:[{selector:"[sacContextMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:o.forwardRef((function(){return T}))}]}]}],T.ctorParameters=function(){return[{type:o.ElementRef}]};var k=function(){};k.decorators=[{type:o.NgModule,args:[{declarations:[S,I,w,H,T],imports:[n.CommonModule],exports:[S,I,w,H]}]}];var E=function(e){function n(n){var t=e.call(this,n)||this;return t.cssClassForm=!0,t}return g(n,e),n}(a.SacFormCommon);E.decorators=[{type:o.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],E.ctorParameters=function(){return[{type:l.NgForm}]},E.propDecorators={cssClassForm:[{type:o.HostBinding,args:["class.form"]}]};var A=function(e){function n(n){return e.call(this,n.get(l.NgForm))||this}return g(n,e),n}(a.SacFormCommon);function L(e){return e}function P(e){return e}A.decorators=[{type:o.Directive,args:[{selector:"[sacInheritForm]",exportAs:"sacinheritform",providers:[{provide:E,useFactory:P,deps:[[new o.SkipSelf,E]]},{provide:l.ControlContainer,useFactory:L,deps:[l.NgForm]}]}]}],A.ctorParameters=function(){return[{type:o.Injector}]};var M=function(){};M.decorators=[{type:o.NgModule,args:[{declarations:[E,A],imports:[n.CommonModule,l.FormsModule],exports:[E,A]}]}];var R=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacFormLayoutCommon);R.decorators=[{type:o.Directive,args:[{selector:"[sacFormLayout]"}]}];var z=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case a.ControlHeight.Small:return"form-control-sm";case a.ControlHeight.Large:return"form-control-lg";default:return""}},e}();z.decorators=[{type:o.Pipe,args:[{name:"toControlHeight"}]}];var _=function(){function e(){}return e.prototype.transform=function(e){var n=[];return e.labelSizeXs&&n.push("col-"+this.calcControlSize(e.labelSizeXs)),e.labelSizeSm&&n.push("col-sm-"+this.calcControlSize(e.labelSizeSm)),e.labelSizeMd&&n.push("col-md-"+this.calcControlSize(e.labelSizeMd)),e.labelSizeLg&&n.push("col-lg-"+this.calcControlSize(e.labelSizeLg)),e.labelSizeXl&&n.push("col-xl-"+this.calcControlSize(e.labelSizeXl)),e.labelSizeXxl&&n.push("col-xxl-"+this.calcControlSize(e.labelSizeXxl)),n.join(" ")},e.prototype.calcControlSize=function(e){return 12===e?12:e?12-e:12},e}();_.decorators=[{type:o.Pipe,args:[{name:"toControlWidthCss"}]}];var O=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case a.ControlHeight.Small:return"col-form-label-sm";case a.ControlHeight.Large:return"col-form-label-lg";default:return""}},e}();O.decorators=[{type:o.Pipe,args:[{name:"toLabelHeight"}]}];var G=function(){function e(){}return e.prototype.transform=function(e){var n=[];return e.labelSizeXs&&n.push("col-"+e.labelSizeXs),e.labelSizeSm&&n.push("col-sm-"+e.labelSizeSm),e.labelSizeMd&&n.push("col-md-"+e.labelSizeMd),e.labelSizeLg&&n.push("col-lg-"+e.labelSizeLg),e.labelSizeXl&&n.push("col-xl-"+e.labelSizeXl),e.labelSizeXxl&&n.push("col-xxl-"+e.labelSizeXxl),n.join(" ")},e}();G.decorators=[{type:o.Pipe,args:[{name:"toLabelWidthCss"}]}];var N=function(){};N.decorators=[{type:o.NgModule,args:[{declarations:[R,z,_,O,G],imports:[n.CommonModule],exports:[R,z,_,O,G]}]}];var D=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n.prototype.getTooltipOffset=function(){return 8},n}(a.SacTooltipCommon);D.decorators=[{type:o.Component,args:[{selector:"sac-tooltip",template:'<div [style.display]="inlinemode ? \'inline\' : null">\n <div\n #container\n (mouseenter)="ShowTooltip()"\n (mouseleave)="HideTooltip()"\n [style.display]="inlinemode ? \'inline\' : null">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf="IsTooltipVisible()"\n #tooltip>\n <div\n [class.show]="IsTooltipContentVisible"\n class="tooltip bs-tooltip-auto fade"\n style="position: absolute"\n [style.left.px]="LeftPos"\n [style.top.px]="TopPos"\n [class.top]="GetTooltipPosition() === TooltipPosition.top"\n [class.left]="GetTooltipPosition() === TooltipPosition.left"\n [class.right]="GetTooltipPosition() === TooltipPosition.right"\n [class.bottom]="GetTooltipPosition() === TooltipPosition.bottom"\n [attr.data-popper-placement]="\n GetTooltipPosition() == TooltipPosition.right\n ? \'right\'\n : GetTooltipPosition() == TooltipPosition.left\n ? \'left\'\n : GetTooltipPosition() == TooltipPosition.top\n ? \'top\'\n : GetTooltipPosition() == TooltipPosition.bottom\n ? \'bottom\'\n : null\n ">\n <div\n class="tooltip-arrow"\n style="position: absolute"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft"></div>\n <div class="tooltip-inner">{{ tooltiptext }}</div>\n </div>\n </div>\n</div>\n'}]}],D.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:o.ElementRef}]};var F=function(){};F.decorators=[{type:o.NgModule,args:[{declarations:[D],imports:[n.CommonModule],exports:[D]}]}];var V=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(a.SacDropzoneMultipleCommon);V.decorators=[{type:o.Component,args:[{selector:"sac-dropzonemultiple",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="dropzone d-flex justify-content-center position-relative"\n (drop)="dropHandler($event)"\n (dragover)="onDragOver($event)"\n (dragleave)="onDragLeave($event)"\n [class.active]="active"\n [style.min-height]="uploadheight"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div\n class="content d-flex justify-content-center"\n *ngIf="uploads.length === 0">\n <div class="align-self-center text-center">\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n <div\n class="content d-flex justify-content-center align-items-center w-50 my-3"\n *ngIf="uploads.length > 0">\n <div class="flex-fill progress-container">\n <div\n class="dropzone-uploadstates"\n [class.mt-1]="i > 0"\n *ngFor="let file of uploads; let i = index">\n <div\n class="input-group upload-component upload-component-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div class="form-control upload-progress border-secondary">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <a\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </a>\n </div>\n </div>\n </div>\n </div>\n <input\n #files\n multiple\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n [disabled]="HasQueueItem()" />\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:V},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return V}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.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%;opacity:0;position:absolute;width:100%}"]}]}],V.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var B=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(a.SacDropzoneSingleCommon);B.decorators=[{type:o.Component,args:[{selector:"sac-dropzonesingle",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="dropzone d-flex justify-content-center position-relative"\n (drop)="dropHandler($event)"\n (dragover)="onDragOver($event)"\n (dragleave)="onDragLeave($event)"\n [style.min-height]="uploadheight"\n [class.active]="active"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div\n class="content d-flex justify-content-center position-relative"\n *ngIf="uploads.length === 0">\n <div class="align-self-center text-center">\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n <div\n class="content d-flex justify-content-center align-items-center w-50 my-3"\n *ngIf="uploads.length > 0">\n <div class="flex-fill progress-container">\n <div\n class="dropzone-uploadstates"\n *ngFor="let file of uploads">\n <div\n class="input-group upload-component upload-component-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div class="form-control upload-progress border-secondary">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <a\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </a>\n </div>\n </div>\n </div>\n </div>\n <input\n #files\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n [disabled]="HasQueueItem()" />\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:B},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return B}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.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%;opacity:0;position:absolute;width:100%}"]}]}],B.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var j=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacUploadSingleCommon);j.decorators=[{type:o.Component,args:[{selector:"sac-upload",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group upload-component upload-single"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n \x3c!-- image-preview-input --\x3e\n <div\n class="btn upload-input custom-file"\n [class.disabled]="HasQueueItem()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <i\n class="pe-2"\n [ngClass]="IconBrowse"></i>\n <span class="upload-browse">{{ buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async) }}</span>\n <input\n type="file"\n id="{{ name }}_uploadinput"\n class="custom-file-input"\n #files\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n multiple\n [disabled]="HasQueueItem()" />\n </div>\n <div\n class="form-control upload-progress"\n [ngClass]="[componentHeight | toControlHeight]"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="Progress() === 100"\n role="progressbar"\n [attr.aria-valuenow]="Progress()"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="Progress()">\n <span class="progress-text text-dark">{{ Filename() | async }}</span>\n </div>\n </div>\n </div>\n\n <button\n class="btn"\n (click)="cancelAll()"\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\n class="btn"\n (click)="pauseAll()"\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && IsPaused()"\n class="btn"\n (click)="uploadAll()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="uploadAll()"\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:j},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return j}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity: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}"]}]}],j.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var U=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacUploadMultipleCommon);U.decorators=[{type:o.Component,args:[{selector:"sac-uploadmultiple",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div class="upload-component">\n <div class="row">\n <div class="col-12">\n <div\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <div\n class="btn-group"\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\n [class.btn-group-lg]="componentHeight === ControlHeight.Large"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <div\n class="btn upload-input custom-file"\n [class.disabled]="maxfiles > 0 && uploads.length >= maxfiles"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <i\n [ngClass]="IconBrowse"\n class="pe-2"></i>\n <span class="upload-browse">{{\n buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async)\n }}</span>\n <input\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n #files\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n multiple\n [disabled]="maxfiles > 0 && uploads.length >= maxfiles" />\n </div>\n\n <div\n class="btn-group"\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\n [class.btn-group-lg]="componentHeight === ControlHeight.Large">\n \x3c!-- image-preview-clear button --\x3e\n <button\n class="btn"\n (click)="cancelAll()"\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\n class="btn"\n (click)="pauseAll()"\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && IsPaused() === true"\n class="btn"\n (click)="uploadAll()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="uploadAll()"\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngFor="let file of uploads"\n style="margin-top: 5px">\n <div\n class="input-group upload-component upload-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div\n class="form-control upload-progress"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n\n <button\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== \'paused\')"\n class="btn"\n (click)="pause(file.uploadId)"\n [attr.disabled]="file.status !== \'uploading\' ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && file.status === \'paused\'"\n class="btn"\n (click)="upload(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="upload(file.uploadId)"\n [attr.disabled]="file.status !== \'added\' && file.status !== \'paused\' ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:U},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return U}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity: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}"]}]}],U.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var W=function(){};W.decorators=[{type:o.NgModule,args:[{declarations:[j,U,B,V],imports:[n.CommonModule,l.FormsModule,N,F],exports:[j,U,B,V]}]}];var q=function(e){function n(n,t,o){var l=e.call(this,n,t)||this;return l.confirmService=o,l}return g(n,e),n.prototype.confirmDeleteFile=function(e){var n=this;return new s.Observable((function(e){s.forkJoin({title:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete),message:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete)}).subscribe((function(t){n.confirmService.ConfirmMessage(t.title,t.message).subscribe((function(n){"yes"===n?e.next(!0):e.next(!1),e.complete()}))}))}))},n.prototype.confirmDeleteNode=function(e){var n=this;return new s.Observable((function(e){s.forkJoin({title:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete),message:n.lngResourceService.GetString(n.validationKeyService.FilebrowserConfirmTextDeleteFolder)}).subscribe((function(t){n.confirmService.ConfirmMessage(t.title,t.message).subscribe((function(n){"yes"===n?e.next(!0):e.next(!1),e.complete()}))}))}))},n.prototype.count=function(e){return new Array(e)},n.prototype.uploadedFileMoved=function(e){var n=this.uploadComponent.uploads.find((function(n){return n.documentid===e}));n&&this.uploadComponent.cancel(n.uploadId)},n}(a.SacFileBrowserCommon);q.decorators=[{type:o.Component,args:[{selector:"sac-filebrowser",template:'<div class="row">\n <div class="col-12 col-md-5 col-lg-4">\n <ul class="list-group list-group-flush">\n <ng-template\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{node: rootNode, deep: 0}"\n ></ng-template>\n </ul>\n\n <ng-template #treeItem let-node="node" let-deep="deep">\n <li\n class="list-group-item py-1 px-2 d-flex align-items-center"\n [class.list-group-item-secondary]="node === selectedNode"\n (click)="selectNode(node)"\n style="cursor: pointer"\n >\n <div class="mx-3" *ngFor="let i of count(deep)"></div>\n <div\n (click)="switchExpandNode(node);$event.stopPropagation();"\n class="me-2"\n [ngClass]="node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : \'\'))"\n ></div>\n <ng-container *ngIf="!node.IsEditMode">\n <div class="flex-grow-1">{{ node.Name }}</div>\n </ng-container>\n <ng-container *ngIf="node.IsEditMode">\n <div class="flex-grow-1" ngForm>\n <input\n name="editFolder"\n class="form-control form-control-sm"\n [ngModel]="node.Name"\n [ngModelOptions]="{updateOn: \'blur\'}"\n (ngModelChange)="renameNode(node, $event)"\n (keydown.enter)="$event.target.blur();false;"\n (blur)="renameNode(node, null)"\n (click)="$event.stopPropagation()"\n />\n </div>\n </ng-container>\n <div class="flex-shrink-0">\n <a\n *ngIf="node.Path !== \'/\' && allowfolderrename"\n class="btn btn-sm btn-link text-secondary"\n (click)="editNode(node);$event.stopPropagation();"\n >\n <i [class]="iconEdit"></i>\n </a>\n <sac-contextmenu cssclass="d-inline-block">\n <sac-contextmenubutton\n *ngIf="allowfoldercreate"\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}"\n [icon]="iconFolderNew"\n (clicked)="newNode(node)"\n ></sac-contextmenubutton>\n <sac-contextmenubutton\n *ngIf="node.Path !== \'/\' && allowfolderdelete"\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}"\n [icon]="iconDelete"\n (clicked)="deleteNode(node)"\n ></sac-contextmenubutton>\n <sac-contextmenusplitter\n *ngIf="allowfoldercreate || (node.Path !== \'/\' && allowfolderdelete)"\n ></sac-contextmenusplitter>\n <sac-contextmenubutton\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}"\n [icon]="iconRefresh"\n (clicked)="refreshNode(node)"\n ></sac-contextmenubutton>\n </sac-contextmenu>\n </div>\n </li>\n\n <ng-container *ngIf="node.IsExpanded">\n <ng-template\n *ngFor="let child of node.ChildNodes"\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{node: child, deep: deep + 1}"\n ></ng-template>\n </ng-container>\n </ng-template>\n </div>\n <div class="col-12 col-md-7 col-lg-8">\n <ng-container *ngIf="selectedNode && selectedNode.Files">\n <div *ngIf="allowfileupload" ngForm>\n <sac-dropzonemultiple\n [disablelabel]="true"\n [endpoint]="apiurl + \'/uploadregister\'"\n name="upload"\n uploadheight="5rem"\n [ngModel]="uploads"\n (ngModelChange)="uploadComplete(selectedNode,$event)"\n [allowedtypes]="allowedtypes"\n >{{\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\n | async }}</sac-dropzonemultiple\n >\n </div>\n <div class="table-responsive">\n <table class="table table-striped table-hover align-middle">\n <thead>\n <th>\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\n | async }}\n </th>\n <th>\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\n | async }}\n </th>\n <th style="width: 80px"></th>\n </thead>\n <tbody>\n <ng-container *ngIf="selectedNode.Files.length === 0">\n <tr>\n <td colspan="3">\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\n | async }}\n </td>\n </tr>\n </ng-container>\n <ng-container *ngIf="selectedNode.Files.length > 0">\n <tr\n *ngFor="let item of selectedNode.Files"\n (click)="selectFile(item)"\n [class.table-primary]="selectedFileItem === item"\n >\n <td [class.p-2]="item.IsEditMode">\n <ng-container *ngIf="!item.IsEditMode">\n {{ item.Filename }}\n </ng-container>\n <ng-container *ngIf="item.IsEditMode">\n <div>\n <input\n name="editFolder"\n class="form-control form-control-sm"\n [ngModel]="item.Filename"\n [ngModelOptions]="{updateOn: \'blur\'}"\n (ngModelChange)="renameFile(item, $event)"\n (keydown.enter)="$event.target.blur();false"\n (blur)="renameFile(item, null)"\n (click)="$event.stopPropagation();"\n />\n </div>\n </ng-container>\n </td>\n <td>{{ item.Size}}</td>\n <td class="p-2">\n <div class="btn-toolbar" role="toolbar">\n <div class="btn-group ml-auto" role="group">\n <a\n *ngIf="allowfilerename"\n class="btn btn-sm btn-link text-secondary"\n (click)="editFile(item);$event.stopPropagation();"\n ><i [class]="iconEdit"></i\n ></a>\n </div>\n <div class="btn-group" role="group">\n <a\n *ngIf="allowfiledelete"\n class="btn btn-sm btn-link text-secondary"\n (click)="deleteFile(item);$event.stopPropagation();"\n ><i [class]="iconDelete"></i\n ></a>\n </div>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </ng-container>\n </div>\n</div>\n',providers:[y]}]}],q.ctorParameters=function(){return[{type:t.HttpClient},{type:o.Injector},{type:y}]},q.propDecorators={uploadComponent:[{type:o.ViewChild,args:[V,{static:!1}]}]};var $=function(){};$.decorators=[{type:o.NgModule,args:[{declarations:[q],imports:[n.CommonModule,t.HttpClientModule,C,k,W,M,l.FormsModule],exports:[q],bootstrap:[q]}]}];var K=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacCheckboxCommon);K.decorators=[{type:o.Component,args:[{selector:"sac-checkbox",template:'<div\n class="row"\n [class.g-0]="disablelabel"\n [class.mb-3]="!stacked">\n <div\n class="col-12"\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\']">\n <label\n *ngIf="!disablelabel && !stacked"\n for="{{ name }}"\n class="col-form-label d-flex"\n [ngClass]="componentHeight | toLabelHeight">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext"\n >{{ label }}</div\n >\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n </div>\n <div\n class="align-self-center col-12"\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div\n class="form-check"\n [class.form-switch]="checkboxstyle === \'switch\'"\n [attr.role]="checkboxstyle === \'switch\' ? \'switch\' : null"\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-lg]="componentHeight === ControlHeight.Large">\n <input\n class="form-check-input"\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\n id="{{ name }}"\n name="{{ name }}"\n type="checkbox"\n [checked]="value"\n (blur)="onTouch()"\n (change)="setValue($event.target.checked)"\n [disabled]="isdisabled" />\n <label\n for="{{ name }}"\n class="form-check-label"\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\n <ng-container *ngIf="checkboxtext">{{ checkboxtext }}</ng-container>\n </label>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:K},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return K})),multi:!0}],styles:[".form-check-sm{font-size:.875em}.form-check-lg{font-size:1.25em}"]}]}],K.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var X=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacRadiobuttonsCommon);X.decorators=[{type:o.Component,args:[{selector:"sac-radiobuttons",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <div\n *ngIf="disablelabel === false"\n class="col-12 pt-0"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\']">\n <label\n class="col-form-label d-flex"\n [ngClass]="componentHeight | toLabelHeight"\n *ngIf="!disablelabel">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext"\n >{{ label }}</div\n >\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n </div>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.pt-1]="componentHeight === ControlHeight.Small"\n [class.pt-2]="componentHeight !== ControlHeight.Small">\n <ng-content></ng-content>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,useExisting:o.forwardRef((function(){return X})),multi:!0},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return X})),multi:!0}]}]}],X.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Q=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacRadiobuttonCommon);Q.decorators=[{type:o.Component,args:[{selector:"sac-radiobutton",template:'<div\n class="form-check"\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-lg]="componentHeight === ControlHeight.Large"\n *ngIf="hidden === false">\n <input\n id="{{ getName }}_{{ getIndex }}"\n name="{{ getName }}"\n type="radio"\n class="form-check-input"\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\n [value]="value"\n [checked]="checked"\n (change)="ChangeEvent()"\n [disabled]="isDisabled" />\n <label\n for="{{ getName }}_{{ getIndex }}"\n class="form-check-label"\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\n <ng-template *ngTemplateOutlet="labeltemplate || defaultItemLabelTemplate; context: { label: label }"> </ng-template>\n </label>\n</div>\n\n<ng-template\n #defaultItemLabelTemplate\n let-label="label">\n <ng-container>{{ label }}</ng-container>\n</ng-template>\n',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}"]}]}],Q.ctorParameters=function(){return[{type:X,decorators:[{type:o.Host}]},{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Z=function(){};Z.decorators=[{type:o.NgModule,args:[{declarations:[K,Q,X],imports:[n.CommonModule,N,F],exports:[K,Q,X]}]}];var J=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDateCommon);J.decorators=[{type:o.Component,args:[{selector:"sac-date",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showDateSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n [initialvalue]="value"\n (selectdate)="dateselect($event)"\n dateselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return J}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return J}))}]}]}],J.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};u.default;var Y=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacDateSelectorCommon);Y.decorators=[{type:o.Component,args:[{selector:"sac-dateselector",template:'<div class="calendar-selector">\n <div *ngIf="dateselection">\n <div class="container">\n <div class="row">\n <div class="col text-start">\n <a (click)="monthBack()"><span [class]="iconMonthPrev"></span></a>\n </div>\n <div class="col text-center">{{month+1}}/{{year}}</div>\n <div class="col text-end">\n <a (click)="monthNext()"><span [class]="iconMonthNext"></span></a>\n </div>\n </div>\n </div>\n <div></div>\n <div class="container">\n <div class="row">\n <ng-container *ngFor="let week of dates; let i=index">\n <ng-container *ngFor="let item of week">\n <div\n class="p-2 col text-center"\n [ngStyle]="{\'cursor\': item.isenabled ? \'pointer\' : null}"\n [ngClass]="{\'day-current\': item.iscurrent, \'day-selected\': item.isselected, \'day-new\': item.isnew, \'day-disabled\': !item.isenabled}"\n (click)="selectDate(item)"\n >\n {{ item.displaytext }}\n </div>\n </ng-container>\n <div class="w-100"></div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class="d-flex justify-content-start" *ngIf="timeselection">\n <div class="p-2">\n <div class="form-group">\n <label>Stunde</label>\n <input\n type="number"\n class="form-control form-control-sm"\n [value]="getHours()"\n (input)="setHours($event.target.value)"\n min="0"\n max="23"\n />\n </div>\n </div>\n <div class="p-2">\n <div class="form-group">\n <label>Minute</label>\n <input\n type="number"\n class="form-control form-control-sm"\n [value]="getMinutes()"\n (input)="setMinutes($event.target.value)"\n min="0"\n max="59"\n />\n </div>\n </div>\n </div>\n <div class="d-flex flex-row">\n <div class="flex-grow-1 p-2">\n <button type="button" class="btn btn-secondary" (click)="setToday()">\n Heute\n </button>\n </div>\n <div class="p-2">\n <button\n type="button"\n class="btn btn-secondary"\n (click)="resetSelection()"\n >\n Reset\n </button>\n </div>\n <div class="p-2">\n <button type="button" class="btn btn-primary" (click)="applySelection()">\n Apply\n </button>\n </div>\n </div>\n</div>\n'}]}];var ee=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDateTimeCommon);ee.decorators=[{type:o.Component,args:[{selector:"sac-datetime",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showDateSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n [initialvalue]="value"\n (selectdate)="dateselect($event)"\n dateselection="true"\n timeselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ee}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ee}))}]}]}],ee.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var ne=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacTimeCommon);ne.decorators=[{type:o.Component,args:[{selector:"sac-time",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showTimeSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n [initialvalue]="value"\n (selectdate)="timeselect($event)"\n timeselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ne}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ne}))}]}]}],ne.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var te=function(){};te.decorators=[{type:o.NgModule,args:[{declarations:[J,ee,ne,Y],imports:[n.CommonModule,r.IMaskModule,N,F],exports:[J,ee,ne,Y]}]}];var oe=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.ellipsis=!1,o}return g(n,e),n}(a.SacGridCommon);oe.decorators=[{type:o.Component,args:[{selector:"sac-grid",template:'<div class="table-responsive">\n <table class="table table-striped table-hover" id="{{name}}">\n <thead class="thead-light">\n <tr>\n <ng-container\n *ngTemplateOutlet="template; context { row: {}, type: \'header\'}"\n >\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor="let item of value; let i=index">\n <tr>\n <ng-container\n *ngTemplateOutlet="template; context { row: item, type: \'body\'}"\n >\n </ng-container>\n </tr>\n </ng-container>\n <tr\n *ngIf="value === undefined || value === null || value.length===0"\n data-e2e="emptyrow"\n >\n <td [attr.colspan]="ColumnCount">{{emptytext}}</td>\n </tr>\n </tbody>\n <tfoot *ngIf="pagerdata">\n <tr *ngIf="pagerdata">\n <td [attr.colspan]="ColumnCount">\n <div class="container-fluid">\n <sac-paging\n name="{{name}}Paging"\n (paging)="pageChange($event)"\n [pagerdata]="pagerdata"\n [pagesizes]="pagesizes"\n [pagingtext]="pagingtext"\n [pagesizetext]="pagesizetext"\n [pagesizedisabled]="pagesizedisabled"\n ></sac-paging>\n </div>\n </td>\n </tr>\n </tfoot>\n </table>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:oe},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return oe}))}]}]}],oe.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:o.Injector}]},oe.propDecorators={template:[{type:o.ContentChild,args:[o.TemplateRef,{static:!1}]}]};var le=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.getIconClass=function(){var e=this.iconstyle,n=this.icon;if(""===e)switch(this.icon){case"edit":e="sprite",n="icon-sprite-base-main_edit";break;case"delete":e="sprite",n="icon-sprite-base-main_delete"}return this._isdisabledvalue&&(n+="_disabled"),(e+" "+n).trim()},n}(a.SacGridButtonCommon);le.decorators=[{type:o.Component,args:[{selector:"sac-gridbutton",template:'<a (click)="callaction()" style="padding-right: 5px;" [class.disabled]="isdisabled" [attr.disabled]="isdisabled ? \'disabled\' : null"><span class="{{getIconClass()}}"></span></a>\n'}]}];var ae=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacGridColumnCommon);ae.decorators=[{type:o.Component,args:[{selector:"sac-gridcolumn",template:'<th\n scope="col"\n *ngIf="IsHeader()"\n [style.width]="width"\n (click)="SortByColumn()">\n <span>{{ header }}</span>\n <span\n class="ps-2"\n [class]="IconSortUp"\n *ngIf="IsSortedColumn() && GetSortDirection() === \'asc\'"></span>\n <span\n class="ps-2"\n [class]="IconSortDown"\n *ngIf="IsSortedColumn() && GetSortDirection() === \'desc\'"></span>\n</th>\n<td\n scope="col"\n *ngIf="IsBody()"\n [style.width]="width"\n [class.ellipsis]="IsEllipsis()"\n (click)="ColumnClick()"\n [style.max-width]="IsEllipsis() ? width : null"\n [style.overflow]="IsEllipsis() ? \'hidden\' : null"\n [style.text-overflow]="IsEllipsis() ? \'ellipsis\' : null"\n [style.white-space]="IsEllipsis() ? \'nowrap\' : null">\n <span\n [attr.title]="IsEllipsis() ? value : null"\n [innerHtml]="value">\n </span>\n</td>\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:o.forwardRef((function(){return ae}))}]}]}],ae.ctorParameters=function(){return[{type:oe},{type:o.Injector},{type:o.ElementRef}]};var se=function(e){function n(n,t,o){var l=e.call(this,n,t,o)||this;return l.width="60px",l}return g(n,e),n}(a.SacGridColumnActionCommon);se.decorators=[{type:o.Component,args:[{selector:"sac-gridcolumnaction",template:'<th scope="col" *ngIf="IsHeader()" [style.width]="width"><span></span></th>\n<td scope="col" class="px-2" *ngIf="IsBody()">\n <ng-content></ng-content>\n</td>\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:o.forwardRef((function(){return se}))}]}]}],se.ctorParameters=function(){return[{type:oe},{type:o.Injector},{type:o.ElementRef}]};var ie=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.getIconClass=function(){switch(this.iconstyle){case"edit":return"sprite icon-sprite-base-main_edit";case"delete":return"sprite icon-sprite-base-main_delete";default:return this.iconstyle}},n}(a.SacGridImageCommon);ie.decorators=[{type:o.Component,args:[{selector:"sac-gridimage",template:'<span><span class="{{getIconClass()}}"></span></span>\n'}]}];var re=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacPagingCommon);re.decorators=[{type:o.Component,args:[{selector:"sac-paging",template:'<div\n class="d-flex justify-content-between align-items-center flex-wrap"\n id="{{name}}"\n>\n <div class="col-pagination order-2 order-md-1" id="{{name}}_pages">\n <ul class="pagination mb-4 mb-md-0">\n <li\n class="page-item"\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === firstPageIndex}"\n >\n <a class="page-link" (click)="firstPage()">«</a>\n </li>\n <li\n class="page-item"\n *ngFor="let page of paginators; let i = index"\n [ngClass]="{\'active\': page === activePageIndex}"\n >\n <a class="page-link" (click)="changePage(page)">{{page + 1 }}</a>\n </li>\n <li\n class="page-item"\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === lastPageIndex}"\n >\n <a class="page-link" (click)="lastPage()">»</a>\n </li>\n </ul>\n </div>\n <div class="col-summary order-1 order-md-2">\n <div class="mb-4 mb-md-0 mr-4 mb-md-0">{{ PagingText | async }}</div>\n </div>\n <div class="col-pagesize order-3" *ngIf="!pagesizedisabled">\n <div class="d-flex align-items-center" id="{{name}}_size">\n <select\n class="form-select form-select-sm"\n style="width: 85px"\n [ngModel]="pageSize"\n (ngModelChange)="changePageSize($event)"\n >\n <option [ngValue]="size" *ngFor="let size of getPageSizes">\n {{size}}\n </option>\n </select>\n <div class="ms-2">{{ PageSizeText | async }}</div>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:re},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return re}))}]}]}],re.ctorParameters=function(){return[{type:o.Injector}]};var de=function(){};de.decorators=[{type:o.NgModule,args:[{declarations:[oe,ae,se,re,le,ie],imports:[n.CommonModule,l.FormsModule],exports:[oe,ae,se,re,le,ie]}]}];var ce=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputCommon);ce.decorators=[{type:o.Component,args:[{selector:"sac-input",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n [readonly]="readonly"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:ce},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ce}))}]}]}],ce.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var pe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputAreaCommon);pe.decorators=[{type:o.Component,args:[{selector:"sac-inputarea",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <textarea\n id="{{ name }}"\n name="{{ name }}"\n type=""\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.rows]="rows"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [attr.maxlength]="maxtextlength"\n [readonly]="readonly"></textarea>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return pe}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return pe}))}]}]}],pe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ue=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputCurrencyCommon);ue.decorators=[{type:o.Component,args:[{selector:"sac-inputcurrency",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group input-group-sm"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [readonly]="readonly"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n <span class="input-group-text">{{ currency }}</span>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ue}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ue}))}]}]}],ue.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var me=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputDecimalCommon);me.decorators=[{type:o.Component,args:[{selector:"sac-inputdecimal",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n [readonly]="readonly"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return me}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return me}))}]}]}],me.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ge=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputEmailCommon);ge.decorators=[{type:o.Component,args:[{selector:"sac-inputemail",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <span class="input-group-text">@</span>\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="email"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n [attr.maxlength]="maxtextlength"\n autocomplete="email"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ge}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ge}))}]}]}],ge.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputIntegerCommon);be.decorators=[{type:o.Component,args:[{selector:"sac-inputinteger",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [readonly]="readonly"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:be},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return be}))}]}]}],be.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ve=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputPasswordCommon);ve.decorators=[{type:o.Component,args:[{selector:"sac-inputpassword",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n [class.input-group]="passwordeye"\n [class.has-validation]="passwordeye && isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n [type]="passwordeyevisible ? \'text\' : \'password\'"\n class="form-control"\n [attr.placeholder]="placeholder"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.maxlength]="maxtextlength"\n autocomplete="new-password"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <a\n *ngIf="passwordeye"\n class="btn btn-outline-secondary"\n (click)="onTogglePasswordEye()"\n ><span [ngClass]="passwordeyevisible ? PasswordEyeVisibleIcon : PasswordEyeHiddenIcon"></span>\n </a>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:ve},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ve}))}]}]}],ve.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var he=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputSearchCommon);he.decorators=[{type:o.Component,args:[{selector:"sac-inputsearch",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="search"\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <button\n type="button"\n class="btn btn-secondary"\n id="{{ name }}_search"\n (click)="searchClick()">\n <i\n *ngIf="buttonmode === \'icon\' || buttonmode === \'mixed\'"\n [class]="iconname"\n [class.me-2]="buttonmode === \'mixed\'"></i>\n <ng-container *ngIf="buttonmode === \'text\' || buttonmode === \'mixed\'">{{ buttontext }}</ng-container>\n </button>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:he},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return he}))}]}]}],he.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var fe=function(){};fe.decorators=[{type:o.NgModule,args:[{declarations:[ce,pe,ue,me,ge,be,ve,he],imports:[n.CommonModule,N,F],exports:[ce,pe,ue,me,ge,be,ve,he]}]}];var xe=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDropdownCommon);xe.decorators=[{type:o.Component,args:[{selector:"sac-dropdown",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <select\n #dropdownitem\n id="{{ name }}"\n name="{{ name }}"\n class="form-select"\n [class.form-select-sm]="componentHeight === ControlHeight.Small"\n [class.form-select-lg]="componentHeight === ControlHeight.Large"\n [ngClass]="{ \'is-invalid\': invalid && (dirty || touched) }"\n (blur)="onTouch()"\n (change)="setValue(dropdownitem.value)"\n [disabled]="isdisabled">\n <option\n *ngIf="emptylabel !== \'\'"\n [ngValue]="emptyvalue">\n {{ emptylabel }}\n </option>\n\n <ng-content></ng-content>\n\n <ng-container *ngIf="groupitems === \'\'">\n <option\n *ngFor="let item of options"\n [ngValue]="optionvalue ? item[optionvalue] : item"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\n </option>\n </ng-container>\n\n <ng-container *ngIf="groupitems !== \'\'">\n <optgroup\n *ngFor="let group of options"\n [attr.label]="group[grouplabel]">\n <option\n *ngFor="let item of group[groupitems]"\n [ngValue]="optionvalue ? item[optionvalue] : item"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\n </option>\n </optgroup>\n </ng-container>\n </select>\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n\n<ng-template\n #defaultItemLabelTemplate\n let-label="label">\n {{ label }}\n</ng-template>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:xe},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return xe}))}]}]}],xe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.ElementRef}]};var ye=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacDropdownOptionCommon);ye.decorators=[{type:o.Directive,args:[{selector:"[sacOption],option"}]}],ye.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:xe,decorators:[{type:o.Optional},{type:o.Host}]}]};var Ce=function(){};Ce.decorators=[{type:o.NgModule,args:[{declarations:[xe,ye],imports:[n.CommonModule,N,F],exports:[xe,ye]}]}];var Se=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacListboxCommon);Se.decorators=[{type:o.Component,args:[{selector:"sac-listbox",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true"\n ><span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <select\n multiple\n id="{{ name }}"\n name="{{ name }}"\n class="form-select"\n [class.form-select-sm]="componentHeight === ControlHeight.Small"\n [class.form-select-lg]="componentHeight === ControlHeight.Large"\n [size]="rowsize"\n [ngClass]="{ \'is-invalid\': invalid && (dirty || touched) }"\n (blur)="onTouch()"\n (change)="getSelectedItems($event.target)"\n [disabled]="isdisabled">\n <ng-content></ng-content>\n <ng-container *ngIf="groupitems === \'\'">\n <option\n *ngFor="let option of options"\n [value]="option[optionvalue]"\n [disabled]="optionenabled !== \'\' && option[optionenabled] === false">\n {{ option[optionlabel] }}\n </option>\n </ng-container>\n <ng-container *ngIf="groupitems !== \'\'">\n <optgroup\n *ngFor="let option of options"\n [attr.label]="option[grouplabel]">\n <option\n *ngFor="let item of option[groupitems]"\n [value]="item[optionvalue]"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\n {{ item[optionlabel] }}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Se},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Se}))}]}]}],Se.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Ie=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacListboxOptionCommon);Ie.decorators=[{type:o.Directive,args:[{selector:"[sacOption],option"}]}],Ie.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:Se,decorators:[{type:o.Optional},{type:o.Host}]}]};var we=function(){};we.decorators=[{type:o.NgModule,args:[{declarations:[Se,Ie],imports:[n.CommonModule,N,F],exports:[Se,Ie]}]}];var He=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.IconType=a.IconType,o}return g(n,e),n}(a.SacMultilanguageInputCommon);He.decorators=[{type:o.Component,args:[{selector:"sac-multilanguageinput",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\n placement="bottom-right"\n sac-multilanguagemenu\n [buttontemplate]="menuButton"\n [inputtemplate]="menuInput"\n [validationtemplate]="validationMessage"\n #contextmenu>\n <ng-template #menuInput>\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="LanguageValue"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="SetLanguageValue($event.target.value)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled" />\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]="name + \'_dropdownitem\'"\n type="button"\n class="btn dropdown-toggle"\n (click)="contextmenu.toggle()"\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\n <img\n src="{{ SelectedIcon }}"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.Image" />\n <span\n [ngClass]="SelectedIcon"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.CssSprite"></span>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor="let sprache of Languages">\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.Image"\n text="{{ sprache.Text }}"\n image="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.CssSprite"\n text="{{ sprache.Text }}"\n icon="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class="row">\n <div class="col text-right"></div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:He},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return He}))}]}]}],He.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Te=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.IconType=a.IconType,o}return g(n,e),n}(a.SacMultilanguageInputAreaCommon);Te.decorators=[{type:o.Component,args:[{selector:"sac-multilanguageinputarea",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\n placement="bottom-right"\n sac-multilanguagemenu\n [buttontemplate]="menuButton"\n [inputtemplate]="menuInput"\n [validationtemplate]="validationMessage"\n #contextmenu>\n <ng-template #menuInput>\n <textarea\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="LanguageValue"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n style="height: auto"\n (input)="SetLanguageValue($event.target.value)"\n [attr.rows]="rows"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"></textarea>\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]="name + \'_dropdownitem\'"\n type="button"\n class="btn dropdown-toggle"\n (click)="contextmenu.toggle()"\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\n <img\n src="{{ SelectedIcon }}"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.Image" />\n <i\n [ngClass]="SelectedIcon"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.CssSprite"></i>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor="let sprache of Languages">\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.Image"\n text="{{ sprache.Text }}"\n image="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.CssSprite"\n text="{{ sprache.Text }}"\n icon="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class="row">\n <div class="col text-right"></div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Te},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Te}))}]}]}],Te.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ke=function(e){function n(n,t,o,l,a){return e.call(this,n,t,o,l,a)||this}return g(n,e),n}(a.SacContextmenuCommon);ke.decorators=[{type:o.Component,args:[{selector:"[sac-multilanguagemenu]",template:'<ng-container\n [ngTemplateOutlet]="inputtemplate || defaultInputTemplate"\n></ng-container>\n<ng-container\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\n></ng-container>\n<ng-container\n [ngTemplateOutlet]="validationtemplate || defaultValidationTemplate"\n></ng-container>\n\n<ul\n class="dropdown-menu dropdown-menu-right"\n sacMultilanguageMenuContainer\n [class.show]="isopen"\n>\n <ng-content></ng-content>\n</ul>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacMultilanguageMenuAnchor\n class="btn btn-secondary dropdown-toggle"\n type="button"\n (click)="toggle()"\n ></button>\n</ng-template>\n\n<ng-template #defaultInputTemplate>\n <input type="text" class="form-control" />\n</ng-template>\n\n<ng-template #defaultValidationTemplate></ng-template>\n',providers:[{provide:a.SacContextmenuCommon,useExisting:o.forwardRef((function(){return ke}))}]}]}],ke.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[n.DOCUMENT]}]},{type:o.NgZone},{type:o.ElementRef},{type:o.Renderer2},{type:o.Injector}]},ke.propDecorators={inputtemplate:[{type:o.Input}],validationtemplate:[{type:o.Input}]};var Ee=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextmenuAnchorCommon);Ee.decorators=[{type:o.Directive,args:[{selector:"[sacMultilanguageMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:o.forwardRef((function(){return Ee}))}]}]}],Ee.ctorParameters=function(){return[{type:o.ElementRef}]};var Ae=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextMenuContrainerCommon);Ae.decorators=[{type:o.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:o.forwardRef((function(){return Ae}))}]}]}],Ae.ctorParameters=function(){return[{type:o.ElementRef}]};var Le=function(e){function n(){return e.call(this)||this}return g(n,e),n}(a.SacContextmenuItemButtonCommon);Le.decorators=[{type:o.Component,args:[{selector:"sac-multilanguagemenubutton",template:'<li>\n <button\n type="button"\n class="dropdown-item"\n (click)="callaction($event)"\n [class.disabled]="isdisabled"\n [ngClass]="cssclass"\n [attr.disabled]="isdisabled ? \'disabled\' : null"\n >\n <div class="d-flex">\n <div *ngIf="!isicondisabled" style="min-width: 1.5rem">\n <img *ngIf="image" [src]="image" class="align-baseline" />\n <i *ngIf="icon" [class]="iconstyle + \' \' + icon"></i>\n </div>\n <div class="flex-grow-1">{{ text }}</div>\n </div>\n </button>\n</li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return Le}))}]}]}],Le.ctorParameters=function(){return[]};var Pe=function(){};Pe.decorators=[{type:o.NgModule,args:[{declarations:[He,Te,ke,Ee,Ae,Le],imports:[n.CommonModule,N,F],exports:[He,Te]}]}];var Me=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacStaticFormContainerCommon);Me.decorators=[{type:o.Component,args:[{selector:"sac-staticformcontainer",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel"\n [class.was-validated]="isinlineerrorenabled && isinvalid && errormessage">\n <ng-content></ng-content>\n <label\n for="{{ name }}"\n class="form-label-adaptive form-label-fixed"\n [ngClass]="{ required: isrequired }"\n *ngIf="isAdaptiveLabel && !disablelabel"\n >{{ label }}</label\n >\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && isinvalid && errormessage">\n {{ errormessage }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Me},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Me}))}]}]}],Me.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Re=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacStaticLabelCommon);Re.decorators=[{type:o.Component,args:[{selector:"sac-staticlabel",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true"\n ><span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div>\n <div\n [id]="name"\n class="form-control-plaintext"\n [ngClass]="[componentHeight | toControlHeight]"\n [innerHTML]="value"></div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Re},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Re}))}]}]}],Re.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ze=function(){};ze.decorators=[{type:o.NgModule,args:[{declarations:[Re,Me],imports:[n.CommonModule,N,F],exports:[Re,Me]}]}];var _e=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacTabItemCommon);_e.decorators=[{type:o.Component,args:[{selector:"sac-tabitem",template:'<div [id]="id" [hidden]="unloadwhenhidden === false && active === false" *ngIf="(unloadwhenhidden === true && active === true) || unloadwhenhidden === false" class="tab-pane">\n <ng-template [ngTemplateOutlet]="templateRef"></ng-template>\n</div>\n'}]}];var Oe=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.tabItems=function(){return this._tabItems.toArray()},n}(a.SacTabCommon);Oe.decorators=[{type:o.Component,args:[{selector:"sac-tab",template:'\x3c!-- Nav tabs --\x3e\n<ul class="nav nav-tabs" role="tablist">\n <li class="nav-item" *ngFor="let item of _tabItems">\n <a\n [id]="GetTabItemButtonId(item.id)"\n role="tab"\n class="nav-link"\n data-toggle="tab"\n [ngClass]="{ \'active\': item.active, \'disabled\': item.disabled }"\n (click)="selectTab(item)"\n [ngStyle]="{\'cursor\': item.disabled ? \'not-allowed\' : \'pointer\'}"\n >{{item.label}}</a\n >\n </li>\n</ul>\n\n\x3c!-- Tab panes --\x3e\n<div class="tab-content pl-3 pt-2">\n <ng-content></ng-content>\n</div>\n'}]}],Oe.propDecorators={_tabItems:[{type:o.ContentChildren,args:[_e]}]};var Ge=function(){};Ge.decorators=[{type:o.NgModule,args:[{declarations:[Oe,_e],imports:[n.CommonModule],exports:[Oe,_e]}]}];var Ne=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n.prototype.overwriteDefaultSettings=function(){return{}},n}(a.SacTinyMceCommon);Ne.decorators=[{type:o.Component,args:[{selector:"sac-tinymce",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <editor\n [id]="name + \'_tinymce\'"\n [init]="_config"\n [initialValue]="value"\n ngModel\n [ngModelOptions]="{ standalone: true }"\n (ngModelChange)="setValue($event)"\n (onSaveContent)="save($event.event.content)"\n [disabled]="disabled"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"></editor>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n\n <sac-dialog\n *ngIf="selectdialogvisible"\n [allowesc]="false"\n [backdrop]="true"\n [(isvisible)]="selectdialogvisible"\n title="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}"\n size="large"\n height="500px">\n <ng-container dialogbody>\n <sac-filebrowser\n [apiurl]="filebrowserapiurl"\n (file)="selectDialogSettings.value = $event"\n [allowfoldercreate]="allowfoldercreate"\n [allowfolderrename]="allowfolderrename"\n [allowfolderdelete]="allowfolderdelete"\n [allowfileupload]="allowfileupload"\n [allowfilerename]="allowfilerename"\n [allowfiledelete]="allowfiledelete"\n [selectedfile]="selectDialogSettings.value"\n [allowedtypes]="selectDialogSettings.allowedtypes"></sac-filebrowser>\n </ng-container>\n <ng-container dialogfooter>\n <sac-button\n role="primary"\n [name]="name + \'_modalOk\'"\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}"\n (clicked)="setSelectDialogResult()"></sac-button>\n <sac-button\n [name]="name + \'_modalClose\'"\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}"\n (clicked)="closeSelectDialog()"></sac-button>\n </ng-container>\n </sac-dialog>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ne},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return Ne})),multi:!0}],styles:[".is-invalid{border:1px solid var(--bs-form-invalid-border-color)}"]}]}],Ne.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.NgZone}]};var De=function(){};De.decorators=[{type:o.NgModule,args:[{declarations:[Ne],imports:[n.CommonModule,l.FormsModule,c.EditorModule,v,f,$,N,F],exports:[Ne]}]}];var Fe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacTreeviewCommon);Fe.decorators=[{type:o.Component,args:[{selector:"sac-treeview",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="w-100"\n [style.min-width]="helptextmode === \'tooltip\' && helptext && disablelabel ? 0 : null"\n [class.me-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <ul\n class="list-group list-group-flush"\n id="{{ name }}"\n [class.is-invalid]="invalid && (dirty || touched)"\n [class.border]="invalid && (dirty || touched)"\n [class.border-danger]="invalid && (dirty || touched)">\n <ng-container *ngFor="let node of data">\n <ng-template\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{ node: node, deep: 0, path: \'\', textpath: \'\' }">\n </ng-template>\n </ng-container>\n </ul>\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n </div>\n</div>\n<ng-template\n #treeItem\n let-node="node"\n let-deep="deep"\n let-path="path"\n let-textpath="textpath">\n <li\n class="list-group-item list-group-item-action py-1 px-2 d-flex align-items-center"\n [class.active]="isSelectedState(node)"\n (mouseenter)="setHoverState(node, true)"\n (mouseleave)="setHoverState(node, false)"\n style="cursor: pointer"\n attr.data-path="{{ path }}/{{ getStringField(node, attrid) }}"\n attr.data-textpath="{{ textpath }}/{{ getStringField(node, attrlabel) }}">\n <div\n class="mx-3"\n *ngFor="let i of count(deep)">\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n *ngIf="expandedstate === \'true\' || expandedstate === true"\n class="me-2"\n [ngClass]="!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : \'\'">\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n *ngIf="attricon && getStringField(node, attricon)">\n <ng-template\n [ngTemplateOutlet]="templateicon || defaultTemplateIcon"\n [ngTemplateOutletContext]="{ node: node }">\n </ng-template>\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n class="flex-grow-1 py-1"\n [style.max-width.percent]="enableellipsis ? \'100\' : null"\n [style.overflow]="enableellipsis ? \'hidden\' : null"\n [style.text-overflow]="enableellipsis ? \'ellipsis\' : null"\n [style.white-space]="enableellipsis ? \'nowrap\' : null">\n <ng-template\n [ngTemplateOutlet]="templatelabel || defaultTemplateLabel"\n [ngTemplateOutletContext]="{ node: node, label: getStringField(node, attrlabel) }">\n </ng-template>\n </div>\n\n <div\n (click)="setSelectedState(node)"\n class="flex-shrink-0"\n *ngIf="!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))">\n <ng-template\n [ngTemplateOutlet]="templateaction || defaultTemplateAction"\n [ngTemplateOutletContext]="{ node: node, actionhandler: onActionClicked.bind(this) }">\n </ng-template>\n </div>\n </li>\n\n <ng-container *ngIf="isExpandedState(node)">\n <ng-template\n *ngFor="let child of getChildren(node)"\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{\n node: child,\n deep: deep + 1,\n path: path + \'/\' + getStringField(node, attrid),\n textpath: textpath + \'/\' + getStringField(node, attrlabel)\n }">\n </ng-template>\n </ng-container>\n</ng-template>\n<ng-template\n #defaultTemplateLabel\n let-label="label"\n let-node="node">\n <span [title]="label">\n {{ label }}\n </span>\n</ng-template>\n\n<ng-template\n #defaultTemplateIcon\n let-node="node">\n <div\n class="me-2"\n [ngClass]="getStringField(node, attricon)">\n </div>\n</ng-template>\n\n<ng-template\n #defaultTemplateAction\n let-node="node"\n let-actionhandler="actionhandler">\n <a\n class="btn btn-sm btn-link text-secondary"\n (click)="actionhandler({ action: \'default\', node: node })">\n <i [class]="iconAction"></i>\n </a>\n</ng-template>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Fe},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return Fe})),multi:!0}]}]}],Fe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Ve=function(){};Ve.decorators=[{type:o.NgModule,args:[{declarations:[Fe],imports:[n.CommonModule,N,k,F],exports:[Fe]}]}];var Be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacValidationSummaryCommon);Be.decorators=[{type:o.Component,args:[{selector:"sac-validationsummary",template:'<div class="alert alert-danger" role="alert" *ngIf="hasErrors">\n <ul class="mb-0">\n <li *ngFor="let error of formErrors">{{error | async}}</li>\n </ul>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Be}]}]}],Be.ctorParameters=function(){return[{type:E,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var je=function(){};je.decorators=[{type:o.NgModule,args:[{declarations:[Be],imports:[n.CommonModule],exports:[Be]}]}];var Ue=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacWizardItemCommon);Ue.decorators=[{type:o.Component,args:[{selector:"sac-wizarditem",template:""}]}];var We=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.wizardItems=function(){return this._wizardItems},n}(a.SacWizardCommon);We.decorators=[{type:o.Component,args:[{selector:"sac-wizard",template:'<ul class="nav nav-wizard" role="tablist">\n <li *ngFor="let item of _wizardItems" class="nav-item" [ngClass]="{ \'active\': item._active, \'disabled\': item._disabled, \'success\': item._iscomplete }"\n [ngStyle]="{\'cursor\': item._disabled ? \'not-allowed\' : \'pointer\'}">\n <a role="tab" (click)="selectStep(item)">\n <div class="circle">\n <span class="step"></span>\n </div>\n </a>\n <div class="info">\n <a (click)="selectStep(item)">{{item._label}}</a>\n </div>\n </li>\n</ul>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:We}]}]}],We.propDecorators={_wizardItems:[{type:o.ContentChildren,args:[Ue]}]};var qe=function(){};qe.decorators=[{type:o.NgModule,args:[{declarations:[We,Ue],imports:[n.CommonModule,N],exports:[We,Ue]}]}],e.NGFORM_FACTORY=L,e.SACBootstrap5BrowserModule=$,e.SACBootstrap5ButtonModule=v,e.SACBootstrap5CheckboxModule=Z,e.SACBootstrap5ConfirmModule=C,e.SACBootstrap5ContextmenuModule=k,e.SACBootstrap5DateTimeModule=te,e.SACBootstrap5DialogModule=f,e.SACBootstrap5DropdownModule=Ce,e.SACBootstrap5FormModule=M,e.SACBootstrap5GridModule=de,e.SACBootstrap5InputModule=fe,e.SACBootstrap5LayoutModule=N,e.SACBootstrap5ListModule=we,e.SACBootstrap5MultilanguageModule=Pe,e.SACBootstrap5StaticLabelModule=ze,e.SACBootstrap5TabsModule=Ge,e.SACBootstrap5TinyMceModule=De,e.SACBootstrap5TooltipModule=F,e.SACBootstrap5TreeviewModule=Ve,e.SACBootstrap5UploadModule=W,e.SACBootstrap5ValidationSummaryModule=je,e.SACBootstrap5WizardModule=qe,e.SACFORM_FACTORY=P,e.SacBrowserComponent=q,e.SacButtonComponent=b,e.SacCheckboxComponent=K,e.SacConfirmComponent=x,e.SacContextmenuAnchorDirective=H,e.SacContextmenuComponent=S,e.SacContextmenuItemButtonComponent=I,e.SacContextmenuItemSplitterComponent=w,e.SacDateComponent=J,e.SacDateSelectorComponent=Y,e.SacDateTimeComponent=ee,e.SacDialogComponent=h,e.SacDropdownComponent=xe,e.SacDropdownOptionDirective=ye,e.SacDropzoneMultipleComponent=V,e.SacDropzoneSingleComponent=B,e.SacFormDirective=E,e.SacFormLayoutDirective=R,e.SacGridButtonComponent=le,e.SacGridColumnActionComponent=se,e.SacGridColumnComponent=ae,e.SacGridComponent=oe,e.SacGridImageComponent=ie,e.SacInheritFormDirective=A,e.SacInputAreaComponent=pe,e.SacInputComponent=ce,e.SacInputCurrencyComponent=ue,e.SacInputDecimalComponent=me,e.SacInputEmailComponent=ge,e.SacInputIntegerComponent=be,e.SacInputPasswordComponent=ve,e.SacInputSearchComponent=he,e.SacListboxComponent=Se,e.SacListboxOptionDirective=Ie,e.SacMultilanguageInputAreaComponent=Te,e.SacMultilanguageInputComponent=He,e.SacPagingComponent=re,e.SacRadiobuttonComponent=Q,e.SacRadiobuttonsComponent=X,e.SacStaticFormContainerComponent=Me,e.SacStaticLabelComponent=Re,e.SacTabComponent=Oe,e.SacTabItemComponent=_e,e.SacTimeComponent=ne,e.SacTinyMceComponent=Ne,e.SacToControlHeightPipe=z,e.SacToControlWidthCssPipe=_,e.SacToLabelHeightPipe=O,e.SacToLabelWidthCssPipe=G,e.SacTooltipComponent=D,e.SacTreeviewComponent=Fe,e.SacUploadComponent=j,e.SacUploadMultipleComponent=U,e.SacValidationSummaryComponent=Be,e.SacWizardComponent=We,e.SacWizardItemComponent=Ue,e.ServiceConfirm=y,e.ɵa=T,e.ɵb=ke,e.ɵc=Ee,e.ɵd=Ae,e.ɵe=Le,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/common"),require("@angular/common/http"),require("@angular/core"),require("@angular/forms"),require("@simpleangularcontrols/sac-common"),require("rxjs"),require("rxjs/operators"),require("moment"),require("angular-imask"),require("@tinymce/tinymce-angular")):"function"==typeof define&&define.amd?define("@simpleangularcontrols/sac-bootstrap5",["exports","@angular/common","@angular/common/http","@angular/core","@angular/forms","@simpleangularcontrols/sac-common","rxjs","rxjs/operators","moment","angular-imask","@tinymce/tinymce-angular"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self).simpleangularcontrols=e.simpleangularcontrols||{},e.simpleangularcontrols["sac-bootstrap5"]={}),e.ng.common,e.ng.common.http,e.ng.core,e.ng.forms,e.sacCommon,e.rxjs,e.rxjs.operators,e.moment,e.angularImask,e.tinymceAngular)}(this,(function(e,n,t,o,l,a,i,s,r,d,c){"use strict";function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=p(r),m=function(e,n){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])})(e,n)};function g(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function t(){this.constructor=e}m(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var b=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacButtonCommon);b.decorators=[{type:o.Component,args:[{selector:"sac-button",template:'<button\n [id]="name"\n type="button"\n class="btn d-flex justify-content-center align-items-center"\n [attr.disabled]="_isdisabled || isloading ? \'disabled\' : null"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n (click)="buttonClick()"\n [class.btn-primary]="role === \'primary\'"\n [class.btn-secondary]="role === \'secondary\' || role === \'default\'"\n [class.btn-success]="role === \'success\'"\n [class.btn-danger]="role === \'danger\'"\n [class.btn-warning]="role === \'warning\'"\n [class.btn-info]="role === \'info\'"\n [class.btn-link]="role === \'link\'">\n <span\n *ngIf="isloading"\n class="spinner-border spinner-border-sm me-2"\n role="status"\n aria-hidden="true"></span>\n <i\n *ngIf="!isloading && icon !== \'\'"\n [ngClass]="icon"\n [class.me-2]="text"></i\n >{{ text }}\n</button>\n'}]}];var v=function(){};v.decorators=[{type:o.NgModule,args:[{declarations:[b],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[b]}]}];var f=function(e){function n(n,t){var o=e.call(this,t)||this;return o.element=n.nativeElement,o}return g(n,e),n.prototype.ngOnDestroy=function(){this.hide(),document.body.contains(this.element)&&document.body.removeChild(this.element),e.prototype.ngOnDestroy.call(this)},n.prototype.ngOnInit=function(){document.body.appendChild(this.element)},n}(a.SacDialogCommon);f.decorators=[{type:o.Component,args:[{selector:"sac-dialog",template:'<div\n #dialog\n class="modal show"\n style="display: block"\n tabindex="-1"\n role="dialog"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n *ngIf="_show">\n <div\n class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable"\n role="document"\n [class.modal-xl]="_size === \'extralarge\'"\n [class.modal-lg]="_size === \'large\'"\n [class.modal-sm]="_size === \'small\'">\n <div class="modal-content">\n <div class="modal-header">\n <h5 class="modal-title">{{ title }}</h5>\n <button\n type="button"\n class="btn-close"\n data-dismiss="modal"\n aria-label="Close"\n (click)="hide()"\n *ngIf="closebutton"></button>\n </div>\n <div class="modal-body">\n <ng-content select="[dialogbody]"></ng-content>\n </div>\n <div class="modal-footer">\n <ng-content select="[dialogfooter]"></ng-content>\n </div>\n </div>\n \x3c!-- /.modal-content --\x3e\n </div>\n \x3c!-- /.modal-dialog --\x3e\n</div>\n\x3c!-- /.modal --\x3e\n<div\n class="modal-backdrop show"\n *ngIf="_show && backdrop"\n #backdrop></div>\n'}]}],f.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var h=function(){};h.decorators=[{type:o.NgModule,args:[{declarations:[f],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[f]}]}];var x=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacConfirmCommon);x.decorators=[{type:o.Component,args:[{selector:"sac-confirm",template:'<sac-dialog\n name="confirmDialog"\n [(isvisible)]="isvisible"\n [title]="title"\n [allowesc]="false"\n [closebutton]="false"\n dialogsize="small">\n <div dialogbody>\n <div class="d-flex align-items-center">\n <div class="me-2">\n <img\n [attr.src]="image"\n class="align-self-center mr-3"\n *ngIf="hasImage()" />\n </div>\n <div class="flex-grow-1">{{ message }}</div>\n </div>\n </div>\n <ng-container dialogfooter>\n <ng-container *ngFor="let button of buttons">\n <sac-button\n [name]="button.key"\n [text]="button.text"\n [role]="button.role || \'default\'"\n (clicked)="confirm(button.key)"></sac-button>\n </ng-container>\n </ng-container>\n</sac-dialog>\n'}]}];var y=function(e){function n(n,t,o){var l=e.call(this,t,o)||this;return l.componentFactoryResolver=n,l.buttons=[],l.message="",l.title="",l}return g(n,e),n.prototype.ConfirmMessage=function(n,t,o){var l=this;return void 0===o&&(o=null),this.title=n,this.message=t,a.isDefined(o)?this.buttons=o:(this.buttons=[],i.forkJoin({button_yes:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),button_no:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo)}).pipe(s.take(1)).subscribe((function(e){l.buttons.push(new a.SacConfirmButton("yes",e.button_yes,"primary")),l.buttons.push(new a.SacConfirmButton("no",e.button_no))}))),e.prototype.Confirm.call(this)},n.prototype.GetComponentFactory=function(){return this.componentFactoryResolver.resolveComponentFactory(x)},n.prototype.ConfigureDialog=function(e){e.title=this.title,e.message=this.message,e.buttons=this.buttons,e.image=this.iconService.ConfirmDefaultImage},n}(a.ServiceConfirmCommon);y.decorators=[{type:o.Injectable}],y.ctorParameters=function(){return[{type:o.ComponentFactoryResolver,decorators:[{type:o.Inject,args:[o.ComponentFactoryResolver]}]},{type:o.ApplicationRef},{type:o.Injector}]};var C=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[y]}},e}();C.decorators=[{type:o.NgModule,args:[{declarations:[x],imports:[n.CommonModule,h,v],exports:[x],entryComponents:[x]}]}];var S=function(e){function n(n,t,o,l,a){return e.call(this,n,t,o,l,a)||this}return g(n,e),n}(a.SacContextmenuCommon);S.decorators=[{type:o.Component,args:[{selector:"sac-contextmenu",template:'<div\n class="dropdown"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n [ngClass]="cssclass">\n <ng-container [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"></ng-container>\n\n <ul\n class="dropdown-menu dropdown-menu-end"\n sacContextMenuContainer\n [class.show]="isopen">\n <ng-content></ng-content>\n </ul>\n</div>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacContextMenuAnchor\n class="btn btn-sm btn-link text-secondary text-decoration-none"\n type="button"\n (click)="toggle()">\n <i [class]="IconContextMenu"></i>\n </button>\n</ng-template>\n'}]}],S.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[n.DOCUMENT]}]},{type:o.NgZone},{type:o.ElementRef},{type:o.Renderer2},{type:o.Injector}]};var I=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextmenuAnchorCommon);I.decorators=[{type:o.Directive,args:[{selector:"[sacContextMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:o.forwardRef((function(){return I}))}]}]}],I.ctorParameters=function(){return[{type:o.ElementRef}]};var w=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextMenuContrainerCommon);w.decorators=[{type:o.Directive,args:[{selector:"[sacContextMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:o.forwardRef((function(){return w}))}]}]}],w.ctorParameters=function(){return[{type:o.ElementRef}]};var H=function(e){function n(){return e.call(this)||this}return g(n,e),n}(a.SacContextmenuItemButtonCommon);H.decorators=[{type:o.Component,args:[{selector:"sac-contextmenubutton",template:'<li>\n <button\n [id]="name"\n type="button"\n class="dropdown-item"\n (click)="callaction($event)"\n [class.disabled]="isdisabled"\n [ngClass]="cssclass"\n [attr.disabled]="isdisabled ? \'disabled\' : null">\n <div class="d-flex">\n <div\n *ngIf="!isicondisabled"\n style="min-width: 1.5rem">\n <img\n *ngIf="image"\n [src]="image"\n class="align-baseline" />\n <i\n *ngIf="icon"\n [class]="iconstyle + \' \' + icon"></i>\n </div>\n <div class="flex-grow-1">{{ text }}</div>\n </div>\n </button>\n</li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return H}))}]}]}],H.ctorParameters=function(){return[]};var k=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacContextmenuItemCommon);k.decorators=[{type:o.Component,args:[{selector:"sac-contextmenusplitter",template:'<li><div class="dropdown-divider"></div></li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return k}))}]}]}];var T=function(){};T.decorators=[{type:o.NgModule,args:[{declarations:[S,H,k,I,w],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[S,H,k,I]}]}];var A=function(e){function n(n){var t=e.call(this,n)||this;return t.cssClassForm=!0,t}return g(n,e),n}(a.SacFormCommon);function E(e){return e}function M(e){return e}A.decorators=[{type:o.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],A.ctorParameters=function(){return[{type:l.NgForm}]},A.propDecorators={cssClassForm:[{type:o.HostBinding,args:["class.form"]}]};var L=function(e){function n(n){return e.call(this,n.get(l.NgForm))||this}return g(n,e),n}(a.SacFormCommon);L.decorators=[{type:o.Directive,args:[{selector:"[sacInheritForm]",exportAs:"sacinheritform",providers:[{provide:A,useFactory:M,deps:[[new o.SkipSelf,A]]},{provide:l.ControlContainer,useFactory:E,deps:[l.NgForm]}]}]}],L.ctorParameters=function(){return[{type:o.Injector}]};var P=function(){};P.decorators=[{type:o.NgModule,args:[{declarations:[A,L],imports:[n.CommonModule,l.FormsModule],exports:[A,L]}]}];var R=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacFormLayoutCommon);R.decorators=[{type:o.Directive,args:[{selector:"[sacFormLayout]"}]}];var z=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case a.ControlHeight.Small:return"form-control-sm";case a.ControlHeight.Large:return"form-control-lg";default:return""}},e}();z.decorators=[{type:o.Pipe,args:[{name:"toControlHeight"}]}];var _=function(){function e(){}return e.prototype.transform=function(e){var n=[];return e.labelSizeXs&&n.push("col-"+this.calcControlSize(e.labelSizeXs)),e.labelSizeSm&&n.push("col-sm-"+this.calcControlSize(e.labelSizeSm)),e.labelSizeMd&&n.push("col-md-"+this.calcControlSize(e.labelSizeMd)),e.labelSizeLg&&n.push("col-lg-"+this.calcControlSize(e.labelSizeLg)),e.labelSizeXl&&n.push("col-xl-"+this.calcControlSize(e.labelSizeXl)),e.labelSizeXxl&&n.push("col-xxl-"+this.calcControlSize(e.labelSizeXxl)),n.join(" ")},e.prototype.calcControlSize=function(e){return 12===e?12:e?12-e:12},e}();_.decorators=[{type:o.Pipe,args:[{name:"toControlWidthCss"}]}];var O=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case a.ControlHeight.Small:return"col-form-label-sm";case a.ControlHeight.Large:return"col-form-label-lg";default:return""}},e}();O.decorators=[{type:o.Pipe,args:[{name:"toLabelHeight"}]}];var G=function(){function e(){}return e.prototype.transform=function(e){var n=[];return e.labelSizeXs&&n.push("col-"+e.labelSizeXs),e.labelSizeSm&&n.push("col-sm-"+e.labelSizeSm),e.labelSizeMd&&n.push("col-md-"+e.labelSizeMd),e.labelSizeLg&&n.push("col-lg-"+e.labelSizeLg),e.labelSizeXl&&n.push("col-xl-"+e.labelSizeXl),e.labelSizeXxl&&n.push("col-xxl-"+e.labelSizeXxl),n.join(" ")},e}();G.decorators=[{type:o.Pipe,args:[{name:"toLabelWidthCss"}]}];var N=function(){};N.decorators=[{type:o.NgModule,args:[{declarations:[R,z,_,O,G],imports:[n.CommonModule],exports:[R,z,_,O,G]}]}];var D=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n.prototype.getTooltipOffset=function(){return 8},n}(a.SacTooltipCommon);D.decorators=[{type:o.Component,args:[{selector:"sac-tooltip",template:'<div\n [style.display]="inlinemode ? \'inline\' : null"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <div\n #container\n (mouseenter)="ShowTooltip()"\n (mouseleave)="HideTooltip()"\n [style.display]="inlinemode ? \'inline\' : null">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf="IsTooltipVisible()"\n #tooltip>\n <div\n [class.show]="IsTooltipContentVisible"\n class="tooltip bs-tooltip-auto fade"\n style="position: absolute"\n [style.left.px]="LeftPos"\n [style.top.px]="TopPos"\n [class.top]="GetTooltipPosition() === TooltipPosition.top"\n [class.left]="GetTooltipPosition() === TooltipPosition.left"\n [class.right]="GetTooltipPosition() === TooltipPosition.right"\n [class.bottom]="GetTooltipPosition() === TooltipPosition.bottom"\n [attr.data-popper-placement]="\n GetTooltipPosition() == TooltipPosition.right\n ? \'right\'\n : GetTooltipPosition() == TooltipPosition.left\n ? \'left\'\n : GetTooltipPosition() == TooltipPosition.top\n ? \'top\'\n : GetTooltipPosition() == TooltipPosition.bottom\n ? \'bottom\'\n : null\n ">\n <div\n class="tooltip-arrow"\n style="position: absolute"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft"></div>\n <div class="tooltip-inner">{{ tooltiptext }}</div>\n </div>\n </div>\n</div>\n'}]}],D.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:o.ElementRef}]};var F=function(){};F.decorators=[{type:o.NgModule,args:[{declarations:[D],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[D]}]}];var V=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(a.SacDropzoneMultipleCommon);V.decorators=[{type:o.Component,args:[{selector:"sac-dropzonemultiple",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="dropzone d-flex justify-content-center position-relative"\n (drop)="dropHandler($event)"\n (dragover)="onDragOver($event)"\n (dragleave)="onDragLeave($event)"\n [class.active]="active"\n [style.min-height]="uploadheight"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div\n class="content d-flex justify-content-center"\n *ngIf="uploads.length === 0">\n <div class="align-self-center text-center">\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n <div\n class="content d-flex justify-content-center align-items-center w-50 my-3"\n *ngIf="uploads.length > 0">\n <div class="flex-fill progress-container">\n <div\n class="dropzone-uploadstates"\n [class.mt-1]="i > 0"\n *ngFor="let file of uploads; let i = index">\n <div\n class="input-group upload-component upload-component-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div class="form-control upload-progress border-secondary">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <a\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </a>\n </div>\n </div>\n </div>\n </div>\n <input\n #files\n multiple\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n [disabled]="HasQueueItem()" />\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:V},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return V}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.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%;opacity:0;position:absolute;width:100%}"]}]}],V.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var U=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(a.SacDropzoneSingleCommon);U.decorators=[{type:o.Component,args:[{selector:"sac-dropzonesingle",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="dropzone d-flex justify-content-center position-relative"\n (drop)="dropHandler($event)"\n (dragover)="onDragOver($event)"\n (dragleave)="onDragLeave($event)"\n [style.min-height]="uploadheight"\n [class.active]="active"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div\n class="content d-flex justify-content-center position-relative"\n *ngIf="uploads.length === 0">\n <div class="align-self-center text-center">\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n <div\n class="content d-flex justify-content-center align-items-center w-50 my-3"\n *ngIf="uploads.length > 0">\n <div class="flex-fill progress-container">\n <div\n class="dropzone-uploadstates"\n *ngFor="let file of uploads">\n <div\n class="input-group upload-component upload-component-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div class="form-control upload-progress border-secondary">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <a\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </a>\n </div>\n </div>\n </div>\n </div>\n <input\n #files\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n [disabled]="HasQueueItem()" />\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:U},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return U}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{bottom:0;left:0;position:relative;right:0;top:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.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%;opacity:0;position:absolute;width:100%}"]}]}],U.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var j=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacUploadSingleCommon);j.decorators=[{type:o.Component,args:[{selector:"sac-upload",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group upload-component upload-single"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n \x3c!-- image-preview-input --\x3e\n <div\n class="btn upload-input custom-file"\n [class.disabled]="HasQueueItem()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <i\n class="pe-2"\n [ngClass]="IconBrowse"></i>\n <span class="upload-browse">{{ buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async) }}</span>\n <input\n type="file"\n id="{{ name }}_uploadinput"\n class="custom-file-input"\n #files\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n multiple\n [disabled]="HasQueueItem()" />\n </div>\n <div\n class="form-control upload-progress"\n [ngClass]="[componentHeight | toControlHeight]"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="Progress() === 100"\n role="progressbar"\n [attr.aria-valuenow]="Progress()"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="Progress()">\n <span class="progress-text text-dark">{{ Filename() | async }}</span>\n </div>\n </div>\n </div>\n\n <button\n class="btn"\n (click)="cancelAll()"\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\n class="btn"\n (click)="pauseAll()"\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && IsPaused()"\n class="btn"\n (click)="uploadAll()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="uploadAll()"\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:j},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return j}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity: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}"]}]}],j.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var B=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacUploadMultipleCommon);B.decorators=[{type:o.Component,args:[{selector:"sac-uploadmultiple",template:'<div\n id="{{ name }}"\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}_uploadinput"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div class="upload-component">\n <div class="row">\n <div class="col-12">\n <div\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <div\n class="btn-group"\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\n [class.btn-group-lg]="componentHeight === ControlHeight.Large"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\n <div\n class="btn upload-input custom-file"\n [class.disabled]="maxfiles > 0 && uploads.length >= maxfiles"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <i\n [ngClass]="IconBrowse"\n class="pe-2"></i>\n <span class="upload-browse">{{\n buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async)\n }}</span>\n <input\n id="{{ name }}_uploadinput"\n type="file"\n class="custom-file-input"\n #files\n (click)="files.value = \'\'"\n (uploadxState)="onUpload($event)"\n multiple\n [disabled]="maxfiles > 0 && uploads.length >= maxfiles" />\n </div>\n\n <div\n class="btn-group"\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\n [class.btn-group-lg]="componentHeight === ControlHeight.Large">\n \x3c!-- image-preview-clear button --\x3e\n <button\n class="btn"\n (click)="cancelAll()"\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\n class="btn"\n (click)="pauseAll()"\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && IsPaused() === true"\n class="btn"\n (click)="uploadAll()"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="uploadAll()"\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngFor="let file of uploads"\n style="margin-top: 5px">\n <div\n class="input-group upload-component upload-multiple"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <div\n class="form-control upload-progress"\n [class.is-invalid]="invalid && (dirty || touched)">\n <div class="progress">\n <div\n class="progress-bar"\n [class.progress-bar-success]="file.progress === 100"\n role="progressbar"\n [attr.aria-valuenow]="file.progress"\n aria-valuemin="0"\n aria-valuemax="100"\n [style.width.%]="file.progress">\n <span class="progress-text text-dark">{{ file.name }}</span>\n </div>\n </div>\n </div>\n\n <button\n class="btn"\n (click)="cancel(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconDelete"></span>\n </button>\n <button\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== \'paused\')"\n class="btn"\n (click)="pause(file.uploadId)"\n [attr.disabled]="file.status !== \'uploading\' ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconPause"></span>\n </button>\n <button\n *ngIf="autoupload && enablepause && file.status === \'paused\'"\n class="btn"\n (click)="upload(file.uploadId)"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span [class]="IconContinue"></span>\n </button>\n <button\n *ngIf="autoupload === false"\n class="btn text-nowrap"\n (click)="upload(file.uploadId)"\n [attr.disabled]="file.status !== \'added\' && file.status !== \'paused\' ? \'disabled\' : null"\n [class.btn-secondary]="!(invalid && (dirty || touched))"\n [class.btn-danger]="invalid && (dirty || touched)">\n <span\n [ngClass]="IconUpload"\n class="pe-2"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:B},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return B}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity: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}"]}]}],B.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.NgZone}]};var W=function(){};W.decorators=[{type:o.NgModule,args:[{declarations:[j,B,U,V],imports:[n.CommonModule,l.FormsModule,N,F,a.SACCommonUtliltiesModule],exports:[j,B,U,V]}]}];var q=function(e){function n(n,t,o){var l=e.call(this,n,t)||this;return l.confirmService=o,l}return g(n,e),n.prototype.confirmDeleteFile=function(e){var n=this;return new i.Observable((function(e){i.forkJoin({title:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete),message:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete)}).subscribe((function(t){n.confirmService.ConfirmMessage(t.title,t.message).subscribe((function(n){"yes"===n?e.next(!0):e.next(!1),e.complete()}))}))}))},n.prototype.confirmDeleteNode=function(e){var n=this;return new i.Observable((function(e){i.forkJoin({title:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete),message:n.lngResourceService.GetString(n.validationKeyService.FilebrowserConfirmTextDeleteFolder)}).subscribe((function(t){n.confirmService.ConfirmMessage(t.title,t.message).subscribe((function(n){"yes"===n?e.next(!0):e.next(!1),e.complete()}))}))}))},n.prototype.count=function(e){return new Array(e)},n.prototype.uploadedFileMoved=function(e){var n=this.uploadComponent.uploads.find((function(n){return n.documentid===e}));n&&this.uploadComponent.cancel(n.uploadId)},n}(a.SacFileBrowserCommon);q.decorators=[{type:o.Component,args:[{selector:"sac-filebrowser",template:'<div class="row">\n <div class="col-12 col-md-5 col-lg-4">\n <ul class="list-group list-group-flush">\n <ng-template\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{node: rootNode, deep: 0}"\n ></ng-template>\n </ul>\n\n <ng-template #treeItem let-node="node" let-deep="deep">\n <li\n class="list-group-item py-1 px-2 d-flex align-items-center"\n [class.list-group-item-secondary]="node === selectedNode"\n (click)="selectNode(node)"\n style="cursor: pointer"\n >\n <div class="mx-3" *ngFor="let i of count(deep)"></div>\n <div\n (click)="switchExpandNode(node);$event.stopPropagation();"\n class="me-2"\n [ngClass]="node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : \'\'))"\n ></div>\n <ng-container *ngIf="!node.IsEditMode">\n <div class="flex-grow-1">{{ node.Name }}</div>\n </ng-container>\n <ng-container *ngIf="node.IsEditMode">\n <div class="flex-grow-1" ngForm>\n <input\n name="editFolder"\n class="form-control form-control-sm"\n [ngModel]="node.Name"\n [ngModelOptions]="{updateOn: \'blur\'}"\n (ngModelChange)="renameNode(node, $event)"\n (keydown.enter)="$event.target.blur();false;"\n (blur)="renameNode(node, null)"\n (click)="$event.stopPropagation()"\n />\n </div>\n </ng-container>\n <div class="flex-shrink-0">\n <a\n *ngIf="node.Path !== \'/\' && allowfolderrename"\n class="btn btn-sm btn-link text-secondary"\n (click)="editNode(node);$event.stopPropagation();"\n >\n <i [class]="iconEdit"></i>\n </a>\n <sac-contextmenu cssclass="d-inline-block">\n <sac-contextmenubutton\n *ngIf="allowfoldercreate"\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}"\n [icon]="iconFolderNew"\n (clicked)="newNode(node)"\n ></sac-contextmenubutton>\n <sac-contextmenubutton\n *ngIf="node.Path !== \'/\' && allowfolderdelete"\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}"\n [icon]="iconDelete"\n (clicked)="deleteNode(node)"\n ></sac-contextmenubutton>\n <sac-contextmenusplitter\n *ngIf="allowfoldercreate || (node.Path !== \'/\' && allowfolderdelete)"\n ></sac-contextmenusplitter>\n <sac-contextmenubutton\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}"\n [icon]="iconRefresh"\n (clicked)="refreshNode(node)"\n ></sac-contextmenubutton>\n </sac-contextmenu>\n </div>\n </li>\n\n <ng-container *ngIf="node.IsExpanded">\n <ng-template\n *ngFor="let child of node.ChildNodes"\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{node: child, deep: deep + 1}"\n ></ng-template>\n </ng-container>\n </ng-template>\n </div>\n <div class="col-12 col-md-7 col-lg-8">\n <ng-container *ngIf="selectedNode && selectedNode.Files">\n <div *ngIf="allowfileupload" ngForm>\n <sac-dropzonemultiple\n [disablelabel]="true"\n [endpoint]="apiurl + \'/uploadregister\'"\n name="upload"\n uploadheight="5rem"\n [ngModel]="uploads"\n (ngModelChange)="uploadComplete(selectedNode,$event)"\n [allowedtypes]="allowedtypes"\n >{{\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\n | async }}</sac-dropzonemultiple\n >\n </div>\n <div class="table-responsive">\n <table class="table table-striped table-hover align-middle">\n <thead>\n <th>\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\n | async }}\n </th>\n <th>\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\n | async }}\n </th>\n <th style="width: 80px"></th>\n </thead>\n <tbody>\n <ng-container *ngIf="selectedNode.Files.length === 0">\n <tr>\n <td colspan="3">\n {{\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\n | async }}\n </td>\n </tr>\n </ng-container>\n <ng-container *ngIf="selectedNode.Files.length > 0">\n <tr\n *ngFor="let item of selectedNode.Files"\n (click)="selectFile(item)"\n [class.table-primary]="selectedFileItem === item"\n >\n <td [class.p-2]="item.IsEditMode">\n <ng-container *ngIf="!item.IsEditMode">\n {{ item.Filename }}\n </ng-container>\n <ng-container *ngIf="item.IsEditMode">\n <div>\n <input\n name="editFolder"\n class="form-control form-control-sm"\n [ngModel]="item.Filename"\n [ngModelOptions]="{updateOn: \'blur\'}"\n (ngModelChange)="renameFile(item, $event)"\n (keydown.enter)="$event.target.blur();false"\n (blur)="renameFile(item, null)"\n (click)="$event.stopPropagation();"\n />\n </div>\n </ng-container>\n </td>\n <td>{{ item.Size}}</td>\n <td class="p-2">\n <div class="btn-toolbar" role="toolbar">\n <div class="btn-group ml-auto" role="group">\n <a\n *ngIf="allowfilerename"\n class="btn btn-sm btn-link text-secondary"\n (click)="editFile(item);$event.stopPropagation();"\n ><i [class]="iconEdit"></i\n ></a>\n </div>\n <div class="btn-group" role="group">\n <a\n *ngIf="allowfiledelete"\n class="btn btn-sm btn-link text-secondary"\n (click)="deleteFile(item);$event.stopPropagation();"\n ><i [class]="iconDelete"></i\n ></a>\n </div>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </ng-container>\n </div>\n</div>\n',providers:[y]}]}],q.ctorParameters=function(){return[{type:t.HttpClient},{type:o.Injector},{type:y}]},q.propDecorators={uploadComponent:[{type:o.ViewChild,args:[V,{static:!1}]}]};var $=function(){};$.decorators=[{type:o.NgModule,args:[{declarations:[q],imports:[n.CommonModule,t.HttpClientModule,C,T,W,P,l.FormsModule],exports:[q],bootstrap:[q]}]}];var K=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacCheckboxCommon);K.decorators=[{type:o.Component,args:[{selector:"sac-checkbox",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row"\n [class.g-0]="disablelabel"\n [class.mb-3]="!stacked">\n <div\n class="col-12"\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\']">\n <label\n *ngIf="!disablelabel && !stacked"\n for="{{ name }}"\n class="col-form-label d-flex"\n [ngClass]="componentHeight | toLabelHeight">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext"\n >{{ label }}</div\n >\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n </div>\n <div\n class="align-self-center col-12"\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div\n class="form-check"\n [class.form-switch]="checkboxstyle === \'switch\'"\n [attr.role]="checkboxstyle === \'switch\' ? \'switch\' : null"\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-lg]="componentHeight === ControlHeight.Large">\n <input\n class="form-check-input"\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\n id="{{ name }}"\n name="{{ name }}"\n type="checkbox"\n [checked]="value"\n (blur)="onTouch()"\n (change)="setValue($event.target.checked)"\n [disabled]="isdisabled" />\n <label\n for="{{ name }}"\n class="form-check-label"\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\n <ng-container *ngIf="checkboxtext">{{ checkboxtext }}</ng-container>\n </label>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:K},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return K})),multi:!0}],styles:[".form-check-sm{font-size:.875em}.form-check-lg{font-size:1.25em}"]}]}],K.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var X=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacRadiobuttonsCommon);X.decorators=[{type:o.Component,args:[{selector:"sac-radiobuttons",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <div\n *ngIf="disablelabel === false"\n class="col-12 pt-0"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\']">\n <label\n class="col-form-label d-flex"\n [ngClass]="componentHeight | toLabelHeight"\n *ngIf="!disablelabel">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext"\n >{{ label }}</div\n >\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n </div>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.pt-1]="componentHeight === ControlHeight.Small"\n [class.pt-2]="componentHeight !== ControlHeight.Small">\n <ng-content></ng-content>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text"\n >{{ helptext }}</div\n >\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,useExisting:o.forwardRef((function(){return X})),multi:!0},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return X})),multi:!0}]}]}],X.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Q=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacRadiobuttonCommon);Q.decorators=[{type:o.Component,args:[{selector:"sac-radiobutton",template:'<div\n class="form-check"\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-lg]="componentHeight === ControlHeight.Large"\n *ngIf="hidden === false">\n <input\n id="{{ getName }}_{{ getIndex }}"\n name="{{ getName }}"\n type="radio"\n class="form-check-input"\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\n [value]="value"\n [checked]="checked"\n (change)="ChangeEvent()"\n [disabled]="isDisabled" />\n <label\n for="{{ getName }}_{{ getIndex }}"\n class="form-check-label"\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\n <ng-template *ngTemplateOutlet="labeltemplate || defaultItemLabelTemplate; context: { label: label }"> </ng-template>\n </label>\n</div>\n\n<ng-template\n #defaultItemLabelTemplate\n let-label="label">\n <ng-container>{{ label }}</ng-container>\n</ng-template>\n',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}"]}]}],Q.ctorParameters=function(){return[{type:X,decorators:[{type:o.Host}]},{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Z=function(){};Z.decorators=[{type:o.NgModule,args:[{declarations:[K,Q,X],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[K,Q,X]}]}];u.default;var J=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDateCommon);J.decorators=[{type:o.Component,args:[{selector:"sac-date",template:'<div\n class="row mb-3"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showDateSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n name="{{ name }}_picker"\n [initialvalue]="value"\n (selectdate)="dateselect($event)"\n dateselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return J}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return J}))}]}]}],J.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var Y=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacDateSelectorCommon);Y.decorators=[{type:o.Component,args:[{selector:"sac-dateselector",template:'<div\n class="calendar-selector"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <div *ngIf="dateselection">\n <div class="container">\n <div class="row">\n <div class="col text-start">\n <a (click)="monthBack()"><span [class]="iconMonthPrev"></span></a>\n </div>\n <div class="col text-center">{{ month + 1 }}/{{ year }}</div>\n <div class="col text-end">\n <a (click)="monthNext()"><span [class]="iconMonthNext"></span></a>\n </div>\n </div>\n </div>\n <div></div>\n <div class="container">\n <div class="row">\n <ng-container *ngFor="let week of dates; let i = index">\n <ng-container *ngFor="let item of week">\n <div\n class="p-2 col text-center"\n [ngStyle]="{ cursor: item.isenabled ? \'pointer\' : null }"\n [ngClass]="{ \'day-current\': item.iscurrent, \'day-selected\': item.isselected, \'day-new\': item.isnew, \'day-disabled\': !item.isenabled }"\n (click)="selectDate(item)"\n >{{ item.displaytext }}</div\n >\n </ng-container>\n <div class="w-100"></div>\n </ng-container>\n </div>\n </div>\n </div>\n <div\n class="d-flex justify-content-start"\n *ngIf="timeselection">\n <div class="p-2">\n <div class="form-group">\n <label>Stunde</label>\n <input\n type="number"\n class="form-control form-control-sm"\n [value]="getHours()"\n (input)="setHours($event.target.value)"\n min="0"\n max="23" />\n </div>\n </div>\n <div class="p-2">\n <div class="form-group">\n <label>Minute</label>\n <input\n type="number"\n class="form-control form-control-sm"\n [value]="getMinutes()"\n (input)="setMinutes($event.target.value)"\n min="0"\n max="59" />\n </div>\n </div>\n </div>\n <div class="d-flex flex-row">\n <div class="flex-grow-1 p-2">\n <button\n type="button"\n class="btn btn-secondary"\n (click)="setToday()">\n Heute\n </button>\n </div>\n <div class="p-2">\n <button\n type="button"\n class="btn btn-secondary"\n (click)="resetSelection()">\n Reset\n </button>\n </div>\n <div class="p-2">\n <button\n type="button"\n class="btn btn-primary"\n (click)="applySelection()">\n Apply\n </button>\n </div>\n </div>\n</div>\n'}]}];var ee=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDateTimeCommon);ee.decorators=[{type:o.Component,args:[{selector:"sac-datetime",template:'<div\n class="row mb-3"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showDateSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n name="{{ name }}_picker"\n [initialvalue]="value"\n (selectdate)="dateselect($event)"\n dateselection="true"\n timeselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ee}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ee}))}]}]}],ee.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var ne=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacTimeCommon);ne.decorators=[{type:o.Component,args:[{selector:"sac-time",template:'<div\n class="row mb-3"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12 position-relative"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [imask]="imaskDate"\n [attr.placeholder]="placeholder"\n [value]="valuestring"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n (blur)="onTouch()"\n (accept)="setValueString($event)"\n [disabled]="isdisabled" />\n <button\n #pickerbutton\n class="btn btn-secondary"\n type="button"\n (click)="showTimeSelector()"\n [disabled]="isdisabled">\n <i [class]="IconSelector"></i>\n </button>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n <div\n #picker\n *ngIf="_showselector">\n <div\n class="popover fade show position-absolute bs-popover-auto"\n role="tooltip"\n [attr.data-popper-placement]="\n GetPickerPosition() == TooltipPosition.right\n ? \'right\'\n : GetPickerPosition() == TooltipPosition.left\n ? \'left\'\n : GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\n ? \'top\'\n : GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\n ? \'bottom\'\n : null\n "\n [style.left.px]="posPopupLeft"\n [style.top.px]="posPopupTop">\n <div\n #pickerarrow\n class="popover-arrow position-absolute"\n style="left: unset"\n [style.top.px]="posArrowTop"\n [style.left.px]="posArrowLeft">\n </div>\n\n <div class="popover-body">\n <sac-dateselector\n name="{{ name }}_picker"\n [initialvalue]="value"\n (selectdate)="timeselect($event)"\n timeselection="true"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ne}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ne}))}]}]}],ne.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.ElementRef},{type:o.ChangeDetectorRef}]};var te=function(){};te.decorators=[{type:o.NgModule,args:[{declarations:[J,ee,ne,Y],imports:[n.CommonModule,d.IMaskModule,N,F,a.SACCommonUtliltiesModule],exports:[J,ee,ne,Y]}]}];var oe=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.ellipsis=!1,o}return g(n,e),n}(a.SacGridCommon);oe.decorators=[{type:o.Component,args:[{selector:"sac-grid",template:'<div\n class="table-responsive"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <table\n class="table table-striped table-hover"\n id="{{ name }}">\n <thead class="thead-light">\n <tr>\n <ng-container *ngTemplateOutlet="template; context: { row: {}, type: \'header\' }"> </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor="let item of value; let i = index">\n <tr>\n <ng-container *ngTemplateOutlet="template; context: { row: item, type: \'body\' }"> </ng-container>\n </tr>\n </ng-container>\n <tr\n *ngIf="value === undefined || value === null || value.length === 0"\n data-e2e="emptyrow">\n <td [attr.colspan]="ColumnCount">{{ emptytext }}</td>\n </tr>\n </tbody>\n <tfoot *ngIf="pagerdata">\n <tr *ngIf="pagerdata">\n <td [attr.colspan]="ColumnCount">\n <div class="container-fluid">\n <sac-paging\n name="{{ name }}Paging"\n (paging)="pageChange($event)"\n [pagerdata]="pagerdata"\n [pagesizes]="pagesizes"\n [pagingtext]="pagingtext"\n [pagesizetext]="pagesizetext"\n [pagesizedisabled]="pagesizedisabled"></sac-paging>\n </div>\n </td>\n </tr>\n </tfoot>\n </table>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:oe},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return oe}))}]}]}],oe.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:o.Injector}]},oe.propDecorators={template:[{type:o.ContentChild,args:[o.TemplateRef,{static:!1}]}]};var le=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacGridButtonCommon);le.decorators=[{type:o.Component,args:[{selector:"sac-gridbutton",template:'<a\n (click)="callaction()"\n [attr.data-e2e]="name"\n style="padding-right: 5px"\n [style.cursor]="!isdisabled ? \'pointer\' : null"\n [class.disabled]="isdisabled"\n [attr.disabled]="isdisabled ? \'disabled\' : null"\n ><span class="{{ getIconClass() }}"></span\n></a>\n'}]}],le.ctorParameters=function(){return[{type:o.Injector}]};var ae=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacGridColumnCommon);ae.decorators=[{type:o.Component,args:[{selector:"sac-gridcolumn",template:'<th\n #headerElement\n scope="col"\n *ngIf="IsHeader()"\n [style.width]="width"\n (click)="SortByColumn()"\n [class.text-right]="alignment === \'right\'"\n [class.text-center]="alignment === \'center\'">\n <span>{{ header }}</span>\n <span\n class="ps-2"\n [class]="IconSortUp"\n *ngIf="IsSortedColumn() && GetSortDirection() === \'asc\'"></span>\n <span\n class="ps-2"\n [class]="IconSortDown"\n *ngIf="IsSortedColumn() && GetSortDirection() === \'desc\'"></span>\n</th>\n<td\n #bodyElement\n scope="col"\n *ngIf="IsBody()"\n [style.width]="width"\n [class.ellipsis]="IsEllipsis()"\n (click)="ColumnClick()"\n [style.max-width]="IsEllipsis() ? width : null"\n [style.overflow]="IsEllipsis() ? \'hidden\' : null"\n [style.text-overflow]="IsEllipsis() ? \'ellipsis\' : null"\n [style.white-space]="IsEllipsis() ? \'nowrap\' : null"\n [class.text-right]="alignment === \'right\'"\n [class.text-center]="alignment === \'center\'">\n <span\n [attr.title]="IsEllipsis() ? value : null"\n [innerHtml]="value">\n </span>\n</td>\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:o.forwardRef((function(){return ae}))}]}]}],ae.ctorParameters=function(){return[{type:oe},{type:o.Injector},{type:o.ElementRef}]};var ie=function(e){function n(n,t,o){var l=e.call(this,n,t,o)||this;return l.width="60px",l}return g(n,e),n}(a.SacGridColumnActionCommon);ie.decorators=[{type:o.Component,args:[{selector:"sac-gridcolumnaction",template:'<th\n #headerElement\n scope="col"\n *ngIf="IsHeader()"\n [style.width]="width"\n [class.text-right]="alignment === \'right\'"\n [class.text-center]="alignment === \'center\'">\n <span></span>\n</th>\n<td\n #bodyElement\n scope="col"\n class="px-2"\n [class.text-right]="alignment === \'right\'"\n [class.text-center]="alignment === \'center\'"\n *ngIf="IsBody()">\n <ng-content></ng-content>\n</td>\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:o.forwardRef((function(){return ie}))}]}]}],ie.ctorParameters=function(){return[{type:oe},{type:o.Injector},{type:o.ElementRef}]};var se=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacGridImageCommon);se.decorators=[{type:o.Component,args:[{selector:"sac-gridimage",template:'<span><span [ngClass]="iconstyle"></span></span>\n'}]}];var re=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacPagingCommon);re.decorators=[{type:o.Component,args:[{selector:"sac-paging",template:'<div\n class="d-flex justify-content-between align-items-center flex-wrap"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n id="{{ name }}">\n <div\n class="col-pagination order-2 order-md-1"\n id="{{ name }}_pages">\n <ul class="pagination mb-4 mb-md-0">\n <li\n class="page-item"\n [ngClass]="{ \'aspNetDisabled disabled\': activePageIndex === firstPageIndex }">\n <a\n class="page-link"\n (click)="firstPage()"\n >«</a\n >\n </li>\n <li\n class="page-item"\n *ngFor="let page of paginators; let i = index"\n [ngClass]="{ active: page === activePageIndex }">\n <a\n class="page-link"\n (click)="changePage(page)"\n >{{ page + 1 }}</a\n >\n </li>\n <li\n class="page-item"\n [ngClass]="{ \'aspNetDisabled disabled\': activePageIndex === lastPageIndex }">\n <a\n class="page-link"\n (click)="lastPage()"\n >»</a\n >\n </li>\n </ul>\n </div>\n <div class="col-summary order-1 order-md-2">\n <div class="mb-4 mb-md-0 mr-4 mb-md-0">{{ PagingText | async }}</div>\n </div>\n <div\n class="col-pagesize order-3"\n *ngIf="!pagesizedisabled">\n <div\n class="d-flex align-items-center"\n id="{{ name }}_size">\n <select\n class="form-select form-select-sm"\n style="width: 85px"\n id="{{ name }}_pagesize"\n [ngModel]="pageSize"\n (ngModelChange)="changePageSize($event)">\n <option\n [ngValue]="size"\n *ngFor="let size of getPageSizes">\n {{ size }}\n </option>\n </select>\n <div class="ms-2">{{ PageSizeText | async }}</div>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:re},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return re}))}]}]}],re.ctorParameters=function(){return[{type:o.Injector}]};var de=function(){};de.decorators=[{type:o.NgModule,args:[{declarations:[oe,ae,ie,re,le,se],imports:[n.CommonModule,l.FormsModule,a.SACCommonUtliltiesModule],exports:[oe,ae,ie,re,le,se]}]}];var ce=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputCommon);ce.decorators=[{type:o.Component,args:[{selector:"sac-input",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n [readonly]="readonly"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:ce},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ce}))}]}]}],ce.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var pe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputAreaCommon);pe.decorators=[{type:o.Component,args:[{selector:"sac-inputarea",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <textarea\n id="{{ name }}"\n name="{{ name }}"\n type=""\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.rows]="rows"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [attr.maxlength]="maxtextlength"\n [readonly]="readonly"></textarea>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return pe}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return pe}))}]}]}],pe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ue=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputCurrencyCommon);ue.decorators=[{type:o.Component,args:[{selector:"sac-inputcurrency",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group input-group-sm"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [readonly]="readonly"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n <span class="input-group-text">{{ currency }}</span>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ue}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ue}))}]}]}],ue.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var me=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputDecimalCommon);me.decorators=[{type:o.Component,args:[{selector:"sac-inputdecimal",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n [readonly]="readonly"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return me}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return me}))}]}]}],me.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ge=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputEmailCommon);ge.decorators=[{type:o.Component,args:[{selector:"sac-inputemail",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\n <span class="input-group-text">@</span>\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="email"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.placeholder]="placeholder"\n [attr.maxlength]="maxtextlength"\n autocomplete="email"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:o.forwardRef((function(){return ge}))},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ge}))}]}]}],ge.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputIntegerCommon);be.decorators=[{type:o.Component,args:[{selector:"sac-inputinteger",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="decimal"\n class="form-control"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n [attr.placeholder]="placeholder"\n (keypress)="onKeyPress($event)"\n [disabled]="isdisabled"\n [readonly]="readonly"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]" />\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:be},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return be}))}]}]}],be.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var ve=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputPasswordCommon);ve.decorators=[{type:o.Component,args:[{selector:"sac-inputpassword",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n [class.input-group]="passwordeye"\n [class.has-validation]="passwordeye && isinlineerrorenabled && invalid && (dirty || touched)">\n <input\n id="{{ name }}"\n name="{{ name }}"\n [type]="passwordeyevisible ? \'text\' : \'password\'"\n class="form-control"\n [attr.placeholder]="placeholder"\n [value]="value"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.maxlength]="maxtextlength"\n autocomplete="new-password"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <a\n *ngIf="passwordeye"\n class="btn btn-outline-secondary"\n (click)="onTogglePasswordEye()"\n ><span [ngClass]="passwordeyevisible ? PasswordEyeVisibleIcon : PasswordEyeHiddenIcon"></span>\n </a>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:ve},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ve}))}]}]}],ve.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var fe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacInputSearchCommon);fe.decorators=[{type:o.Component,args:[{selector:"sac-inputsearch",template:'<div\n class="row mb-3"\n [class.g-0]="disablelabel"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <label\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n inputmode="search"\n class="form-control"\n [value]="value"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="setValue($event.target.value)"\n (keypress)="onKeyPress($event)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"\n [readonly]="readonly" />\n <button\n type="button"\n class="btn btn-secondary"\n id="{{ name }}_search"\n (click)="searchClick()">\n <i\n *ngIf="buttonmode === \'icon\' || buttonmode === \'mixed\'"\n [class]="iconname"\n [class.me-2]="buttonmode === \'mixed\'"></i>\n <ng-container *ngIf="buttonmode === \'text\' || buttonmode === \'mixed\'">{{ buttontext }}</ng-container>\n </button>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:fe},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return fe}))}]}]}],fe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var he=function(){};he.decorators=[{type:o.NgModule,args:[{declarations:[ce,pe,ue,me,ge,be,ve,fe],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[ce,pe,ue,me,ge,be,ve,fe]}]}];var xe=new o.InjectionToken("SacDropdownToken"),ye=new o.InjectionToken("SacListboxToken"),Ce=function(e){function n(n,t,o,l){return e.call(this,n,t,o,l)||this}return g(n,e),n}(a.SacDropdownCommon);Ce.decorators=[{type:o.Component,args:[{selector:"sac-dropdown",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <select\n #dropdownitem\n id="{{ name }}"\n name="{{ name }}"\n class="form-select"\n [class.form-select-sm]="componentHeight === ControlHeight.Small"\n [class.form-select-lg]="componentHeight === ControlHeight.Large"\n [ngClass]="{ \'is-invalid\': invalid && (dirty || touched) }"\n (blur)="onTouch()"\n (change)="setValue(dropdownitem.value)"\n [disabled]="isdisabled">\n <option\n *ngIf="emptylabel !== \'\'"\n [ngValue]="emptyvalue"\n >{{ emptylabel }}</option\n >\n\n <ng-content></ng-content>\n\n <ng-container *ngIf="groupitems === \'\'">\n <option\n *ngFor="let item of options"\n [ngValue]="optionvalue ? item[optionvalue] : item"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\n </option>\n </ng-container>\n\n <ng-container *ngIf="groupitems !== \'\'">\n <optgroup\n *ngFor="let group of options"\n [attr.label]="group[grouplabel]">\n <option\n *ngFor="let item of group[groupitems]"\n [ngValue]="optionvalue ? item[optionvalue] : item"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\n </option>\n </optgroup>\n </ng-container>\n </select>\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n\n<ng-template\n #defaultItemLabelTemplate\n let-label="label"\n >{{ label }}</ng-template\n>\n',providers:[{provide:xe,useExisting:o.forwardRef((function(){return Ce}))},{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ce},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Ce}))}]}]}],Ce.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.Renderer2},{type:o.ElementRef}]};var Se=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacDropdownOptionCommon);Se.decorators=[{type:o.Directive,args:[{selector:"[sacOption],option"}]}],Se.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[xe]}]}]};var Ie=function(){};Ie.decorators=[{type:o.NgModule,args:[{declarations:[Ce,Se],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[Ce,Se]}]}];var we=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacListboxCommon);we.decorators=[{type:o.Component,args:[{selector:"sac-listbox",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true"\n ><span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <select\n multiple\n id="{{ name }}"\n name="{{ name }}"\n class="form-select"\n [class.form-select-sm]="componentHeight === ControlHeight.Small"\n [class.form-select-lg]="componentHeight === ControlHeight.Large"\n [size]="rowsize"\n [ngClass]="{ \'is-invalid\': invalid && (dirty || touched) }"\n (blur)="onTouch()"\n (change)="getSelectedItems($event.target)"\n [disabled]="isdisabled">\n <ng-content></ng-content>\n <ng-container *ngIf="groupitems === \'\'">\n <option\n *ngFor="let option of options"\n [value]="option[optionvalue]"\n [disabled]="optionenabled !== \'\' && option[optionenabled] === false"\n >{{ option[optionlabel] }}</option\n >\n </ng-container>\n <ng-container *ngIf="groupitems !== \'\'">\n <optgroup\n *ngFor="let option of options"\n [attr.label]="option[grouplabel]">\n <option\n *ngFor="let item of option[groupitems]"\n [value]="item[optionvalue]"\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false"\n >{{ item[optionlabel] }}</option\n >\n </optgroup>\n </ng-container>\n </select>\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:ye,useExisting:we},{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:we},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return we}))}]}]}],we.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var He=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n}(a.SacListboxOptionCommon);He.decorators=[{type:o.Directive,args:[{selector:"[sacOption],option"}]}],He.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[ye]}]}]};var ke=function(){};ke.decorators=[{type:o.NgModule,args:[{declarations:[we,He],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[we,He]}]}];var Te=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.IconType=a.IconType,o}return g(n,e),n}(a.SacMultilanguageInputCommon);Te.decorators=[{type:o.Component,args:[{selector:"sac-multilanguageinput",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\n placement="bottom-right"\n sac-multilanguagemenu\n [buttontemplate]="menuButton"\n [inputtemplate]="menuInput"\n [validationtemplate]="validationMessage"\n #contextmenu>\n <ng-template #menuInput>\n <input\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="LanguageValue"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n (input)="SetLanguageValue($event.target.value)"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled" />\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]="name + \'_dropdownitem\'"\n type="button"\n class="btn dropdown-toggle"\n (click)="contextmenu.toggle()"\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\n <img\n src="{{ SelectedIcon }}"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.Image" />\n <span\n [ngClass]="SelectedIcon"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.CssSprite"></span>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor="let sprache of Languages">\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.Image"\n text="{{ sprache.Text }}"\n image="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.CssSprite"\n text="{{ sprache.Text }}"\n icon="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class="row">\n <div class="col text-right"></div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Te},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Te}))}]}]}],Te.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Ae=function(e){function n(n,t){var o=e.call(this,n,t)||this;return o.IconType=a.IconType,o}return g(n,e),n}(a.SacMultilanguageInputAreaCommon);Ae.decorators=[{type:o.Component,args:[{selector:"sac-multilanguageinputarea",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="input-group"\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\n placement="bottom-right"\n sac-multilanguagemenu\n [buttontemplate]="menuButton"\n [inputtemplate]="menuInput"\n [validationtemplate]="validationMessage"\n #contextmenu>\n <ng-template #menuInput>\n <textarea\n id="{{ name }}"\n name="{{ name }}"\n type="text"\n class="form-control"\n [value]="LanguageValue"\n [attr.placeholder]="placeholder"\n (blur)="onTouch()"\n style="height: auto"\n (input)="SetLanguageValue($event.target.value)"\n [attr.rows]="rows"\n [attr.maxlength]="maxtextlength"\n [class.is-invalid]="invalid && (dirty || touched)"\n [ngClass]="[componentHeight | toControlHeight]"\n [disabled]="isdisabled"></textarea>\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]="name + \'_dropdownitem\'"\n type="button"\n class="btn dropdown-toggle"\n (click)="contextmenu.toggle()"\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\n <img\n src="{{ SelectedIcon }}"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.Image" />\n <i\n [ngClass]="SelectedIcon"\n class="align-baseline mr-1 ml-1"\n *ngIf="SelectedIconType === IconType.CssSprite"></i>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor="let sprache of Languages">\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.Image"\n text="{{ sprache.Text }}"\n image="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf="sprache.IconType === IconType.CssSprite"\n text="{{ sprache.Text }}"\n icon="{{ sprache.Icon }}"\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class="row">\n <div class="col text-right"></div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ae},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return Ae}))}]}]}],Ae.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Ee=function(e){function n(n,t,o,l,a){return e.call(this,n,t,o,l,a)||this}return g(n,e),n}(a.SacContextmenuCommon);Ee.decorators=[{type:o.Component,args:[{selector:"[sac-multilanguagemenu]",template:'<ng-container [ngTemplateOutlet]="inputtemplate || defaultInputTemplate"></ng-container>\n<ng-container [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"></ng-container>\n<ng-container [ngTemplateOutlet]="validationtemplate || defaultValidationTemplate"></ng-container>\n\n<ul\n class="dropdown-menu dropdown-menu-right"\n sacMultilanguageMenuContainer\n [class.show]="isopen">\n <ng-content></ng-content>\n</ul>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacMultilanguageMenuAnchor\n class="btn btn-secondary dropdown-toggle"\n type="button"\n (click)="toggle()"></button>\n</ng-template>\n\n<ng-template #defaultInputTemplate>\n <input\n type="text"\n class="form-control" />\n</ng-template>\n\n<ng-template #defaultValidationTemplate></ng-template>\n',providers:[{provide:a.SacContextmenuCommon,useExisting:o.forwardRef((function(){return Ee}))}]}]}],Ee.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[n.DOCUMENT]}]},{type:o.NgZone},{type:o.ElementRef},{type:o.Renderer2},{type:o.Injector}]},Ee.propDecorators={inputtemplate:[{type:o.Input}],validationtemplate:[{type:o.Input}]};var Me=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextmenuAnchorCommon);Me.decorators=[{type:o.Directive,args:[{selector:"[sacMultilanguageMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:o.forwardRef((function(){return Me}))}]}]}],Me.ctorParameters=function(){return[{type:o.ElementRef}]};var Le=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(a.SacContextMenuContrainerCommon);Le.decorators=[{type:o.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:o.forwardRef((function(){return Le}))}]}]}],Le.ctorParameters=function(){return[{type:o.ElementRef}]};var Pe=function(e){function n(){return e.call(this)||this}return g(n,e),n}(a.SacContextmenuItemButtonCommon);Pe.decorators=[{type:o.Component,args:[{selector:"sac-multilanguagemenubutton",template:'<li>\n <button\n type="button"\n class="dropdown-item"\n (click)="callaction($event)"\n [class.disabled]="isdisabled"\n [ngClass]="cssclass"\n [attr.disabled]="isdisabled ? \'disabled\' : null">\n <div class="d-flex">\n <div\n *ngIf="!isicondisabled"\n style="min-width: 1.5rem">\n <img\n *ngIf="image"\n [src]="image"\n class="align-baseline" />\n <i\n *ngIf="icon"\n [class]="iconstyle + \' \' + icon"></i>\n </div>\n <div class="flex-grow-1">{{ text }}</div>\n </div>\n </button>\n</li>\n',providers:[{provide:a.SacContextmenuItemCommon,useExisting:o.forwardRef((function(){return Pe}))}]}]}],Pe.ctorParameters=function(){return[]};var Re=function(){};Re.decorators=[{type:o.NgModule,args:[{declarations:[Te,Ae,Ee,Me,Le,Pe],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[Te,Ae]}]}];var ze=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacStaticFormContainerCommon);ze.decorators=[{type:o.Component,args:[{selector:"sac-staticformcontainer",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel"\n [class.was-validated]="isinlineerrorenabled && isinvalid && errormessage">\n <ng-content></ng-content>\n <label\n for="{{ name }}"\n class="form-label-adaptive form-label-fixed"\n [ngClass]="{ required: isrequired }"\n *ngIf="isAdaptiveLabel && !disablelabel"\n >{{ label }}</label\n >\n <div\n class="invalid-feedback"\n *ngIf="isinlineerrorenabled && isinvalid && errormessage">\n {{ errormessage }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:ze},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return ze}))}]}]}],ze.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var _e=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacStaticLabelCommon);_e.decorators=[{type:o.Component,args:[{selector:"sac-staticlabel",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n *ngIf="disablelabel === false && !isAdaptiveLabel"\n id="{{ name }}_label"\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true"\n ><span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div>\n <div\n [id]="name"\n class="form-control-plaintext"\n [ngClass]="[componentHeight | toControlHeight]"\n [innerHTML]="value"></div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:_e},{provide:l.NG_VALIDATORS,multi:!0,useExisting:o.forwardRef((function(){return _e}))}]}]}],_e.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var Oe=function(){};Oe.decorators=[{type:o.NgModule,args:[{declarations:[_e,ze],imports:[n.CommonModule,N,F,a.SACCommonUtliltiesModule],exports:[_e,ze]}]}];var Ge=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacTabItemCommon);Ge.decorators=[{type:o.Component,args:[{selector:"sac-tabitem",template:'<div\n [id]="id"\n [hidden]="unloadwhenhidden === false && active === false"\n *ngIf="(unloadwhenhidden === true && active === true) || unloadwhenhidden === false"\n class="tab-pane">\n <ng-template [ngTemplateOutlet]="templateRef"></ng-template>\n</div>\n'}]}];var Ne=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.tabItems=function(){return this._tabItems.toArray()},n}(a.SacTabCommon);Ne.decorators=[{type:o.Component,args:[{selector:"sac-tab",template:'\x3c!-- Nav tabs --\x3e\n<ul\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="nav nav-tabs"\n role="tablist">\n <li\n class="nav-item"\n *ngFor="let item of _tabItems">\n <a\n [id]="GetTabItemButtonId(item.id)"\n role="tab"\n class="nav-link"\n data-toggle="tab"\n [ngClass]="{ active: item.active, disabled: item.disabled }"\n (click)="selectTab(item)"\n [ngStyle]="{ cursor: item.disabled ? \'not-allowed\' : \'pointer\' }"\n >{{ item.label }}</a\n >\n </li>\n</ul>\n\n\x3c!-- Tab panes --\x3e\n<div class="tab-content pl-3 pt-2">\n <ng-content></ng-content>\n</div>\n'}]}],Ne.propDecorators={_tabItems:[{type:o.ContentChildren,args:[Ge]}]};var De=function(){};De.decorators=[{type:o.NgModule,args:[{declarations:[Ne,Ge],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[Ne,Ge]}]}];var Fe=function(e){function n(n,t,o){return e.call(this,n,t,o)||this}return g(n,e),n.prototype.overwriteDefaultSettings=function(){return{}},n}(a.SacTinyMceCommon);Fe.decorators=[{type:o.Component,args:[{selector:"sac-tinymce",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <editor\n [id]="name + \'_tinymce\'"\n [init]="_config"\n [initialValue]="value"\n ngModel\n [ngModelOptions]="{ standalone: true }"\n (ngModelChange)="setValue($event)"\n (onSaveContent)="save($event.event.content)"\n (onBlur)="blur()"\n [disabled]="disabled"\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"></editor>\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n\n <sac-dialog\n *ngIf="selectdialogvisible"\n [allowesc]="false"\n [backdrop]="true"\n [(isvisible)]="selectdialogvisible"\n title="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}"\n size="large"\n height="500px">\n <ng-container dialogbody>\n <sac-filebrowser\n [apiurl]="filebrowserapiurl"\n (file)="selectDialogSettings.value = $event"\n [allowfoldercreate]="allowfoldercreate"\n [allowfolderrename]="allowfolderrename"\n [allowfolderdelete]="allowfolderdelete"\n [allowfileupload]="allowfileupload"\n [allowfilerename]="allowfilerename"\n [allowfiledelete]="allowfiledelete"\n [selectedfile]="selectDialogSettings.value"\n [allowedtypes]="selectDialogSettings.allowedtypes"></sac-filebrowser>\n </ng-container>\n <ng-container dialogfooter>\n <sac-button\n role="primary"\n [name]="name + \'_modalOk\'"\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}"\n (clicked)="setSelectDialogResult()"></sac-button>\n <sac-button\n [name]="name + \'_modalClose\'"\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}"\n (clicked)="closeSelectDialog()"></sac-button>\n </ng-container>\n </sac-dialog>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Fe},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return Fe})),multi:!0}],styles:[".is-invalid{border:1px solid var(--bs-form-invalid-border-color)}::ng-deep .tox.tox-tinymce-aux{z-index:900}::ng-deep .tox.tox-tinymce-aux .tox-dialog-wrap{z-index:800}"]}]}],Fe.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector},{type:o.NgZone}]};var Ve=function(){};Ve.decorators=[{type:o.NgModule,args:[{declarations:[Fe],imports:[n.CommonModule,l.FormsModule,c.EditorModule,v,h,$,N,F,a.SACCommonUtliltiesModule],exports:[Fe]}]}];var Ue=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacTreeviewCommon);Ue.decorators=[{type:o.Component,args:[{selector:"sac-treeview",template:'<div\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier"\n class="row mb-3"\n [class.g-0]="disablelabel">\n <label\n for="{{ name }}"\n class="col-12 col-form-label d-flex"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'visually-hidden\', componentHeight | toLabelHeight]"\n [class.required]="isrequired">\n <div\n class="text flex-grow-0"\n [class.flex-sm-grow-1]="splitlabelandhelptext">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf="helptextmode === \'tooltip\' && helptext"\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ms-1">\n </span>\n </sac-tooltip>\n </label>\n <div\n class="col-12"\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\n <div [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <div\n class="w-100"\n [style.min-width]="helptextmode === \'tooltip\' && helptext && disablelabel ? 0 : null"\n [class.me-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\n <ul\n class="list-group list-group-flush"\n id="{{ name }}"\n [class.is-invalid]="invalid && (dirty || touched)"\n [class.border]="invalid && (dirty || touched)"\n [class.border-danger]="invalid && (dirty || touched)">\n <ng-container *ngFor="let node of data">\n <ng-template\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{ node: node, deep: 0, path: \'\', textpath: \'\' }">\n </ng-template>\n </ng-container>\n </ul>\n\n <div\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\n class="invalid-feedback">\n {{ GetErrorMessage() | async }}\n </div>\n\n <div\n *ngIf="helptextmode === \'text\' && helptext"\n class="form-text">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\n class="form-control-plaintext align-self-top ms-2 me-1 w-auto"\n [ngClass]="[componentHeight | toControlHeight]">\n <sac-tooltip\n [tooltiptext]="helptext"\n [inlinemode]="true">\n <span\n [ngClass]="HelptextTooltipIcon"\n class="ml-1">\n </span>\n </sac-tooltip>\n </div>\n </div>\n </div>\n</div>\n<ng-template\n #treeItem\n let-node="node"\n let-deep="deep"\n let-path="path"\n let-textpath="textpath">\n <li\n class="list-group-item list-group-item-action py-1 px-2 d-flex align-items-center"\n [class.active]="isSelectedState(node)"\n (mouseenter)="setHoverState(node, true)"\n (mouseleave)="setHoverState(node, false)"\n style="cursor: pointer"\n attr.data-path="{{ path }}/{{ getStringField(node, attrid) }}"\n attr.data-textpath="{{ textpath }}/{{ getStringField(node, attrlabel) }}">\n <div\n class="mx-3"\n *ngFor="let i of count(deep)">\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n *ngIf="expandedstate === \'true\' || expandedstate === true"\n class="me-2"\n [ngClass]="!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : \'\'">\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n *ngIf="attricon && getStringField(node, attricon)">\n <ng-template\n [ngTemplateOutlet]="templateicon || defaultTemplateIcon"\n [ngTemplateOutletContext]="{ node: node }">\n </ng-template>\n </div>\n\n <div\n (click)="onNodeClicked(node)"\n class="flex-grow-1 py-1"\n [style.max-width.percent]="enableellipsis ? \'100\' : null"\n [style.overflow]="enableellipsis ? \'hidden\' : null"\n [style.text-overflow]="enableellipsis ? \'ellipsis\' : null"\n [style.white-space]="enableellipsis ? \'nowrap\' : null">\n <ng-template\n [ngTemplateOutlet]="templatelabel || defaultTemplateLabel"\n [ngTemplateOutletContext]="{ node: node, label: getStringField(node, attrlabel) }">\n </ng-template>\n </div>\n\n <div\n (click)="setSelectedState(node)"\n class="flex-shrink-0"\n *ngIf="!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))">\n <ng-template\n [ngTemplateOutlet]="templateaction || defaultTemplateAction"\n [ngTemplateOutletContext]="{ node: node, actionhandler: onActionClicked.bind(this) }">\n </ng-template>\n </div>\n </li>\n\n <ng-container *ngIf="isExpandedState(node)">\n <ng-template\n *ngFor="let child of getChildren(node)"\n [ngTemplateOutlet]="treeItem"\n [ngTemplateOutletContext]="{\n node: child,\n deep: deep + 1,\n path: path + \'/\' + getStringField(node, attrid),\n textpath: textpath + \'/\' + getStringField(node, attrlabel)\n }">\n </ng-template>\n </ng-container>\n</ng-template>\n<ng-template\n #defaultTemplateLabel\n let-label="label"\n let-node="node">\n <span [title]="label">{{ label }}</span>\n</ng-template>\n\n<ng-template\n #defaultTemplateIcon\n let-node="node">\n <div\n class="me-2"\n [ngClass]="getStringField(node, attricon)">\n </div>\n</ng-template>\n\n<ng-template\n #defaultTemplateAction\n let-node="node"\n let-actionhandler="actionhandler">\n <a\n class="btn btn-sm btn-link text-secondary"\n (click)="actionhandler({ action: \'default\', node: node })">\n <i [class]="iconAction"></i>\n </a>\n</ng-template>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ue},{provide:l.NG_VALIDATORS,useExisting:o.forwardRef((function(){return Ue})),multi:!0}]}]}],Ue.ctorParameters=function(){return[{type:R,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var je=function(){};je.decorators=[{type:o.NgModule,args:[{declarations:[Ue],imports:[n.CommonModule,N,T,F,a.SACCommonUtliltiesModule],exports:[Ue]}]}];var Be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(a.SacValidationSummaryCommon);Be.decorators=[{type:o.Component,args:[{selector:"sac-validationsummary",template:'<div\n class="alert alert-danger"\n role="alert"\n *ngIf="hasErrors"\n [attr.data-e2e-key]="name | testingattribute : e2eidentifier">\n <ul class="mb-0">\n <li *ngFor="let error of formErrors">{{ error | async }}</li>\n </ul>\n</div>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:Be}]}]}],Be.ctorParameters=function(){return[{type:A,decorators:[{type:o.Host},{type:o.Optional}]},{type:o.Injector}]};var We=function(){};We.decorators=[{type:o.NgModule,args:[{declarations:[Be],imports:[n.CommonModule,a.SACCommonUtliltiesModule],exports:[Be]}]}];var qe=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(a.SacWizardItemCommon);qe.decorators=[{type:o.Component,args:[{selector:"sac-wizarditem",template:""}]}];var $e=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.wizardItems=function(){return this._wizardItems},n}(a.SacWizardCommon);$e.decorators=[{type:o.Component,args:[{selector:"sac-wizard",template:'<ul\n class="nav nav-wizard"\n role="tablist">\n <li\n *ngFor="let item of _wizardItems"\n class="nav-item"\n [ngClass]="{ active: item._active, disabled: item._disabled, success: item._iscomplete }"\n [ngStyle]="{ cursor: item._disabled ? \'not-allowed\' : \'pointer\' }">\n <a\n role="tab"\n (click)="selectStep(item)">\n <div class="circle">\n <span class="step"></span>\n </div>\n </a>\n <div class="info">\n <a>{{ item._label }}</a>\n </div>\n </li>\n</ul>\n',providers:[{provide:l.NG_VALUE_ACCESSOR,multi:!0,useExisting:$e}]}]}],$e.propDecorators={_wizardItems:[{type:o.ContentChildren,args:[qe]}]};var Ke=function(){};Ke.decorators=[{type:o.NgModule,args:[{declarations:[$e,qe],imports:[n.CommonModule,N,a.SACCommonUtliltiesModule],exports:[$e,qe]}]}],e.NGFORM_FACTORY=E,e.SACBootstrap5BrowserModule=$,e.SACBootstrap5ButtonModule=v,e.SACBootstrap5CheckboxModule=Z,e.SACBootstrap5ConfirmModule=C,e.SACBootstrap5ContextmenuModule=T,e.SACBootstrap5DateTimeModule=te,e.SACBootstrap5DialogModule=h,e.SACBootstrap5DropdownModule=Ie,e.SACBootstrap5FormModule=P,e.SACBootstrap5GridModule=de,e.SACBootstrap5InputModule=he,e.SACBootstrap5LayoutModule=N,e.SACBootstrap5ListModule=ke,e.SACBootstrap5MultilanguageModule=Re,e.SACBootstrap5StaticLabelModule=Oe,e.SACBootstrap5TabsModule=De,e.SACBootstrap5TinyMceModule=Ve,e.SACBootstrap5TooltipModule=F,e.SACBootstrap5TreeviewModule=je,e.SACBootstrap5UploadModule=W,e.SACBootstrap5ValidationSummaryModule=We,e.SACBootstrap5WizardModule=Ke,e.SACFORM_FACTORY=M,e.SacBrowserComponent=q,e.SacButtonComponent=b,e.SacCheckboxComponent=K,e.SacConfirmComponent=x,e.SacContextmenuAnchorDirective=I,e.SacContextmenuComponent=S,e.SacContextmenuItemButtonComponent=H,e.SacContextmenuItemSplitterComponent=k,e.SacDateComponent=J,e.SacDateSelectorComponent=Y,e.SacDateTimeComponent=ee,e.SacDialogComponent=f,e.SacDropdownComponent=Ce,e.SacDropdownOptionDirective=Se,e.SacDropzoneMultipleComponent=V,e.SacDropzoneSingleComponent=U,e.SacFormDirective=A,e.SacFormLayoutDirective=R,e.SacGridButtonComponent=le,e.SacGridColumnActionComponent=ie,e.SacGridColumnComponent=ae,e.SacGridComponent=oe,e.SacGridImageComponent=se,e.SacInheritFormDirective=L,e.SacInputAreaComponent=pe,e.SacInputComponent=ce,e.SacInputCurrencyComponent=ue,e.SacInputDecimalComponent=me,e.SacInputEmailComponent=ge,e.SacInputIntegerComponent=be,e.SacInputPasswordComponent=ve,e.SacInputSearchComponent=fe,e.SacListboxComponent=we,e.SacListboxOptionDirective=He,e.SacMultilanguageInputAreaComponent=Ae,e.SacMultilanguageInputComponent=Te,e.SacPagingComponent=re,e.SacRadiobuttonComponent=Q,e.SacRadiobuttonsComponent=X,e.SacStaticFormContainerComponent=ze,e.SacStaticLabelComponent=_e,e.SacTabComponent=Ne,e.SacTabItemComponent=Ge,e.SacTimeComponent=ne,e.SacTinyMceComponent=Fe,e.SacToControlHeightPipe=z,e.SacToControlWidthCssPipe=_,e.SacToLabelHeightPipe=O,e.SacToLabelWidthCssPipe=G,e.SacTooltipComponent=D,e.SacTreeviewComponent=Ue,e.SacUploadComponent=j,e.SacUploadMultipleComponent=B,e.SacValidationSummaryComponent=Be,e.SacWizardComponent=$e,e.SacWizardItemComponent=qe,e.ServiceConfirm=y,e.ɵa=w,e.ɵb=xe,e.ɵc=ye,e.ɵd=Ee,e.ɵe=Me,e.ɵf=Le,e.ɵg=Pe,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap5.umd.min.js.map