@simpleangularcontrols/sac-bootstrap4 10.0.0-rc.2 → 10.0.0-rc.21

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 (106) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js +376 -206
  2. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js.map +1 -1
  5. package/controls/checkbox/checkbox.d.ts +1 -1
  6. package/controls/checkbox/radiobutton.d.ts +6 -2
  7. package/controls/contextmenu/contextmenuitembutton.d.ts +3 -4
  8. package/controls/datetime/date.d.ts +4 -3
  9. package/controls/datetime/datetime.d.ts +4 -3
  10. package/controls/datetime/time.d.ts +4 -3
  11. package/controls/form/inheritform.directive.d.ts +14 -37
  12. package/controls/grid/gridbutton.d.ts +1 -10
  13. package/controls/multilanguage/multilanguagemenuitembutton.d.ts +3 -3
  14. package/controls/static/formcontainer.d.ts +1 -1
  15. package/controls/tinymce/tinymce.d.ts +1 -1
  16. package/controls/tooltip/tooltip.d.ts +34 -0
  17. package/controls/tooltip/tooltip.module.d.ts +2 -0
  18. package/controls/tooltip/tooltip.module.ngfactory.d.ts +3 -0
  19. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -0
  20. package/controls/treeview/treeview.d.ts +14 -0
  21. package/controls/treeview/treeview.module.d.ts +2 -0
  22. package/controls/treeview/treeview.module.ngfactory.d.ts +3 -0
  23. package/controls/treeview/treeview.ngfactory.d.ts +1 -0
  24. package/controls/upload/dropzonemultiple.d.ts +1 -1
  25. package/controls/upload/dropzonesingle.d.ts +1 -1
  26. package/controls/upload/uploadmultiple.d.ts +1 -1
  27. package/esm2015/controls/checkbox/checkbox.js +4 -5
  28. package/esm2015/controls/checkbox/checkbox.module.js +7 -2
  29. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  30. package/esm2015/controls/checkbox/radiobutton.js +13 -7
  31. package/esm2015/controls/checkbox/radiobuttons.js +2 -2
  32. package/esm2015/controls/confirm/confirm.js +2 -2
  33. package/esm2015/controls/confirm/confirm.module.ngfactory.js +1 -1
  34. package/esm2015/controls/contextmenu/contextmenu.js +3 -9
  35. package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +1 -1
  36. package/esm2015/controls/contextmenu/contextmenuanchor.js +1 -1
  37. package/esm2015/controls/contextmenu/contextmenucontainer.js +1 -1
  38. package/esm2015/controls/contextmenu/contextmenuitembutton.js +15 -11
  39. package/esm2015/controls/contextmenu/contextmenuitemsplitter.js +9 -3
  40. package/esm2015/controls/datetime/date.js +17 -12
  41. package/esm2015/controls/datetime/datetime.js +9 -7
  42. package/esm2015/controls/datetime/datetime.module.js +8 -2
  43. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  44. package/esm2015/controls/datetime/time.js +9 -7
  45. package/esm2015/controls/dialog/dialog.js +2 -2
  46. package/esm2015/controls/dialog/dialog.module.ngfactory.js +1 -1
  47. package/esm2015/controls/form/inheritform.directive.js +42 -56
  48. package/esm2015/controls/grid/grid.js +2 -2
  49. package/esm2015/controls/grid/grid.module.js +18 -6
  50. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  51. package/esm2015/controls/grid/gridbutton.js +3 -11
  52. package/esm2015/controls/grid/gridcolumn.js +2 -2
  53. package/esm2015/controls/input/input.js +2 -2
  54. package/esm2015/controls/input/input.module.js +7 -2
  55. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  56. package/esm2015/controls/input/inputarea.js +2 -2
  57. package/esm2015/controls/input/inputcurrency.js +2 -2
  58. package/esm2015/controls/input/inputdecimal.js +2 -2
  59. package/esm2015/controls/input/inputemail.js +2 -2
  60. package/esm2015/controls/input/inputinteger.js +2 -2
  61. package/esm2015/controls/input/inputpassword.js +2 -2
  62. package/esm2015/controls/input/inputsearch.js +2 -2
  63. package/esm2015/controls/list/dropdown.js +2 -2
  64. package/esm2015/controls/list/dropdown.module.js +7 -2
  65. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  66. package/esm2015/controls/list/list.module.js +7 -2
  67. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  68. package/esm2015/controls/list/listbox.js +2 -2
  69. package/esm2015/controls/multilanguage/multilanguage.module.js +7 -2
  70. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  71. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  72. package/esm2015/controls/multilanguage/multilanguageinputarea.js +2 -2
  73. package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +15 -10
  74. package/esm2015/controls/static/formcontainer.js +3 -3
  75. package/esm2015/controls/static/staticlabel.js +2 -2
  76. package/esm2015/controls/static/staticlabel.module.js +7 -2
  77. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  78. package/esm2015/controls/tabs/tab.js +2 -2
  79. package/esm2015/controls/tabs/tabs.module.ngfactory.js +1 -1
  80. package/esm2015/controls/tinymce/tinymce.js +4 -4
  81. package/esm2015/controls/tinymce/tinymce.module.js +3 -1
  82. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  83. package/esm2015/controls/tooltip/tooltip.js +52 -0
  84. package/esm2015/controls/tooltip/tooltip.module.js +13 -0
  85. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -0
  86. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -0
  87. package/esm2015/controls/treeview/treeview.js +41 -0
  88. package/esm2015/controls/treeview/treeview.module.js +16 -0
  89. package/esm2015/controls/treeview/treeview.module.ngfactory.js +7 -0
  90. package/esm2015/controls/treeview/treeview.ngfactory.js +7 -0
  91. package/esm2015/controls/upload/dropzonemultiple.js +4 -4
  92. package/esm2015/controls/upload/dropzonesingle.js +4 -4
  93. package/esm2015/controls/upload/upload.js +2 -2
  94. package/esm2015/controls/upload/upload.module.js +8 -2
  95. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  96. package/esm2015/controls/upload/uploadmultiple.js +4 -4
  97. package/esm2015/public_api.js +60 -3
  98. package/esm2015/simpleangularcontrols-sac-bootstrap4.js +6 -57
  99. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js +304 -147
  100. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js.map +1 -1
  101. package/package.json +3 -3
  102. package/public_api.d.ts +57 -2
  103. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.21.tgz +0 -0
  104. package/simpleangularcontrols-sac-bootstrap4.d.ts +5 -56
  105. package/simpleangularcontrols-sac-bootstrap4.metadata.json +1 -1
  106. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.2.tgz +0 -0
@@ -1,2 +1,2 @@
1
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(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-bootstrap4",["exports","@angular/common","@angular/common/http","@angular/core","@angular/forms","@simpleangularcontrols/sac-common","rxjs","rxjs/operators","angular-imask","moment","@tinymce/tinymce-angular"],e):e(((n="undefined"!=typeof globalThis?globalThis:n||self).simpleangularcontrols=n.simpleangularcontrols||{},n.simpleangularcontrols["sac-bootstrap4"]={}),n.ng.common,n.ng.common.http,n.ng.core,n.ng.forms,n.sacCommon,n.rxjs,n.rxjs.operators,n.angularImask,n.moment,n.tinymceAngular)}(this,(function(n,e,r,t,o,a,l,s,i,c,d){"use strict";function p(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var u=p(c),g=function(n,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(n,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])})(n,e)};function m(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=n}g(n,e),n.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var b=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacButtonCommon);b.decorators=[{type:t.Component,args:[{selector:"sac-button",template:'<button\r\n [id]="name"\r\n type="button"\r\n class="btn d-flex justify-content-center align-items-center"\r\n [attr.disabled]="_isdisabled || isloading ? \'disabled\' : null"\r\n (click)="buttonClick()"\r\n [class.btn-primary]="role === \'primary\'"\r\n [class.btn-secondary]="role === \'secondary\' || role === \'default\'"\r\n [class.btn-success]="role === \'success\'"\r\n [class.btn-danger]="role === \'danger\'"\r\n [class.btn-warning]="role === \'warning\'"\r\n [class.btn-info]="role === \'info\'"\r\n [class.btn-link]="role === \'link\'"\r\n>\r\n <span\r\n *ngIf="isloading"\r\n class="spinner-border spinner-border-sm mr-2"\r\n role="status"\r\n aria-hidden="true"\r\n ></span>\r\n <i *ngIf="!isloading && icon !== \'\'" [ngClass]="icon" [class.mr-2]="text"></i\r\n >{{text}}\r\n</button>\r\n'}]}];var v=function(){};v.decorators=[{type:t.NgModule,args:[{declarations:[b],imports:[e.CommonModule],exports:[b]}]}];var f=function(n){function e(e,r){var t=n.call(this,r)||this;return t.element=e.nativeElement,t}return m(e,n),e.prototype.ngOnInit=function(){document.body.appendChild(this.element)},e.prototype.ngOnDestroy=function(){this.hide(),document.body.contains(this.element)&&document.body.removeChild(this.element),n.prototype.ngOnDestroy.call(this)},e}(a.SacDialogCommon);f.decorators=[{type:t.Component,args:[{selector:"sac-dialog",template:'<div #dialog class="modal show" style="display: block" tabindex="-1" role="dialog" *ngIf="_show">\r\n <div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document"\r\n [class.modal-xl]="_size === \'extralarge\'"\r\n [class.modal-lg]="_size === \'large\'"\r\n [class.modal-sm]="_size === \'small\'">\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h5 class="modal-title">{{title}}</h5>\r\n <button type="button" class="close" data-dismiss="modal" aria-label="Close" (click)="hide()" *ngIf="closebutton"><span aria-hidden="true">&times;</span></button>\r\n </div>\r\n <div class="modal-body" [style.height]="height">\r\n <ng-content select="[dialogbody]"></ng-content>\r\n </div>\r\n <div class="modal-footer">\r\n <ng-content select="[dialogfooter]"></ng-content>\r\n </div>\r\n </div>\x3c!-- /.modal-content --\x3e\r\n </div>\x3c!-- /.modal-dialog --\x3e\r\n</div>\x3c!-- /.modal --\x3e\r\n<div class="modal-backdrop show" *ngIf="_show && backdrop" #backdrop></div>\r\n'}]}],f.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef}]};var h=function(){};h.decorators=[{type:t.NgModule,args:[{declarations:[f],imports:[e.CommonModule],exports:[f]}]}];var y=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacConfirmCommon);y.decorators=[{type:t.Component,args:[{selector:"sac-confirm",template:'<sac-dialog\r\n [(isvisible)]="isvisible"\r\n [title]="title"\r\n [allowesc]="false"\r\n [closebutton]="false"\r\n dialogsize="small"\r\n>\r\n <div dialogbody>\r\n <div class="media">\r\n <img\r\n [attr.src]="image"\r\n class="align-self-center mr-3"\r\n *ngIf="hasImage()"\r\n />\r\n <div class="media-body">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor="let button of buttons">\r\n <sac-button\r\n [name]="button.key"\r\n [text]="button.text"\r\n [role]="button.role || \'default\'"\r\n (clicked)="confirm(button.key)"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n'}]}];var C=function(n){function e(e,r,t){var o=n.call(this,r,t)||this;return o.componentFactoryResolver=e,o.buttons=[],o.message="",o.title="",o}return m(e,n),e.prototype.ConfirmMessage=function(e,r,t){var o=this;return void 0===t&&(t=null),this.title=e,this.message=r,a.isDefined(t)?this.buttons=t:(this.buttons=[],l.forkJoin({button_yes:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),button_no:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo)}).pipe(s.take(1)).subscribe((function(n){o.buttons.push(new a.SacConfirmButton("yes",n.button_yes,"primary")),o.buttons.push(new a.SacConfirmButton("no",n.button_no))}))),n.prototype.Confirm.call(this)},e.prototype.GetComponentFactory=function(){return this.componentFactoryResolver.resolveComponentFactory(y)},e.prototype.ConfigureDialog=function(n){n.title=this.title,n.message=this.message,n.buttons=this.buttons,n.image=this.iconService.ConfirmDefaultImage},e}(a.ServiceConfirmCommon);C.decorators=[{type:t.Injectable}],C.ctorParameters=function(){return[{type:t.ComponentFactoryResolver,decorators:[{type:t.Inject,args:[t.ComponentFactoryResolver]}]},{type:t.ApplicationRef},{type:t.Injector}]};var S=function(){function n(){}return n.forRoot=function(){return{ngModule:n,providers:[C]}},n}();S.decorators=[{type:t.NgModule,args:[{declarations:[y],imports:[e.CommonModule,h,v],exports:[y],entryComponents:[y]}]}];var x=function(n){function e(e,r,t,o,a){return n.call(this,e,r,t,o,a)||this}return m(e,n),e}(a.SacContextmenuCommon);x.decorators=[{type:t.Component,args:[{selector:"sac-contextmenu",template:'<div class="dropdown" [ngClass]="cssclass">\r\n <ng-container\r\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\r\n ></ng-container>\r\n\r\n <div\r\n class="dropdown-menu dropdown-menu-right"\r\n sacContextMenuContainer\r\n [class.show]="isopen"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacContextMenuAnchor\r\n class="btn btn-sm btn-link text-secondary text-decoration-none"\r\n type="button"\r\n (click)="toggle()"\r\n >\r\n <i [class]="IconContextMenu"></i>\r\n </button>\r\n</ng-template>\r\n',providers:[{provide:a.SacContextmenuCommon,useExisting:t.forwardRef((function(){return x}))}]}]}],x.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[e.DOCUMENT]}]},{type:t.NgZone},{type:t.ElementRef},{type:t.Renderer2},{type:t.Injector}]};var I=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextmenuItemButtonCommon);I.decorators=[{type:t.Component,args:[{selector:"sac-contextmenubutton",template:'<button\r\n type="button"\r\n class="dropdown-item"\r\n (click)="callaction($event)"\r\n [class.disabled]="isdisabled"\r\n [ngClass]="cssclass"\r\n [attr.disabled]="isdisabled ? \'disabled\' : null"\r\n>\r\n <div class="d-flex">\r\n <div *ngIf="!isicondisabled" style="min-width: 1.5rem">\r\n <img *ngIf="image" [src]="image" class="align-baseline" />\r\n <i *ngIf="icon" [class]="iconstyle + \' \' + icon"></i>\r\n </div>\r\n <div class="flex-grow-1">{{ text }}</div>\r\n </div>\r\n</button>\r\n'}]}],I.ctorParameters=function(){return[{type:a.SacContextmenuCommon}]};var w=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacContextmenuItemCommon);w.decorators=[{type:t.Component,args:[{selector:"sac-contextmenusplitter",template:'<div class="dropdown-divider"></div>'}]}];var H=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextmenuAnchorCommon);H.decorators=[{type:t.Directive,args:[{selector:"[sacContextMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:t.forwardRef((function(){return H}))}]}]}],H.ctorParameters=function(){return[{type:t.ElementRef}]};var k=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextMenuContrainerCommon);k.decorators=[{type:t.Directive,args:[{selector:"[sacContextMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:t.forwardRef((function(){return k}))}]}]}],k.ctorParameters=function(){return[{type:t.ElementRef}]};var E=function(){};E.decorators=[{type:t.NgModule,args:[{declarations:[x,I,w,H,k],imports:[e.CommonModule],exports:[x,I,w,H]}]}];var L=function(n){function e(e){var r=n.call(this,e)||this;return r.cssClassForm=!0,r}return m(e,n),e}(a.SacFormCommon);function A(n){return n}function M(n){return n}L.decorators=[{type:t.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],L.ctorParameters=function(){return[{type:o.NgForm}]},L.propDecorators={cssClassForm:[{type:t.HostBinding,args:["class.form"]}]};var R=function(){};R.decorators=[{type:t.Directive,args:[{selector:"[sacInheritForm]",providers:[{provide:L,useFactory:A,deps:[[new t.SkipSelf,L]]},{provide:o.ControlContainer,useFactory:M,deps:[o.NgForm]}]}]}];var z=function(){};z.decorators=[{type:t.NgModule,args:[{declarations:[L,R],imports:[e.CommonModule,o.FormsModule],exports:[L,R]}]}];var _=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacFormLayoutCommon);_.decorators=[{type:t.Directive,args:[{selector:"[sacFormLayout]"}]}];var O=function(){function n(){}return n.prototype.transform=function(n){if(!n)return"";switch(n){case a.ControlHeight.Small:return"form-control-sm";case a.ControlHeight.Large:return"form-control-lg";default:return""}},n}();O.decorators=[{type:t.Pipe,args:[{name:"toControlHeight"}]}];var N=function(){function n(){}return n.prototype.transform=function(n){var e=[];return n.labelSizeXs&&e.push("col-"+this.calcControlSize(n.labelSizeXs)),n.labelSizeSm&&e.push("col-sm-"+this.calcControlSize(n.labelSizeSm)),n.labelSizeMd&&e.push("col-md-"+this.calcControlSize(n.labelSizeMd)),n.labelSizeLg&&e.push("col-lg-"+this.calcControlSize(n.labelSizeLg)),n.labelSizeXl&&e.push("col-xl-"+this.calcControlSize(n.labelSizeXl)),e.join(" ")},n.prototype.calcControlSize=function(n){return 12===n?12:n?12-n:12},n}();N.decorators=[{type:t.Pipe,args:[{name:"toControlWidthCss"}]}];var T=function(){function n(){}return n.prototype.transform=function(n){if(!n)return"";switch(n){case a.ControlHeight.Small:return"col-form-label-sm";case a.ControlHeight.Large:return"col-form-label-lg";default:return""}},n}();T.decorators=[{type:t.Pipe,args:[{name:"toLabelHeight"}]}];var G=function(){function n(){}return n.prototype.transform=function(n){var e=[];return n.labelSizeXs&&e.push("col-"+n.labelSizeXs),n.labelSizeSm&&e.push("col-sm-"+n.labelSizeSm),n.labelSizeMd&&e.push("col-md-"+n.labelSizeMd),n.labelSizeLg&&e.push("col-lg-"+n.labelSizeLg),n.labelSizeXl&&e.push("col-xl-"+n.labelSizeXl),e.join(" ")},n}();G.decorators=[{type:t.Pipe,args:[{name:"toLabelWidthCss"}]}];var D=function(){};D.decorators=[{type:t.NgModule,args:[{declarations:[_,O,N,T,G],imports:[e.CommonModule],exports:[_,O,N,T,G]}]}];var F=function(n){function e(e,r,t,o){return n.call(this,e,r,t,o)||this}return m(e,n),e.prototype.ngOnInit=function(){n.prototype.ngOnInit.call(this)},e}(a.SacDropzoneMultipleCommon);F.decorators=[{type:t.Component,args:[{selector:"sac-dropzonemultiple",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="dropzone d-flex justify-content-center position-relative"\r\n (drop)="dropHandler($event)"\r\n (dragover)="onDragOver($event)"\r\n (dragleave)="onDragLeave($event)"\r\n [class.active]="active"\r\n [style.min-height]="uploadheight"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n >\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length === 0"\r\n >\r\n <div class="align-self-center text-center">\r\n <div\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length > 0"\r\n >\r\n <div class="align-self-center progress-container">\r\n <div\r\n class="dropzone-uploadstates"\r\n [class.mt-1]="i > 0"\r\n *ngFor="let file of uploads; let i = index"\r\n >\r\n <div\r\n class="input-group upload-component upload-component-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <div class="form-control upload-progress border-secondary">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress===100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress"\r\n >\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <a\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconDelete"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id="{{ name }}_uploadinput"\r\n type="file"\r\n class="custom-file-input"\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n [disabled]="HasQueueItem()"\r\n />\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:F},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return F}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]}]}],F.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.Renderer2},{type:t.NgZone}]};var P=function(n){function e(e,r,t,o){return n.call(this,e,r,t,o)||this}return m(e,n),e.prototype.ngOnInit=function(){n.prototype.ngOnInit.call(this)},e}(a.SacDropzoneSingleCommon);P.decorators=[{type:t.Component,args:[{selector:"sac-dropzonesingle",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="dropzone d-flex justify-content-center position-relative"\r\n (drop)="dropHandler($event)"\r\n (dragover)="onDragOver($event)"\r\n (dragleave)="onDragLeave($event)"\r\n [style.min-height]="uploadheight"\r\n [class.active]="active"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n >\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length === 0"\r\n >\r\n <div class="align-self-center text-center">\r\n <div\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length > 0"\r\n >\r\n <div class="align-self-center progress-container">\r\n <div class="dropzone-uploadstates" *ngFor="let file of uploads">\r\n <div\r\n class="input-group upload-component upload-component-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <div class="form-control upload-progress border-secondary">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress===100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress"\r\n >\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <a\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconDelete"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id="{{ name }}_uploadinput"\r\n type="file"\r\n class="custom-file-input"\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n [disabled]="HasQueueItem()"\r\n />\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:P},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return P}))}],styles:[".dropzone{background:transparent;border:.125rem dashed #d3d3d3;border-radius:.5rem;min-height:9.75rem}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]}]}],P.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.Renderer2},{type:t.NgZone}]};var V=function(n){function e(e,r,t,o){return n.call(this,e,r,t,o)||this}return m(e,n),e}(a.SacUploadSingleCommon);V.decorators=[{type:t.Component,args:[{selector:"sac-upload",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group upload-component upload-single"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <div class="input-group-prepend">\r\n \x3c!-- image-preview-input --\x3e\r\n <div\r\n class="btn upload-input custom-file"\r\n [class.disabled]="HasQueueItem()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <i class="pr-2" [class]="IconBrowse"></i>\r\n <span class="upload-browse"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type="file"\r\n class="custom-file-input"\r\n #files\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n multiple\r\n [disabled]="HasQueueItem()"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class="form-control upload-progress"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n >\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="Progress()===100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="Progress()"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="Progress()"\r\n >\r\n <span class="progress-text text-dark"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n \x3c!-- <input type="textimage-preview-filename" class="form-control image-preview-filename" disabled="disabled"> --\x3e\x3c!-- don\'t give a name === doesn\'t send on POST/GET --\x3e\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancelAll()"\r\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\r\n class="btn"\r\n (click)="pauseAll()"\r\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && IsPaused()"\r\n class="btn"\r\n (click)="uploadAll()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="uploadAll()"\r\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconUpload" class="pr-2"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:V},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return V}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]}]}],V.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.Renderer2},{type:t.NgZone}]};var j=function(n){function e(e,r,t,o){return n.call(this,e,r,t,o)||this}return m(e,n),e}(a.SacUploadMultipleCommon);j.decorators=[{type:t.Component,args:[{selector:"sac-uploadmultiple",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div class="upload-component">\r\n <div class="row">\r\n <div class="col-12">\r\n <div\r\n class="btn-group"\r\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.btn-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <div\r\n class="btn upload-input custom-file"\r\n [class.disabled]="maxfiles > 0 && uploads.length >= maxfiles"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <i [class]="IconBrowse" class="pr-2"></i>\r\n <span class="upload-browse">Browse</span>\r\n <input\r\n type="file"\r\n class="custom-file-input"\r\n #files\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n multiple\r\n [disabled]="maxfiles > 0 && uploads.length >= maxfiles"\r\n />\r\n </div>\r\n\r\n <div\r\n class="btn-group"\r\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.btn-group-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancelAll()"\r\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\r\n class="btn"\r\n (click)="pauseAll()"\r\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && IsPaused() === true"\r\n class="btn"\r\n (click)="uploadAll()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="uploadAll()"\r\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconUpload" class="pr-2"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor="let file of uploads" style="margin-top: 5px">\r\n <div\r\n class="input-group upload-component upload-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <div\r\n class="form-control upload-progress"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n >\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress===100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress"\r\n >\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== \'paused\')"\r\n class="btn"\r\n (click)="pause(file.uploadId)"\r\n [attr.disabled]="file.status !== \'uploading\' ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && file.status === \'paused\'"\r\n class="btn"\r\n (click)="upload(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="upload(file.uploadId)"\r\n [attr.disabled]="file.status !== \'added\' && file.status !== \'paused\' ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)"\r\n >\r\n <span [class]="IconUpload" class="pr-2"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:j},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return j}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]}]}],j.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.Renderer2},{type:t.NgZone}]};var B=function(){};B.decorators=[{type:t.NgModule,args:[{declarations:[V,j,P,F],imports:[e.CommonModule,o.FormsModule,D],exports:[V,j,P,F]}]}];var U=function(n){function e(e,r,t){var o=n.call(this,e,r)||this;return o.confirmService=t,o}return m(e,n),e.prototype.confirmDeleteFile=function(n){var e=this;return new l.Observable((function(n){l.forkJoin({title:e.lngResourceService.GetString(e.validationKeyService.FilebrowserButtonDelete),message:e.lngResourceService.GetString(e.validationKeyService.FilebrowserConfirmTextDeleteFile)}).subscribe((function(r){e.confirmService.ConfirmMessage(r.title,r.message).subscribe((function(e){"yes"===e?n.next(!0):n.next(!1),n.complete()}))}))}))},e.prototype.confirmDeleteNode=function(n){var e=this;return new l.Observable((function(n){l.forkJoin({title:e.lngResourceService.GetString(e.validationKeyService.FilebrowserButtonDelete),message:e.lngResourceService.GetString(e.validationKeyService.FilebrowserConfirmTextDeleteFolder)}).subscribe((function(r){e.confirmService.ConfirmMessage(r.title,r.message).subscribe((function(e){"yes"===e?n.next(!0):n.next(!1),n.complete()}))}))}))},e.prototype.count=function(n){return new Array(n)},e.prototype.uploadedFileMoved=function(n){var e=this.uploadComponent.uploads.find((function(e){return e.documentid===n}));e&&this.uploadComponent.cancel(e.uploadId)},e}(a.SacFileBrowserCommon);U.decorators=[{type:t.Component,args:[{selector:"sac-filebrowser",template:'<div class="row">\r\n <div class="col-12 col-md-5 col-lg-4">\r\n <ul class="list-group list-group-flush">\r\n <ng-template\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{node: rootNode, deep: 0}"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node="node" let-deep="deep">\r\n <li\r\n class="list-group-item py-1 px-2 d-flex align-items-center"\r\n [class.list-group-item-secondary]="node === selectedNode"\r\n (click)="selectNode(node)"\r\n style="cursor: pointer"\r\n >\r\n <div class="mx-3" *ngFor="let i of count(deep)"></div>\r\n <div\r\n (click)="switchExpandNode(node);$event.stopPropagation();"\r\n class="mr-2"\r\n [ngClass]="node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : \'\'))"\r\n ></div>\r\n <ng-container *ngIf="!node.IsEditMode">\r\n <div class="flex-grow-1">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf="node.IsEditMode">\r\n <div class="flex-grow-1" ngForm>\r\n <input\r\n name="editFolder"\r\n class="form-control form-control-sm"\r\n [ngModel]="node.Name"\r\n [ngModelOptions]="{updateOn: \'blur\'}"\r\n (ngModelChange)="renameNode(node, $event)"\r\n (keydown.enter)="$event.target.blur();false;"\r\n (blur)="renameNode(node, null)"\r\n (click)="$event.stopPropagation()"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class="flex-shrink-0">\r\n <a\r\n *ngIf="node.Path !== \'/\' && allowfolderrename"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="editNode(node);$event.stopPropagation();"\r\n >\r\n <i [class]="iconEdit"></i>\r\n </a>\r\n <sac-contextmenu cssclass="d-inline-block">\r\n <sac-contextmenubutton\r\n *ngIf="allowfoldercreate"\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}"\r\n [icon]="iconFolderNew"\r\n (clicked)="newNode(node)"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf="node.Path !== \'/\' && allowfolderdelete"\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}"\r\n [icon]="iconDelete"\r\n (clicked)="deleteNode(node)"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf="allowfoldercreate || (node.Path !== \'/\' && allowfolderdelete)"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}"\r\n [icon]="iconRefresh"\r\n (clicked)="refreshNode(node)"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf="node.IsExpanded">\r\n <ng-template\r\n *ngFor="let child of node.ChildNodes"\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{node: child, deep: deep + 1}"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <div class="col-12 col-md-7 col-lg-8">\r\n <ng-container *ngIf="selectedNode && selectedNode.Files">\r\n <div *ngIf="allowfileupload" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]="true"\r\n [endpoint]="apiurl + \'/uploadregister\'"\r\n name="upload"\r\n uploadheight="5rem"\r\n [ngModel]="uploads"\r\n (ngModelChange)="uploadComplete(selectedNode,$event)"\r\n [allowedtypes]="allowedtypes"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\r\n | async }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class="table-responsive">\r\n <table class="table table-striped table-hover align-middle">\r\n <thead>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\r\n | async }}\r\n </th>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\r\n | async }}\r\n </th>\r\n <th style="width: 80px"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf="selectedNode.Files.length === 0">\r\n <tr>\r\n <td colspan="3">\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\r\n | async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf="selectedNode.Files.length > 0">\r\n <tr\r\n *ngFor="let item of selectedNode.Files"\r\n (click)="selectFile(item)"\r\n [class.table-primary]="selectedFileItem === item"\r\n >\r\n <td [class.p-2]="item.IsEditMode">\r\n <ng-container *ngIf="!item.IsEditMode">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf="item.IsEditMode">\r\n <div>\r\n <input\r\n name="editFolder"\r\n class="form-control form-control-sm"\r\n [ngModel]="item.Filename"\r\n [ngModelOptions]="{updateOn: \'blur\'}"\r\n (ngModelChange)="renameFile(item, $event)"\r\n (keydown.enter)="$event.target.blur();false"\r\n (blur)="renameFile(item, null)"\r\n (click)="$event.stopPropagation();"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class="p-2">\r\n <div class="btn-toolbar" role="toolbar">\r\n <div class="btn-group ml-auto" role="group">\r\n <a\r\n *ngIf="allowfilerename"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="editFile(item);$event.stopPropagation();"\r\n ><i [class]="iconEdit"></i\r\n ></a>\r\n </div>\r\n <div class="btn-group" role="group">\r\n <a\r\n *ngIf="allowfiledelete"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="deleteFile(item);$event.stopPropagation();"\r\n ><i [class]="iconDelete"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n',providers:[C]}]}],U.ctorParameters=function(){return[{type:r.HttpClient},{type:t.Injector},{type:C}]},U.propDecorators={uploadComponent:[{type:t.ViewChild,args:[F,{static:!1}]}]};var W=function(){};W.decorators=[{type:t.NgModule,args:[{declarations:[U],imports:[e.CommonModule,r.HttpClientModule,S,E,B,z,o.FormsModule],exports:[U],bootstrap:[U]}]}];var $=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacCheckboxCommon);$.decorators=[{type:t.Component,args:[{selector:"sac-checkbox",template:'<div\r\n class="row"\r\n [class.no-gutters]="disablelabel"\r\n [class.form-group]="!stacked"\r\n>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\']"\r\n >\r\n <label\r\n *ngIf="!disablelabel && !stacked"\r\n for="{{name}}"\r\n class="col-form-label"\r\n [ngClass]="componentHeight | toLabelHeight"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class="align-self-center col-12"\r\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="form-check"\r\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <input\r\n class="form-check-input"\r\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="checkbox"\r\n [checked]="value"\r\n (blur)="onTouch()"\r\n (change)="setValue($event.target.checked)"\r\n [disabled]="isdisabled"\r\n />\r\n <label\r\n for="{{name}}"\r\n class="form-check-label"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <ng-container *ngIf="checkboxtext">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:$},{provide:o.NG_VALIDATORS,useExisting:t.forwardRef((function(){return $})),multi:!0}],styles:[".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]}]}],$.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var K=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacRadiobuttonsCommon);K.decorators=[{type:t.Component,args:[{selector:"sac-radiobuttons",template:'<div class="row form-group">\r\n <div\r\n *ngIf="disablelabel === false"\r\n class="col-12 pt-0"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\']"\r\n >\r\n <label\r\n class="col-form-label"\r\n [ngClass]="componentHeight | toLabelHeight"\r\n *ngIf="!disablelabel"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.pt-1]="componentHeight === ControlHeight.Small"\r\n [class.pt-2]="componentHeight !== ControlHeight.Small"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return K})),multi:!0},{provide:o.NG_VALIDATORS,useExisting:t.forwardRef((function(){return K})),multi:!0}]}]}],K.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var q=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacRadiobuttonCommon);q.decorators=[{type:t.Component,args:[{selector:"sac-radiobutton",template:'<div\r\n class="form-check"\r\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-lg]="componentHeight === ControlHeight.Large"\r\n *ngIf="hidden===false"\r\n>\r\n <input\r\n id="{{getName}}_{{getIndex}}"\r\n name="{{getName}}"\r\n type="radio"\r\n class="form-check-input"\r\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\r\n [value]="value"\r\n [checked]="checked"\r\n (change)="ChangeEvent()"\r\n [disabled]="isDisabled"\r\n />\r\n <label\r\n for="{{getName}}_{{getIndex}}"\r\n class="form-check-label"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet="labeltemplate || defaultItemLabelTemplate;context:{ label: label }"\r\n >\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label="label">{{label}}</ng-template>\r\n',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:K,decorators:[{type:t.Host}]}]};var X=function(){};X.decorators=[{type:t.NgModule,args:[{declarations:[$,q,K],imports:[e.CommonModule,D],exports:[$,q,K]}]}];u.default;var Q=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacDateCommon);Q.decorators=[{type:t.Component,args:[{selector:"sac-date",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled"\r\n />\r\n <div class="input-group-append">\r\n <button\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showDateSelector()"\r\n [disabled]="isdisabled"\r\n >\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class="popover fade bs-popover-bottom show"\r\n role="tooltip"\r\n *ngIf="_showselector"\r\n style="\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n "\r\n >\r\n <div\r\n class="arrow"\r\n style="left: unset"\r\n [style.right.rem]="componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4"\r\n ></div>\r\n <h3 class="popover-header" style="display: none"></h3>\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="dateselect($event)"\r\n dateselection="true"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return Q}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return Q}))}]}]}],Q.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.ElementRef}]};var Z=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacDateSelectorCommon);Z.decorators=[{type:t.Component,args:[{selector:"sac-dateselector",template:'<div class="calendar-selector">\r\n <div *ngIf="dateselection">\r\n <div class="container">\r\n <div class="row">\r\n <div class="col text-left">\r\n <a (click)="monthBack()"><span [class]="iconMonthPrev"></span></a>\r\n </div>\r\n <div class="col text-center">{{month+1}}/{{year}}</div>\r\n <div class="col text-right">\r\n <a (click)="monthNext()"><span [class]="iconMonthNext"></span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div></div>\r\n <div class="container">\r\n <div class="row">\r\n <ng-container *ngFor="let week of dates; let i=index">\r\n <ng-container *ngFor="let item of week">\r\n <div\r\n class="p-2 col text-center"\r\n [ngStyle]="{\'cursor\': item.isenabled ? \'pointer\' : null}"\r\n [ngClass]="{\'day-current\': item.iscurrent, \'day-selected\': item.isselected, \'day-new\': item.isnew, \'day-disabled\': !item.isenabled}"\r\n (click)="selectDate(item)"\r\n >\r\n {{ item.displaytext }}\r\n </div>\r\n </ng-container>\r\n <div class="w-100"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="d-flex flex-row justify-content-start" *ngIf="timeselection">\r\n <div class="p-2">\r\n <div class="form-group">\r\n <label>Stunde</label>\r\n <input\r\n type="number"\r\n class="form-control form-control-sm"\r\n [value]="getHours()"\r\n (input)="setHours($event.target.value)"\r\n min="0"\r\n max="23"\r\n />\r\n </div>\r\n </div>\r\n <div class="p-2">\r\n <div class="form-group">\r\n <label>Minute</label>\r\n <input\r\n type="number"\r\n class="form-control form-control-sm"\r\n [value]="getMinutes()"\r\n (input)="setMinutes($event.target.value)"\r\n min="0"\r\n max="59"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class="d-flex flex-row">\r\n <div class="mr-auto p-2">\r\n <button type="button" class="btn btn-secondary" (click)="setToday()">\r\n Heute\r\n </button>\r\n </div>\r\n <div class="p-2">\r\n <button\r\n type="button"\r\n class="btn btn-secondary"\r\n (click)="resetSelection()"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n <div class="p-2">\r\n <button type="button" class="btn btn-primary" (click)="applySelection()">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n'}]}];var J=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacDateTimeCommon);J.decorators=[{type:t.Component,args:[{selector:"sac-datetime",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled"\r\n />\r\n <div class="input-group-append">\r\n <button\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showDateSelector()"\r\n [disabled]="isdisabled"\r\n >\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class="popover fade bs-popover-bottom show"\r\n role="tooltip"\r\n *ngIf="_showselector"\r\n style="\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n "\r\n >\r\n <div\r\n class="arrow"\r\n style="left: unset"\r\n [style.right.rem]="componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4"\r\n ></div>\r\n <h3 class="popover-header" style="display: none"></h3>\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="dateselect($event)"\r\n dateselection="true"\r\n timeselection="true"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return J}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return J}))}]}]}],J.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.ElementRef}]};var Y=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacTimeCommon);Y.decorators=[{type:t.Component,args:[{selector:"sac-time",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled"\r\n />\r\n <div class="input-group-append">\r\n <button\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showTimeSelector()"\r\n [disabled]="isdisabled"\r\n >\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class="popover fade bs-popover-bottom show"\r\n role="tooltip"\r\n *ngIf="_showselector"\r\n style="\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n "\r\n >\r\n <div\r\n class="arrow"\r\n style="left: unset"\r\n [style.right.rem]="componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4"\r\n ></div>\r\n <h3 class="popover-header" style="display: none"></h3>\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="timeselect($event)"\r\n timeselection="true"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return Y}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return Y}))}]}]}],Y.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.ElementRef}]};var nn=function(){};nn.decorators=[{type:t.NgModule,args:[{declarations:[Q,J,Y,Z],imports:[e.CommonModule,i.IMaskModule,D],exports:[Q,J,Y,Z]}]}];var en=function(n){function e(e,r){var t=n.call(this,e,r)||this;return t.ellipsis=!1,t}return m(e,n),e}(a.SacGridCommon);en.decorators=[{type:t.Component,args:[{selector:"sac-grid",template:'<div class="table-responsive">\r\n <table class="table table-striped table-hover" id={{name}}>\r\n <thead class="thead-light">\r\n <tr>\r\n <ng-container *ngTemplateOutlet="template; context { row: {}, type: \'header\'}">\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor="let item of value; let i=index">\r\n <tr>\r\n <ng-container *ngTemplateOutlet="template; context { row: item, type: \'body\'}">\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf="value === undefined || value === null || value.length===0">\r\n <td [attr.colspan]="ColumnCount">{{emptytext}}</td>\r\n </tr>\r\n <tr>\r\n <td [attr.colspan]="ColumnCount">\r\n <div class="container-fluid">\r\n <sac-paging name="{{name}}Paging" (paging)="pageChange($event)" [pagerdata]="pagerdata" [pagesizes]="pagesizes" [pagingtext]="pagingtext" [pagesizetext]="pagesizetext" [pagesizedisabled]="pagesizedisabled"></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:en},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return en}))}]}]}],en.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.Injector}]},en.propDecorators={template:[{type:t.ContentChild,args:[t.TemplateRef,{static:!1}]}]};var rn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e.prototype.getIconClass=function(){var n=this.iconstyle,e=this.icon;if(""===n)switch(this.icon){case"edit":n="sprite",e="icon-sprite-base-main_edit";break;case"delete":n="sprite",e="icon-sprite-base-main_delete"}return this._isdisabledvalue&&(e+="_disabled"),(n+" "+e).trim()},e}(a.SacGridButtonCommon);rn.decorators=[{type:t.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>\r\n'}]}];var tn=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacGridColumnCommon);tn.decorators=[{type:t.Component,args:[{selector:"sac-gridcolumn",template:'<th\r\n scope="col"\r\n *ngIf="IsHeader()"\r\n [style.width]="width"\r\n (click)="SortByColumn()"\r\n>\r\n <span>{{header}}</span>\r\n <span\r\n class="pl-2"\r\n [class]="IconSortUp"\r\n *ngIf="IsSortedColumn() && GetSortDirection() ===\'asc\'"\r\n ></span>\r\n <span\r\n class="pl-2"\r\n [class]="IconSortDown"\r\n *ngIf="IsSortedColumn() && GetSortDirection() ===\'desc\'"\r\n ></span>\r\n</th>\r\n<td\r\n scope="col"\r\n *ngIf="IsBody()"\r\n [style.width]="width"\r\n [class.ellipsis]="IsEllipsis()"\r\n>\r\n <span [attr.title]="IsEllipsis() ? value : null"> {{value}} </span>\r\n</td>\r\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:t.forwardRef((function(){return tn}))}]}]}],tn.ctorParameters=function(){return[{type:en},{type:t.Injector},{type:t.ElementRef}]};var on=function(n){function e(e,r,t){var o=n.call(this,e,r,t)||this;return o.width="60px",o}return m(e,n),e}(a.SacGridColumnActionCommon);on.decorators=[{type:t.Component,args:[{selector:"sac-gridcolumnaction",template:'<th scope="col" *ngIf="IsHeader()" [style.width]="width"><span></span></th>\r\n<td scope="col" class="px-2" *ngIf="IsBody()">\r\n <ng-content></ng-content>\r\n</td>\r\n',providers:[{provide:a.SacGridColumnBaseCommon,useExisting:t.forwardRef((function(){return on}))}]}]}],on.ctorParameters=function(){return[{type:en},{type:t.Injector},{type:t.ElementRef}]};var an=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e.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}},e}(a.SacGridImageCommon);an.decorators=[{type:t.Component,args:[{selector:"sac-gridimage",template:'<span><span class="{{getIconClass()}}"></span></span>\r\n'}]}];var ln=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacPagingCommon);ln.decorators=[{type:t.Component,args:[{selector:"sac-paging",template:'<div\r\n class="d-flex justify-content-between align-items-center flex-wrap"\r\n id="{{name}}"\r\n>\r\n <div class="col-pagination order-2 order-md-1" id="{{name}}_pages">\r\n <ul class="pagination mb-4 mb-md-0">\r\n <li\r\n class="page-item"\r\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === firstPageIndex}"\r\n >\r\n <a class="page-link" (click)="firstPage()">«</a>\r\n </li>\r\n <li\r\n class="page-item"\r\n *ngFor="let page of paginators; let i = index"\r\n [ngClass]="{\'active\': page === activePageIndex}"\r\n >\r\n <a class="page-link" (click)="changePage(page)">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n class="page-item"\r\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === lastPageIndex}"\r\n >\r\n <a class="page-link" (click)="lastPage()">»</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class="col-summary order-1 order-md-2">\r\n <div class="mb-4 mb-md-0 mr-4 mb-md-0">{{ PagingText | async }}</div>\r\n </div>\r\n <div class="col-pagesize order-3" *ngIf="!pagesizedisabled">\r\n <div class="d-flex align-items-center" id="{{name}}_size">\r\n <select\r\n class="form-control form-control-sm"\r\n style="width: 85px"\r\n [ngModel]="pageSize"\r\n (ngModelChange)="changePageSize($event)"\r\n >\r\n <option [ngValue]="size" *ngFor="let size of getPageSizes">\r\n {{size}}\r\n </option>\r\n </select>\r\n <div class="ml-2">{{ PageSizeText | async }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:ln},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return ln}))}]}]}],ln.ctorParameters=function(){return[{type:t.Injector}]};var sn=function(){};sn.decorators=[{type:t.NgModule,args:[{declarations:[en,tn,on,ln,rn,an],imports:[e.CommonModule,o.FormsModule],exports:[en,tn,on,ln,rn,an]}]}];var cn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputCommon);cn.decorators=[{type:t.Component,args:[{selector:"sac-input",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n [readonly]="readonly"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n (keypress)="onKeyPress($event)"\r\n [attr.maxlength]="maxlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:cn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return cn}))}]}]}],cn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var dn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputAreaCommon);dn.decorators=[{type:t.Component,args:[{selector:"sac-inputarea",template:'<div class="form-group row">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <textarea\r\n id="{{name}}"\r\n name="{{name}}"\r\n type=""\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n (keypress)="onKeyPress($event)"\r\n [attr.rows]="rows"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [attr.maxlength]="maxlength"\r\n [readonly]="readonly"\r\n ></textarea>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return dn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return dn}))}]}]}],dn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var pn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputCurrencyCommon);pn.decorators=[{type:t.Component,args:[{selector:"sac-inputcurrency",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n />\r\n <div class="input-group-append">\r\n <span class="input-group-text">{{currency}}</span>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return pn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return pn}))}]}]}],pn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var un=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputDecimalCommon);un.decorators=[{type:t.Component,args:[{selector:"sac-inputdecimal",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n [readonly]="readonly"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return un}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return un}))}]}]}],un.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var gn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputEmailCommon);gn.decorators=[{type:t.Component,args:[{selector:"sac-inputemail",template:'<div class="form-group row">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <div class="input-group-prepend">\r\n <span class="input-group-text">@</span>\r\n </div>\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n [attr.maxlength]="maxlength"\r\n autocomplete="email"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:t.forwardRef((function(){return gn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return gn}))}]}]}],gn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var mn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputIntegerCommon);mn.decorators=[{type:t.Component,args:[{selector:"sac-inputinteger",template:'<div class="form-group row">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:mn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return mn}))}]}]}],mn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var bn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputPasswordCommon);bn.decorators=[{type:t.Component,args:[{selector:"sac-inputpassword",template:'<div class="form-group row">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="password"\r\n class="form-control"\r\n [attr.placeholder]="placeholder"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.maxlength]="maxlength"\r\n autocomplete="new-password"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:bn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return bn}))}]}]}],bn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var vn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacInputSearchCommon);vn.decorators=[{type:t.Component,args:[{selector:"sac-inputsearch",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.maxlength]="maxlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n />\r\n <div class="input-group-append">\r\n <input\r\n type="submit"\r\n class="btn btn-secondary"\r\n id="{{name}}_search"\r\n (click)="searchClick()"\r\n [value]="buttontext"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:vn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return vn}))}]}]}],vn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var fn=function(){};fn.decorators=[{type:t.NgModule,args:[{declarations:[cn,dn,pn,un,gn,mn,bn,vn],imports:[e.CommonModule,D],exports:[cn,dn,pn,un,gn,mn,bn,vn]}]}];var hn=function(n){function e(e,r,t,o){return n.call(this,e,r,t,o)||this}return m(e,n),e}(a.SacDropdownCommon);hn.decorators=[{type:t.Component,args:[{selector:"sac-dropdown",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <select\r\n #dropdownitem\r\n id="{{name}}"\r\n name="{{name}}"\r\n class="form-control"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (change)="setValue(dropdownitem.value)"\r\n [disabled]="isdisabled"\r\n >\r\n <option *ngIf="emptylabel !== \'\'" [ngValue]="emptyvalue">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf="groupitems === \'\'">\r\n <option\r\n *ngFor="let item of options"\r\n [ngValue]="optionvalue ? item[optionvalue] : item"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf="groupitems !== \'\'">\r\n <optgroup\r\n *ngFor="let group of options"\r\n [attr.label]="group[grouplabel]"\r\n >\r\n <option\r\n *ngFor="let item of group[groupitems]"\r\n [ngValue]="optionvalue ? item[optionvalue] : item"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label="label">\r\n {{label}}\r\n</ng-template>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:hn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return hn}))}]}]}],hn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.Renderer2},{type:t.ElementRef}]};var yn=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacDropdownOptionCommon);yn.decorators=[{type:t.Directive,args:[{selector:"[sacOption],option"}]}],yn.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:hn,decorators:[{type:t.Optional},{type:t.Host}]}]};var Cn=function(){};Cn.decorators=[{type:t.NgModule,args:[{declarations:[hn,yn],imports:[e.CommonModule,D],exports:[hn,yn]}]}];var Sn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacListboxCommon);Sn.decorators=[{type:t.Component,args:[{selector:"sac-listbox",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <select\r\n multiple\r\n id="{{name}}"\r\n name="{{name}}"\r\n class="form-control"\r\n [size]="rowsize"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (change)="getSelectedItems($event.target)"\r\n [disabled]="isdisabled"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf="groupitems === \'\'">\r\n <option\r\n *ngFor="let option of options"\r\n [value]="option[optionvalue]"\r\n [disabled]="optionenabled !== \'\' && option[optionenabled] === false"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf="groupitems !== \'\'">\r\n <optgroup\r\n *ngFor="let option of options"\r\n [attr.label]="option[grouplabel]"\r\n >\r\n <option\r\n *ngFor="let item of option[groupitems]"\r\n [value]="item[optionvalue]"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Sn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return Sn}))}]}]}],Sn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var xn=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e}(a.SacListboxOptionCommon);xn.decorators=[{type:t.Directive,args:[{selector:"[sacOption],option"}]}],xn.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:Sn,decorators:[{type:t.Optional},{type:t.Host}]}]};var In=function(){};In.decorators=[{type:t.NgModule,args:[{declarations:[Sn,xn],imports:[e.CommonModule,D],exports:[Sn,xn]}]}];var wn=function(n){function e(e,r){var t=n.call(this,e,r)||this;return t.IconType=a.IconType,t}return m(e,n),e}(a.SacMultilanguageInputCommon);wn.decorators=[{type:t.Component,args:[{selector:"sac-multilanguageinput",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <input\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="LanguageValue"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="SetLanguageValue($event.target.value)"\r\n [attr.maxlength]="maxlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n />\r\n <div\r\n placement="bottom-right"\r\n class="input-group-append"\r\n sac-multilanguagemenu\r\n [buttontemplate]="menuButton"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]="name + \'_dropdownitem\'"\r\n type="button"\r\n class="btn dropdown-toggle"\r\n (click)="contextmenu.toggle()"\r\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']"\r\n >\r\n <img\r\n src="{{SelectedIcon}}"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.Image"\r\n />\r\n <span\r\n [ngClass]="SelectedIcon"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.CssSprite"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor="let sprache of Languages">\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.Image"\r\n text="{{sprache.Text}}"\r\n image="{{sprache.Icon}}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\': \'\'"\r\n (clicked)="SelectLanguage(sprache)"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.CssSprite"\r\n text="{{sprache.Text}}"\r\n icon="{{sprache.Icon}}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\': \'\'"\r\n (clicked)="SelectLanguage(sprache)"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class="row">\r\n <div class="col text-right"></div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:wn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return wn}))}]}]}],wn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var Hn=function(n){function e(e,r){var t=n.call(this,e,r)||this;return t.IconType=a.IconType,t}return m(e,n),e}(a.SacMultilanguageInputAreaCommon);Hn.decorators=[{type:t.Component,args:[{selector:"sac-multilanguageinputarea",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n <textarea\r\n id="{{name}}"\r\n name="{{name}}"\r\n type="text"\r\n class="form-control"\r\n [value]="LanguageValue"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n style="height: auto"\r\n (input)="SetLanguageValue($event.target.value)"\r\n [attr.rows]="rows"\r\n [attr.maxlength]="maxlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n ></textarea>\r\n\r\n <div\r\n placement="bottom-right"\r\n class="input-group-append"\r\n sac-multilanguagemenu\r\n [buttontemplate]="menuButton"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]="name + \'_dropdownitem\'"\r\n type="button"\r\n class="btn dropdown-toggle"\r\n (click)="contextmenu.toggle()"\r\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']"\r\n >\r\n <img\r\n src="{{SelectedIcon}}"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.Image"\r\n />\r\n <i\r\n [ngClass]="SelectedIcon"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.CssSprite"\r\n ></i>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor="let sprache of Languages">\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.Image"\r\n text="{{sprache.Text}}"\r\n image="{{sprache.Icon}}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\': \'\'"\r\n (clicked)="SelectLanguage(sprache)"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.CssSprite"\r\n text="{{sprache.Text}}"\r\n icon="{{sprache.Icon}}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\': \'\'"\r\n (clicked)="SelectLanguage(sprache)"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class="row">\r\n <div class="col text-right"></div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Hn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return Hn}))}]}]}],Hn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var kn=function(n){function e(e,r,t,o,a){return n.call(this,e,r,t,o,a)||this}return m(e,n),e}(a.SacContextmenuCommon);kn.decorators=[{type:t.Component,args:[{selector:"[sac-multilanguagemenu]",template:'<ng-container\r\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\r\n></ng-container>\r\n\r\n<div\r\n class="dropdown-menu dropdown-menu-right"\r\n sacMultilanguageMenuContainer\r\n [class.show]="isopen"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n class="btn btn-secondary dropdown-toggle"\r\n type="button"\r\n (click)="toggle()"\r\n ></button>\r\n</ng-template>\r\n',providers:[{provide:a.SacContextmenuCommon,useExisting:t.forwardRef((function(){return kn}))}]}]}],kn.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[e.DOCUMENT]}]},{type:t.NgZone},{type:t.ElementRef},{type:t.Renderer2},{type:t.Injector}]};var En=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextmenuAnchorCommon);En.decorators=[{type:t.Directive,args:[{selector:"[sacMultilanguageMenuAnchor]",providers:[{provide:a.SacContextmenuAnchorCommon,useExisting:t.forwardRef((function(){return En}))}]}]}],En.ctorParameters=function(){return[{type:t.ElementRef}]};var Ln=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextMenuContrainerCommon);Ln.decorators=[{type:t.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:t.forwardRef((function(){return Ln}))}]}]}],Ln.ctorParameters=function(){return[{type:t.ElementRef}]};var An=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextmenuItemButtonCommon);An.decorators=[{type:t.Component,args:[{selector:"sac-multilanguagemenubutton",template:'<button\r\n type="button"\r\n class="dropdown-item"\r\n (click)="callaction($event)"\r\n [class.disabled]="isdisabled"\r\n [ngClass]="cssclass"\r\n [attr.disabled]="isdisabled ? \'disabled\' : null"\r\n>\r\n <div class="d-flex">\r\n <div *ngIf="!isicondisabled" style="min-width: 1.5rem">\r\n <img *ngIf="image" [src]="image" class="align-baseline" />\r\n <i *ngIf="icon" [class]="iconstyle + \' \' + icon"></i>\r\n </div>\r\n <div class="flex-grow-1">{{ text }}</div>\r\n </div>\r\n</button>\r\n'}]}],An.ctorParameters=function(){return[{type:a.SacContextmenuCommon}]};var Mn=function(){};Mn.decorators=[{type:t.NgModule,args:[{declarations:[wn,Hn,kn,En,Ln,An],imports:[e.CommonModule,D],exports:[wn,Hn]}]}];var Rn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacStaticFormContainerCommon);Rn.decorators=[{type:t.Component,args:[{selector:"sac-staticformcontainer",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <ng-content></ng-content>\r\n <label\r\n for="{{name}}"\r\n class="form-label-adaptive form-label-fixed"\r\n [ngClass]="{ \'required\': isrequired }"\r\n *ngIf="isAdaptiveLabel && !disablelabel"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Rn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return Rn}))}]}]}],Rn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var zn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacStaticLabelCommon);zn.decorators=[{type:t.Component,args:[{selector:"sac-staticlabel",template:'<div class="row form-group" [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{name}}_label"\r\n for="{{name}}"\r\n class="col-12 col-form-label"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}</label\r\n >\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <div\r\n class="form-control-plaintext"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [innerHTML]="value"\r\n ></div>\r\n <label\r\n for="{{name}}"\r\n class="col-left control-label"\r\n *ngIf="isAdaptiveLabel && !disablelabel"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:zn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:t.forwardRef((function(){return zn}))}]}]}],zn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var _n=function(){};_n.decorators=[{type:t.NgModule,args:[{declarations:[zn,Rn],imports:[e.CommonModule,D],exports:[zn,Rn]}]}];var On=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacTabItemCommon);On.decorators=[{type:t.Component,args:[{selector:"sac-tabitem",template:'<div [id]="id" [hidden]="unloadwhenhidden === false && active === false" *ngIf="(unloadwhenhidden === true && active === true) || unloadwhenhidden === false" class="tab-pane">\r\n <ng-template [ngTemplateOutlet]="templateRef"></ng-template>\r\n</div>\r\n'}]}];var Nn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e.prototype.tabItems=function(){return this._tabItems.toArray()},e}(a.SacTabCommon);Nn.decorators=[{type:t.Component,args:[{selector:"sac-tab",template:'\x3c!-- Nav tabs --\x3e\r\n<div class="nav nav-tabs" role="tablist">\r\n <a\r\n *ngFor="let item of _tabItems"\r\n role="tab"\r\n class="nav-item nav-link active"\r\n data-toggle="tab"\r\n [ngClass]="{ \'active show\': item.active, \'disabled\': item.disabled }"\r\n (click)="selectTab(item)"\r\n [ngStyle]="{\'cursor\': item.disabled ? \'not-allowed\' : \'pointer\'}"\r\n >{{item.label}}</a\r\n >\r\n</div>\r\n\r\n\x3c!-- Tab panes --\x3e\r\n<div class="tab-content pl-3 pt-2">\r\n <ng-content></ng-content>\r\n</div>\r\n'}]}],Nn.propDecorators={_tabItems:[{type:t.ContentChildren,args:[On]}]};var Tn=function(){};Tn.decorators=[{type:t.NgModule,args:[{declarations:[Nn,On],imports:[e.CommonModule],exports:[Nn,On]}]}];var Gn=function(n){function e(e,r,t){return n.call(this,e,r,t)||this}return m(e,n),e.prototype.overwriteDefaultSettings=function(){return{}},e}(a.SacTinyMceCommon);Gn.decorators=[{type:t.Component,args:[{selector:"sac-tinymce",template:'<div class="form-row form-group">\r\n <div\r\n class="col"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >\r\n <label for="{{name}}" class="form-control-label">{{label}}</label>\r\n </div>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n >\r\n <editor\r\n [id]="name + \'_tinymce\'"\r\n [init]="_config"\r\n [initialValue]="value"\r\n ngModel\r\n [ngModelOptions]="{standalone: true}"\r\n (ngModelChange)="setValue($event)"\r\n (onSaveContent)="save($event.event.content)"\r\n [disabled]="disabled"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)"\r\n ></editor>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf="selectdialogvisible"\r\n [allowesc]="false"\r\n [backdrop]="true"\r\n [(isvisible)]="selectdialogvisible"\r\n title="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}"\r\n size="large"\r\n height="500px"\r\n>\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]="filebrowserapiurl"\r\n (file)="selectDialogSettings.value = $event"\r\n [allowfoldercreate]="allowfoldercreate"\r\n [allowfolderrename]="allowfolderrename"\r\n [allowfolderdelete]="allowfolderdelete"\r\n [allowfileupload]="allowfileupload"\r\n [allowfilerename]="allowfilerename"\r\n [allowfiledelete]="allowfiledelete"\r\n [selectedfile]="selectDialogSettings.value"\r\n [allowedtypes]="selectDialogSettings.allowedtypes"\r\n ></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role="primary"\r\n [name]="name + \'_modalOk\'"\r\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}"\r\n (clicked)="setSelectDialogResult()"\r\n ></sac-button>\r\n <sac-button\r\n [name]="name + \'_modalClose\'"\r\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}"\r\n (clicked)="closeSelectDialog()"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Gn},{provide:o.NG_VALIDATORS,useExisting:t.forwardRef((function(){return Gn})),multi:!0}],styles:[".is-invalid{border:1px solid var(--red)}"]}]}],Gn.ctorParameters=function(){return[{type:_,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector},{type:t.NgZone}]};var Dn=function(){};Dn.decorators=[{type:t.NgModule,args:[{declarations:[Gn],imports:[e.CommonModule,o.FormsModule,d.EditorModule,D,v,h,W],exports:[Gn]}]}];var Fn=function(n){function e(e,r){return n.call(this,e,r)||this}return m(e,n),e}(a.SacValidationSummaryCommon);Fn.decorators=[{type:t.Component,args:[{selector:"sac-validationsummary",template:'<div class="alert alert-danger" role="alert" *ngIf="hasErrors">\r\n <ul class="mb-0">\r\n <li *ngFor="let error of formErrors">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Fn}]}]}],Fn.ctorParameters=function(){return[{type:L,decorators:[{type:t.Host},{type:t.Optional}]},{type:t.Injector}]};var Pn=function(){};Pn.decorators=[{type:t.NgModule,args:[{declarations:[Fn],imports:[e.CommonModule],exports:[Fn]}]}];var Vn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e}(a.SacWizardItemCommon);Vn.decorators=[{type:t.Component,args:[{selector:"sac-wizarditem",template:""}]}];var jn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return m(e,n),e.prototype.wizardItems=function(){return this._wizardItems},e}(a.SacWizardCommon);jn.decorators=[{type:t.Component,args:[{selector:"sac-wizard",template:'<ul class="nav nav-wizard" role="tablist">\r\n <li *ngFor="let item of _wizardItems" class="nav-item" [ngClass]="{ \'active\': item._active, \'disabled\': item._disabled, \'success\': item._iscomplete }"\r\n [ngStyle]="{\'cursor\': item._disabled ? \'not-allowed\' : \'pointer\'}">\r\n <a role="tab" (click)="selectStep(item)">\r\n <div class="circle">\r\n <span class="step"></span>\r\n </div>\r\n </a>\r\n <div class="info">\r\n <a (click)="selectStep(item)">{{item._label}}</a>\r\n </div>\r\n </li>\r\n</ul>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:jn}]}]}],jn.propDecorators={_wizardItems:[{type:t.ContentChildren,args:[Vn]}]};var Bn=function(){};Bn.decorators=[{type:t.NgModule,args:[{declarations:[jn,Vn],imports:[e.CommonModule],exports:[jn,Vn]}]}],n.SACBootstrap4BrowserModule=W,n.SACBootstrap4ButtonModule=v,n.SACBootstrap4CheckboxModule=X,n.SACBootstrap4ConfirmModule=S,n.SACBootstrap4ContextmenuModule=E,n.SACBootstrap4DateTimeModule=nn,n.SACBootstrap4DialogModule=h,n.SACBootstrap4DropdownModule=Cn,n.SACBootstrap4FormModule=z,n.SACBootstrap4GridModule=sn,n.SACBootstrap4InputModule=fn,n.SACBootstrap4LayoutModule=D,n.SACBootstrap4ListModule=In,n.SACBootstrap4MultilanguageModule=Mn,n.SACBootstrap4StaticLabelModule=_n,n.SACBootstrap4TabsModule=Tn,n.SACBootstrap4TinyMceModule=Dn,n.SACBootstrap4UploadModule=B,n.SACBootstrap4ValidationSummaryModule=Pn,n.SACBootstrap4WizardModule=Bn,n.SacFormDirective=L,n.ServiceConfirm=C,n.ɵa=U,n.ɵb=F,n.ɵba=Y,n.ɵbb=Z,n.ɵbc=en,n.ɵbd=tn,n.ɵbe=on,n.ɵbf=ln,n.ɵbg=rn,n.ɵbh=an,n.ɵbi=cn,n.ɵbj=dn,n.ɵbk=pn,n.ɵbl=un,n.ɵbm=gn,n.ɵbn=mn,n.ɵbo=bn,n.ɵbp=vn,n.ɵbq=hn,n.ɵbr=yn,n.ɵbs=Sn,n.ɵbt=xn,n.ɵbu=wn,n.ɵbv=Hn,n.ɵbw=kn,n.ɵbx=En,n.ɵby=Ln,n.ɵbz=An,n.ɵc=_,n.ɵca=zn,n.ɵcb=Rn,n.ɵcc=Nn,n.ɵcd=On,n.ɵce=Gn,n.ɵcf=Fn,n.ɵcg=jn,n.ɵch=Vn,n.ɵd=y,n.ɵe=f,n.ɵf=b,n.ɵg=x,n.ɵh=I,n.ɵi=w,n.ɵj=H,n.ɵk=k,n.ɵl=V,n.ɵm=j,n.ɵn=P,n.ɵo=O,n.ɵp=N,n.ɵq=T,n.ɵr=G,n.ɵs=A,n.ɵt=M,n.ɵu=R,n.ɵv=$,n.ɵw=q,n.ɵx=K,n.ɵy=Q,n.ɵz=J,Object.defineProperty(n,"__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("angular-imask"),require("moment"),require("@tinymce/tinymce-angular")):"function"==typeof define&&define.amd?define("@simpleangularcontrols/sac-bootstrap4",["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-bootstrap4"]={}),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,r,o,l,a,s,i,c,d){"use strict";function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=p(c),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 h=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacButtonCommon);h.decorators=[{type:r.Component,args:[{selector:"sac-button",template:'<button\r\n [id]="name"\r\n type="button"\r\n class="btn d-flex justify-content-center align-items-center"\r\n [attr.disabled]="_isdisabled || isloading ? \'disabled\' : null"\r\n (click)="buttonClick()"\r\n [class.btn-primary]="role === \'primary\'"\r\n [class.btn-secondary]="role === \'secondary\' || role === \'default\'"\r\n [class.btn-success]="role === \'success\'"\r\n [class.btn-danger]="role === \'danger\'"\r\n [class.btn-warning]="role === \'warning\'"\r\n [class.btn-info]="role === \'info\'"\r\n [class.btn-link]="role === \'link\'"\r\n>\r\n <span\r\n *ngIf="isloading"\r\n class="spinner-border spinner-border-sm mr-2"\r\n role="status"\r\n aria-hidden="true"\r\n ></span>\r\n <i *ngIf="!isloading && icon !== \'\'" [ngClass]="icon" [class.mr-2]="text"></i\r\n >{{text}}\r\n</button>\r\n'}]}];var f=function(){};f.decorators=[{type:r.NgModule,args:[{declarations:[h],imports:[n.CommonModule],exports:[h]}]}];var b=function(e){function n(n,t){var r=e.call(this,t)||this;return r.element=n.nativeElement,r}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}(l.SacDialogCommon);b.decorators=[{type:r.Component,args:[{selector:"sac-dialog",template:'<div\r\n #dialog\r\n class="modal show"\r\n style="display: block"\r\n tabindex="-1"\r\n role="dialog"\r\n *ngIf="_show"\r\n>\r\n <div\r\n class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable"\r\n role="document"\r\n [class.modal-xl]="_size === \'extralarge\'"\r\n [class.modal-lg]="_size === \'large\'"\r\n [class.modal-sm]="_size === \'small\'"\r\n >\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h5 class="modal-title">{{title}}</h5>\r\n <button\r\n type="button"\r\n class="close"\r\n data-dismiss="modal"\r\n aria-label="Close"\r\n (click)="hide()"\r\n *ngIf="closebutton"\r\n >\r\n <span aria-hidden="true">&times;</span>\r\n </button>\r\n </div>\r\n <div class="modal-body">\r\n <ng-content select="[dialogbody]"></ng-content>\r\n </div>\r\n <div class="modal-footer">\r\n <ng-content select="[dialogfooter]"></ng-content>\r\n </div>\r\n </div>\r\n \x3c!-- /.modal-content --\x3e\r\n </div>\r\n \x3c!-- /.modal-dialog --\x3e\r\n</div>\r\n\x3c!-- /.modal --\x3e\r\n<div class="modal-backdrop show" *ngIf="_show && backdrop" #backdrop></div>\r\n'}]}],b.ctorParameters=function(){return[{type:r.ElementRef},{type:r.ChangeDetectorRef}]};var v=function(){};v.decorators=[{type:r.NgModule,args:[{declarations:[b],imports:[n.CommonModule],exports:[b]}]}];var x=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacConfirmCommon);x.decorators=[{type:r.Component,args:[{selector:"sac-confirm",template:'<sac-dialog\r\n name="confirmDialog"\r\n [(isvisible)]="isvisible"\r\n [title]="title"\r\n [allowesc]="false"\r\n [closebutton]="false"\r\n dialogsize="small"\r\n>\r\n <div dialogbody>\r\n <div class="media">\r\n <img\r\n [attr.src]="image"\r\n class="align-self-center mr-3"\r\n *ngIf="hasImage()"\r\n />\r\n <div class="media-body">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor="let button of buttons">\r\n <sac-button\r\n [name]="button.key"\r\n [text]="button.text"\r\n [role]="button.role || \'default\'"\r\n (clicked)="confirm(button.key)"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n'}]}];var y=function(e){function n(n,t,r){var o=e.call(this,t,r)||this;return o.componentFactoryResolver=n,o.buttons=[],o.message="",o.title="",o}return g(n,e),n.prototype.ConfirmMessage=function(n,t,r){var o=this;return void 0===r&&(r=null),this.title=n,this.message=t,l.isDefined(r)?this.buttons=r:(this.buttons=[],a.forkJoin({button_yes:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),button_no:this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo)}).pipe(s.take(1)).subscribe((function(e){o.buttons.push(new l.SacConfirmButton("yes",e.button_yes,"primary")),o.buttons.push(new l.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}(l.ServiceConfirmCommon);y.decorators=[{type:r.Injectable}],y.ctorParameters=function(){return[{type:r.ComponentFactoryResolver,decorators:[{type:r.Inject,args:[r.ComponentFactoryResolver]}]},{type:r.ApplicationRef},{type:r.Injector}]};var C=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[y]}},e}();C.decorators=[{type:r.NgModule,args:[{declarations:[x],imports:[n.CommonModule,v,f],exports:[x],entryComponents:[x]}]}];var S=function(e){function n(n,t,r,o,l){return e.call(this,n,t,r,o,l)||this}return g(n,e),n}(l.SacContextmenuCommon);S.decorators=[{type:r.Component,args:[{selector:"sac-contextmenu",template:'<div class="dropdown" [ngClass]="cssclass">\r\n <ng-container\r\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\r\n ></ng-container>\r\n\r\n <div\r\n class="dropdown-menu dropdown-menu-right"\r\n sacContextMenuContainer\r\n [class.show]="isopen"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacContextMenuAnchor\r\n class="btn btn-sm btn-link text-secondary text-decoration-none"\r\n type="button"\r\n (click)="toggle()"\r\n >\r\n <i [class]="IconContextMenu"></i>\r\n </button>\r\n</ng-template>\r\n'}]}],S.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[n.DOCUMENT]}]},{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:r.Injector}]};var I=function(e){function n(){return e.call(this)||this}return g(n,e),n}(l.SacContextmenuItemButtonCommon);I.decorators=[{type:r.Component,args:[{selector:"sac-contextmenubutton",template:'<button\r\n [id]="name"\r\n type="button"\r\n class="dropdown-item"\r\n (click)="callaction($event)"\r\n [class.disabled]="isdisabled"\r\n [ngClass]="cssclass"\r\n [attr.disabled]="isdisabled ? \'disabled\' : null">\r\n <div class="d-flex">\r\n <div\r\n *ngIf="!isicondisabled"\r\n style="min-width: 1.5rem">\r\n <img\r\n *ngIf="image"\r\n [src]="image"\r\n class="align-baseline" />\r\n <i\r\n *ngIf="icon"\r\n [class]="iconstyle + \' \' + icon"></i>\r\n </div>\r\n <div class="flex-grow-1">{{ text }}</div>\r\n </div>\r\n</button>\r\n',providers:[{provide:l.SacContextmenuItemCommon,useExisting:r.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}(l.SacContextmenuItemCommon);w.decorators=[{type:r.Component,args:[{selector:"sac-contextmenusplitter",template:'<div class="dropdown-divider"></div>',providers:[{provide:l.SacContextmenuItemCommon,useExisting:r.forwardRef((function(){return w}))}]}]}];var H=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(l.SacContextmenuAnchorCommon);H.decorators=[{type:r.Directive,args:[{selector:"[sacContextMenuAnchor]",providers:[{provide:l.SacContextmenuAnchorCommon,useExisting:r.forwardRef((function(){return H}))}]}]}],H.ctorParameters=function(){return[{type:r.ElementRef}]};var T=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(l.SacContextMenuContrainerCommon);T.decorators=[{type:r.Directive,args:[{selector:"[sacContextMenuContainer]",providers:[{provide:l.SacContextMenuContrainerCommon,useExisting:r.forwardRef((function(){return T}))}]}]}],T.ctorParameters=function(){return[{type:r.ElementRef}]};var k=function(){};k.decorators=[{type:r.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}(l.SacFormCommon);E.decorators=[{type:r.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],E.ctorParameters=function(){return[{type:o.NgForm}]},E.propDecorators={cssClassForm:[{type:r.HostBinding,args:["class.form"]}]};var A=function(e){function n(n){return e.call(this,n.get(o.NgForm))||this}return g(n,e),n}(l.SacFormCommon);function L(e){return e}function R(e){return e}A.decorators=[{type:r.Directive,args:[{selector:"[sacInheritForm]",exportAs:"sacinheritform",providers:[{provide:E,useFactory:R,deps:[[new r.SkipSelf,E]]},{provide:o.ControlContainer,useFactory:L,deps:[o.NgForm]}]}]}],A.ctorParameters=function(){return[{type:r.Injector}]};var M=function(){};M.decorators=[{type:r.NgModule,args:[{declarations:[E,A],imports:[n.CommonModule,o.FormsModule],exports:[E,A]}]}];var P=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacFormLayoutCommon);P.decorators=[{type:r.Directive,args:[{selector:"[sacFormLayout]"}]}];var z=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case l.ControlHeight.Small:return"form-control-sm";case l.ControlHeight.Large:return"form-control-lg";default:return""}},e}();z.decorators=[{type:r.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)),n.join(" ")},e.prototype.calcControlSize=function(e){return 12===e?12:e?12-e:12},e}();_.decorators=[{type:r.Pipe,args:[{name:"toControlWidthCss"}]}];var O=function(){function e(){}return e.prototype.transform=function(e){if(!e)return"";switch(e){case l.ControlHeight.Small:return"col-form-label-sm";case l.ControlHeight.Large:return"col-form-label-lg";default:return""}},e}();O.decorators=[{type:r.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),n.join(" ")},e}();G.decorators=[{type:r.Pipe,args:[{name:"toLabelWidthCss"}]}];var N=function(){};N.decorators=[{type:r.NgModule,args:[{declarations:[P,z,_,O,G],imports:[n.CommonModule],exports:[P,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 2},n}(l.SacTooltipCommon);D.decorators=[{type:r.Component,args:[{selector:"sac-tooltip",template:'<div [style.display]="inlinemode ? \'inline\' : null">\r\n <div\r\n #container\r\n (mouseenter)="ShowTooltip()"\r\n (mouseleave)="HideTooltip()"\r\n [style.display]="inlinemode ? \'inline\' : null"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n <div #tooltip *ngIf="IsTooltipVisible()">\r\n <div\r\n [class.show]="IsTooltipContentVisible"\r\n class="tooltip bs-tooltip-auto fade"\r\n style="position: absolute"\r\n [style.left.px]="LeftPos"\r\n [style.top.px]="TopPos"\r\n [class.top]="GetTooltipPosition() === TooltipPosition.top"\r\n [class.left]="GetTooltipPosition() === TooltipPosition.left"\r\n [class.right]="GetTooltipPosition() === TooltipPosition.right"\r\n [class.bottom]="GetTooltipPosition() === TooltipPosition.bottom"\r\n [attr.x-placement]="GetTooltipPosition() == TooltipPosition.right ? \'right\' : GetTooltipPosition() == TooltipPosition.left ? \'left\' : GetTooltipPosition() == TooltipPosition.top ? \'top\' :GetTooltipPosition() == TooltipPosition.bottom ? \'bottom\' : null"\r\n >\r\n <div\r\n class="arrow"\r\n style="position: absolute"\r\n [style.top.px]="GetTooltipPosition() === TooltipPosition.left || GetTooltipPosition() === TooltipPosition.right ? (getToolTipHeight() / 2) - 6.5 : null"\r\n [style.left.px]="GetTooltipPosition() === TooltipPosition.bottom || GetTooltipPosition() === TooltipPosition.top ? (getToolTipWidth() / 2) - 6.5 : null"\r\n ></div>\r\n <div class="tooltip-inner">{{tooltiptext}}</div>\r\n </div>\r\n </div>\r\n</div>\r\n'}]}],D.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:r.ElementRef}]};var F=function(){};F.decorators=[{type:r.NgModule,args:[{declarations:[D],imports:[n.CommonModule],exports:[D]}]}];var V=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(l.SacDropzoneMultipleCommon);V.decorators=[{type:r.Component,args:[{selector:"sac-dropzonemultiple",template:'<div\r\n id="{{ name }}"\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}_uploadinput"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="dropzone d-flex justify-content-center position-relative"\r\n (drop)="dropHandler($event)"\r\n (dragover)="onDragOver($event)"\r\n (dragleave)="onDragLeave($event)"\r\n [class.active]="active"\r\n [style.min-height]="uploadheight"\r\n [class.is-invalid]="invalid && (dirty || touched)">\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length === 0">\r\n <div class="align-self-center text-center">\r\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length > 0">\r\n <div class="align-self-center progress-container">\r\n <div\r\n class="dropzone-uploadstates"\r\n [class.mt-1]="i > 0"\r\n *ngFor="let file of uploads; let i = index">\r\n <div\r\n class="input-group upload-component upload-component-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\r\n <div class="form-control upload-progress border-secondary">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress === 100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress">\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <a\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [class]="IconDelete"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id="{{ name }}_uploadinput"\r\n type="file"\r\n class="custom-file-input"\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n [disabled]="HasQueueItem()" />\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:V},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.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(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]}]}],V.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var B=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n}(l.SacDropzoneSingleCommon);B.decorators=[{type:r.Component,args:[{selector:"sac-dropzonesingle",template:'<div\r\n id="{{ name }}"\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}_uploadinput"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="dropzone d-flex justify-content-center position-relative"\r\n (drop)="dropHandler($event)"\r\n (dragover)="onDragOver($event)"\r\n (dragleave)="onDragLeave($event)"\r\n [style.min-height]="uploadheight"\r\n [class.active]="active"\r\n [class.is-invalid]="invalid && (dirty || touched)">\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length === 0">\r\n <div class="align-self-center text-center">\r\n <div [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class="content d-flex justify-content-center"\r\n *ngIf="uploads.length > 0">\r\n <div class="align-self-center progress-container">\r\n <div\r\n class="dropzone-uploadstates"\r\n *ngFor="let file of uploads">\r\n <div\r\n class="input-group upload-component upload-component-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\r\n <div class="form-control upload-progress border-secondary">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress === 100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress">\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <a\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [class]="IconDelete"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id="{{ name }}_uploadinput"\r\n type="file"\r\n class="custom-file-input"\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n [disabled]="HasQueueItem()" />\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:B},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.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(--red)}.dropzone .content{bottom:0;left:0;position:absolute;right:0;top:0}.dropzone .content .is-invalid{color:var(--red)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0;height:100%}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;position:absolute;right:0}.dropzone .custom-file-input{height:unset;min-height:100%}"]}]}],B.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var j=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacUploadSingleCommon);j.decorators=[{type:r.Component,args:[{selector:"sac-upload",template:'<div\r\n id="{{ name }}"\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}_uploadinput"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group upload-component upload-single"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <div class="input-group-prepend">\r\n \x3c!-- image-preview-input --\x3e\r\n <div\r\n class="btn upload-input custom-file"\r\n [class.disabled]="HasQueueItem()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <i\r\n class="pr-2"\r\n [ngClass]="IconBrowse"></i>\r\n <span class="upload-browse">{{ lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async }}</span>\r\n <input\r\n type="file"\r\n id="{{ name }}_uploadinput"\r\n class="custom-file-input"\r\n #files\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n multiple\r\n [disabled]="HasQueueItem()" />\r\n </div>\r\n </div>\r\n <div\r\n class="form-control upload-progress"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [class.is-invalid]="invalid && (dirty || touched)">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="Progress() === 100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="Progress()"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="Progress()">\r\n <span class="progress-text text-dark">{{ Filename() | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \x3c!-- <input type="textimage-preview-filename" class="form-control image-preview-filename" disabled="disabled"> --\x3e\x3c!-- don\'t give a name === doesn\'t send on POST/GET --\x3e\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancelAll()"\r\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\r\n class="btn"\r\n (click)="pauseAll()"\r\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && IsPaused()"\r\n class="btn"\r\n (click)="uploadAll()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="uploadAll()"\r\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span\r\n [ngClass]="IconUpload"\r\n class="pr-2"></span\r\n >{{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:j},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return j}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]}]}],j.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var W=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacUploadMultipleCommon);W.decorators=[{type:r.Component,args:[{selector:"sac-uploadmultiple",template:'<div\r\n id="{{ name }}"\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}_uploadinput"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\r\n <div class="upload-component">\r\n <div class="row">\r\n <div class="col-12">\r\n <div\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <div\r\n class="btn-group"\r\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.btn-group-lg]="componentHeight === ControlHeight.Large">\r\n <div\r\n class="btn upload-input custom-file"\r\n [class.disabled]="maxfiles > 0 && uploads.length >= maxfiles"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <i\r\n [ngClass]="IconBrowse"\r\n class="pr-2"></i>\r\n <span class="upload-browse">Browse</span>\r\n <input\r\n type="file"\r\n id="{{ name }}_uploadinput"\r\n class="custom-file-input"\r\n #files\r\n (click)="files.value = \'\'"\r\n (uploadxState)="onUpload($event)"\r\n multiple\r\n [disabled]="maxfiles > 0 && uploads.length >= maxfiles" />\r\n </div>\r\n\r\n <div\r\n class="btn-group"\r\n [class.btn-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.btn-group-lg]="componentHeight === ControlHeight.Large">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancelAll()"\r\n [attr.disabled]="HasQueueItem() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)"\r\n class="btn"\r\n (click)="pauseAll()"\r\n [attr.disabled]="IsUploading() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && IsPaused() === true"\r\n class="btn"\r\n (click)="uploadAll()"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [ngClass]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="uploadAll()"\r\n [attr.disabled]="IsStateToUpload() === false ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span\r\n [ngClass]="IconUpload"\r\n class="pr-2"></span>\r\n {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor="let file of uploads"\r\n style="margin-top: 5px">\r\n <div\r\n class="input-group upload-component upload-multiple"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\r\n <div\r\n class="form-control upload-progress"\r\n [class.is-invalid]="invalid && (dirty || touched)">\r\n <div class="progress">\r\n <div\r\n class="progress-bar"\r\n [class.progress-bar-success]="file.progress === 100"\r\n role="progressbar"\r\n [attr.aria-valuenow]="file.progress"\r\n aria-valuemin="0"\r\n aria-valuemax="100"\r\n [style.width.%]="file.progress">\r\n <span class="progress-text text-dark">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="input-group-append">\r\n \x3c!-- image-preview-clear button --\x3e\r\n <button\r\n class="btn"\r\n (click)="cancel(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [class]="IconDelete"></span>\r\n </button>\r\n <button\r\n *ngIf="(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== \'paused\')"\r\n class="btn"\r\n (click)="pause(file.uploadId)"\r\n [attr.disabled]="file.status !== \'uploading\' ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [class]="IconPause"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload && enablepause && file.status === \'paused\'"\r\n class="btn"\r\n (click)="upload(file.uploadId)"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span [class]="IconContinue"></span>\r\n </button>\r\n <button\r\n *ngIf="autoupload === false"\r\n class="btn text-nowrap"\r\n (click)="upload(file.uploadId)"\r\n [attr.disabled]="file.status !== \'added\' && file.status !== \'paused\' ? \'disabled\' : null"\r\n [class.btn-secondary]="!(invalid && (dirty || touched))"\r\n [class.btn-danger]="invalid && (dirty || touched)">\r\n <span\r\n [class]="IconUpload"\r\n class="pr-2"></span\r\n >{{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:W},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return W}))}],styles:[".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]}]}],W.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var U=function(){};U.decorators=[{type:r.NgModule,args:[{declarations:[j,W,B,V],imports:[n.CommonModule,o.FormsModule,N,F],exports:[j,W,B,V]}]}];var q=function(e){function n(n,t,r){var o=e.call(this,n,t)||this;return o.confirmService=r,o}return g(n,e),n.prototype.confirmDeleteFile=function(e){var n=this;return new a.Observable((function(e){a.forkJoin({title:n.lngResourceService.GetString(n.validationKeyService.FilebrowserButtonDelete),message:n.lngResourceService.GetString(n.validationKeyService.FilebrowserConfirmTextDeleteFile)}).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 a.Observable((function(e){a.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}(l.SacFileBrowserCommon);q.decorators=[{type:r.Component,args:[{selector:"sac-filebrowser",template:'<div class="row">\r\n <div class="col-12 col-md-5 col-lg-4">\r\n <ul class="list-group list-group-flush">\r\n <ng-template\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{node: rootNode, deep: 0}"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node="node" let-deep="deep">\r\n <li\r\n class="list-group-item py-1 px-2 d-flex align-items-center"\r\n [class.list-group-item-secondary]="node === selectedNode"\r\n (click)="selectNode(node)"\r\n style="cursor: pointer"\r\n >\r\n <div class="mx-3" *ngFor="let i of count(deep)"></div>\r\n <div\r\n (click)="switchExpandNode(node);$event.stopPropagation();"\r\n class="mr-2"\r\n [ngClass]="node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : \'\'))"\r\n ></div>\r\n <ng-container *ngIf="!node.IsEditMode">\r\n <div class="flex-grow-1">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf="node.IsEditMode">\r\n <div class="flex-grow-1" ngForm>\r\n <input\r\n name="editFolder"\r\n class="form-control form-control-sm"\r\n [ngModel]="node.Name"\r\n [ngModelOptions]="{updateOn: \'blur\'}"\r\n (ngModelChange)="renameNode(node, $event)"\r\n (keydown.enter)="$event.target.blur();false;"\r\n (blur)="renameNode(node, null)"\r\n (click)="$event.stopPropagation()"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class="flex-shrink-0">\r\n <a\r\n *ngIf="node.Path !== \'/\' && allowfolderrename"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="editNode(node);$event.stopPropagation();"\r\n >\r\n <i [class]="iconEdit"></i>\r\n </a>\r\n <sac-contextmenu cssclass="d-inline-block">\r\n <sac-contextmenubutton\r\n *ngIf="allowfoldercreate"\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonNewFolder) | async }}"\r\n [icon]="iconFolderNew"\r\n (clicked)="newNode(node)"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf="node.Path !== \'/\' && allowfolderdelete"\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonDelete) | async }}"\r\n [icon]="iconDelete"\r\n (clicked)="deleteNode(node)"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf="allowfoldercreate || (node.Path !== \'/\' && allowfolderdelete)"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text="{{ lngResourceService.GetString(validationKeyService.FilebrowserButtonRefresh) | async }}"\r\n [icon]="iconRefresh"\r\n (clicked)="refreshNode(node)"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf="node.IsExpanded">\r\n <ng-template\r\n *ngFor="let child of node.ChildNodes"\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{node: child, deep: deep + 1}"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <div class="col-12 col-md-7 col-lg-8">\r\n <ng-container *ngIf="selectedNode && selectedNode.Files">\r\n <div *ngIf="allowfileupload" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]="true"\r\n [endpoint]="apiurl + \'/uploadregister\'"\r\n name="upload"\r\n uploadheight="5rem"\r\n [ngModel]="uploads"\r\n (ngModelChange)="uploadComplete(selectedNode,$event)"\r\n [allowedtypes]="allowedtypes"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.FilebrowserButtonUpload)\r\n | async }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class="table-responsive">\r\n <table class="table table-striped table-hover align-middle">\r\n <thead>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridFilename)\r\n | async }}\r\n </th>\r\n <th>\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridSize)\r\n | async }}\r\n </th>\r\n <th style="width: 80px"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf="selectedNode.Files.length === 0">\r\n <tr>\r\n <td colspan="3">\r\n {{\r\n lngResourceService.GetString(validationKeyService.FilebrowserGridNoFiles)\r\n | async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf="selectedNode.Files.length > 0">\r\n <tr\r\n *ngFor="let item of selectedNode.Files"\r\n (click)="selectFile(item)"\r\n [class.table-primary]="selectedFileItem === item"\r\n >\r\n <td [class.p-2]="item.IsEditMode">\r\n <ng-container *ngIf="!item.IsEditMode">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf="item.IsEditMode">\r\n <div>\r\n <input\r\n name="editFolder"\r\n class="form-control form-control-sm"\r\n [ngModel]="item.Filename"\r\n [ngModelOptions]="{updateOn: \'blur\'}"\r\n (ngModelChange)="renameFile(item, $event)"\r\n (keydown.enter)="$event.target.blur();false"\r\n (blur)="renameFile(item, null)"\r\n (click)="$event.stopPropagation();"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class="p-2">\r\n <div class="btn-toolbar" role="toolbar">\r\n <div class="btn-group ml-auto" role="group">\r\n <a\r\n *ngIf="allowfilerename"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="editFile(item);$event.stopPropagation();"\r\n ><i [class]="iconEdit"></i\r\n ></a>\r\n </div>\r\n <div class="btn-group" role="group">\r\n <a\r\n *ngIf="allowfiledelete"\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="deleteFile(item);$event.stopPropagation();"\r\n ><i [class]="iconDelete"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n',providers:[y]}]}],q.ctorParameters=function(){return[{type:t.HttpClient},{type:r.Injector},{type:y}]},q.propDecorators={uploadComponent:[{type:r.ViewChild,args:[V,{static:!1}]}]};var $=function(){};$.decorators=[{type:r.NgModule,args:[{declarations:[q],imports:[n.CommonModule,t.HttpClientModule,C,k,U,M,o.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}(l.SacCheckboxCommon);K.decorators=[{type:r.Component,args:[{selector:"sac-checkbox",template:'<div\r\n class="row"\r\n [class.no-gutters]="disablelabel"\r\n [class.form-group]="!stacked">\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\']">\r\n <label\r\n *ngIf="!disablelabel && !stacked"\r\n for="{{ name }}"\r\n class="col-form-label d-flex"\r\n [ngClass]="componentHeight | toLabelHeight">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext"\r\n >{{ label }}</div\r\n >\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n </div>\r\n <div\r\n class="align-self-center col-12"\r\n [ngClass]="[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : \'\']">\r\n <div\r\n [class.form-check]="checkboxstyle === \'checkbox\'"\r\n [class.custom-control]="checkboxstyle === \'switch\'"\r\n [class.custom-switch]="checkboxstyle === \'switch\'"\r\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-lg]="componentHeight === ControlHeight.Large">\r\n <input\r\n [class.form-check-input]="checkboxstyle === \'checkbox\'"\r\n [class.custom-control-input]="checkboxstyle === \'switch\'"\r\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="checkbox"\r\n [checked]="value"\r\n (blur)="onTouch()"\r\n (change)="setValue($event.target.checked)"\r\n [disabled]="isdisabled" />\r\n <label\r\n for="{{ name }}"\r\n [class.form-check-label]="checkboxstyle === \'checkbox\'"\r\n [class.custom-control-label]="checkboxstyle === \'switch\'"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\r\n <ng-container *ngIf="checkboxtext">{{ checkboxtext }}</ng-container>\r\n </label>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && (disablelabel || stacked)"\r\n class="ml-2 mr-1 d-inline-block"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:K},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return K})),multi:!0}],styles:[".form-check-lg{padding-left:1.75rem}.form-check-input{height:1rem;width:1rem}.form-check-input-sm{height:.875rem;margin-top:.4rem;width:.875rem}.form-check-input-lg{height:1.25rem;margin-left:-1.75rem;width:1.25rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}"]}]}],K.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var X=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacRadiobuttonsCommon);X.decorators=[{type:r.Component,args:[{selector:"sac-radiobuttons",template:'<div class="row form-group">\r\n <div\r\n *ngIf="disablelabel === false"\r\n class="col-12 pt-0"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\']">\r\n <label\r\n class="col-form-label d-flex"\r\n [ngClass]="componentHeight | toLabelHeight"\r\n *ngIf="!disablelabel">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext"\r\n >{{ label }}</div\r\n >\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n </div>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.pt-1]="componentHeight === ControlHeight.Small"\r\n [class.pt-2]="componentHeight !== ControlHeight.Small">\r\n <ng-content></ng-content>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,useExisting:r.forwardRef((function(){return X})),multi:!0},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return X})),multi:!0}]}]}],X.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Q=function(e){function n(n,t,r){return e.call(this,n,t,r)||this}return g(n,e),n}(l.SacRadiobuttonCommon);Q.decorators=[{type:r.Component,args:[{selector:"sac-radiobutton",template:'<div\r\n class="form-check"\r\n [class.form-check-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-lg]="componentHeight === ControlHeight.Large"\r\n *ngIf="hidden === false">\r\n <input\r\n id="{{ getName }}_{{ getIndex }}"\r\n name="{{ getName }}"\r\n type="radio"\r\n class="form-check-input"\r\n [class.form-check-input-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-input-lg]="componentHeight === ControlHeight.Large"\r\n [value]="value"\r\n [checked]="checked"\r\n (change)="ChangeEvent()"\r\n [disabled]="isDisabled" />\r\n <label\r\n for="{{ getName }}_{{ getIndex }}"\r\n class="form-check-label"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\r\n <ng-template *ngTemplateOutlet="labeltemplate || defaultItemLabelTemplate; context: { label: label }"> </ng-template>\r\n </label>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n class="ml-2 mr-1 d-inline-block"\r\n [class.form-check-label-sm]="componentHeight === ControlHeight.Small"\r\n [class.form-check-label-lg]="componentHeight === ControlHeight.Large">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label="label">\r\n <ng-container>{{ label }}</ng-container>\r\n</ng-template>\r\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:r.Host}]},{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Z=function(){};Z.decorators=[{type:r.NgModule,args:[{declarations:[K,Q,X],imports:[n.CommonModule,N,F],exports:[K,Q,X]}]}];var J=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacDateCommon);J.decorators=[{type:r.Component,args:[{selector:"sac-date",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled" />\r\n <div class="input-group-append">\r\n <button\r\n #pickerbutton\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showDateSelector()"\r\n [disabled]="isdisabled">\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n #picker\r\n *ngIf="_showselector">\r\n <div\r\n class="popover fade show position-absolute m-0"\r\n role="tooltip"\r\n *ngIf="_showselector"\r\n [class.bs-popover-bottom]="GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend"\r\n [class.bs-popover-top]="GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend"\r\n [style.left.px]="posPopupLeft"\r\n [style.top.px]="posPopupTop">\r\n <div\r\n #pickerarrow\r\n class="arrow position-absolute m-0"\r\n style="left: unset"\r\n [style.top.px]="posArrowTop"\r\n [style.left.px]="posArrowLeft">\r\n </div>\r\n\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="dateselect($event)"\r\n dateselection="true"></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return J}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return J}))}]}]}],J.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef},{type:r.ChangeDetectorRef}]};u.default;var Y=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacDateSelectorCommon);Y.decorators=[{type:r.Component,args:[{selector:"sac-dateselector",template:'<div class="calendar-selector">\r\n <div *ngIf="dateselection">\r\n <div class="container">\r\n <div class="row">\r\n <div class="col text-left">\r\n <a (click)="monthBack()"><span [class]="iconMonthPrev"></span></a>\r\n </div>\r\n <div class="col text-center">{{month+1}}/{{year}}</div>\r\n <div class="col text-right">\r\n <a (click)="monthNext()"><span [class]="iconMonthNext"></span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div></div>\r\n <div class="container">\r\n <div class="row">\r\n <ng-container *ngFor="let week of dates; let i=index">\r\n <ng-container *ngFor="let item of week">\r\n <div\r\n class="p-2 col text-center"\r\n [ngStyle]="{\'cursor\': item.isenabled ? \'pointer\' : null}"\r\n [ngClass]="{\'day-current\': item.iscurrent, \'day-selected\': item.isselected, \'day-new\': item.isnew, \'day-disabled\': !item.isenabled}"\r\n (click)="selectDate(item)"\r\n >\r\n {{ item.displaytext }}\r\n </div>\r\n </ng-container>\r\n <div class="w-100"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="d-flex flex-row justify-content-start" *ngIf="timeselection">\r\n <div class="p-2">\r\n <div class="form-group">\r\n <label>Stunde</label>\r\n <input\r\n type="number"\r\n class="form-control form-control-sm"\r\n [value]="getHours()"\r\n (input)="setHours($event.target.value)"\r\n min="0"\r\n max="23"\r\n />\r\n </div>\r\n </div>\r\n <div class="p-2">\r\n <div class="form-group">\r\n <label>Minute</label>\r\n <input\r\n type="number"\r\n class="form-control form-control-sm"\r\n [value]="getMinutes()"\r\n (input)="setMinutes($event.target.value)"\r\n min="0"\r\n max="59"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class="d-flex flex-row">\r\n <div class="mr-auto p-2">\r\n <button type="button" class="btn btn-secondary" (click)="setToday()">\r\n Heute\r\n </button>\r\n </div>\r\n <div class="p-2">\r\n <button\r\n type="button"\r\n class="btn btn-secondary"\r\n (click)="resetSelection()"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n <div class="p-2">\r\n <button type="button" class="btn btn-primary" (click)="applySelection()">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n'}]}];var ee=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacDateTimeCommon);ee.decorators=[{type:r.Component,args:[{selector:"sac-datetime",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled" />\r\n <div class="input-group-append">\r\n <button\r\n #pickerbutton\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showDateSelector()"\r\n [disabled]="isdisabled">\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n\r\n <div\r\n #picker\r\n *ngIf="_showselector"\r\n ><div\r\n class="popover fade show position-absolute m-0"\r\n role="tooltip"\r\n [class.bs-popover-bottom]="GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend"\r\n [class.bs-popover-top]="GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend"\r\n [style.left.px]="posPopupLeft"\r\n [style.top.px]="posPopupTop">\r\n <div\r\n #pickerarrow\r\n class="arrow position-absolute m-0"\r\n style="left: unset"\r\n [style.top.px]="posArrowTop"\r\n [style.left.px]="posArrowLeft">\r\n </div>\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="dateselect($event)"\r\n dateselection="true"\r\n timeselection="true"></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return ee}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return ee}))}]}]}],ee.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef},{type:r.ChangeDetectorRef}]};var ne=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacTimeCommon);ne.decorators=[{type:r.Component,args:[{selector:"sac-time",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [imask]="imaskDate"\r\n [attr.placeholder]="placeholder"\r\n [value]="valuestring"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (accept)="setValueString($event)"\r\n [disabled]="isdisabled" />\r\n <div class="input-group-append">\r\n <button\r\n #pickerbutton\r\n class="btn btn-secondary"\r\n type="button"\r\n (click)="showTimeSelector()"\r\n [disabled]="isdisabled">\r\n <i [class]="IconSelector"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n #picker\r\n *ngIf="_showselector">\r\n <div\r\n class="popover fade show position-absolute m-0"\r\n role="tooltip"\r\n [class.bs-popover-bottom]="GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend"\r\n [class.bs-popover-top]="GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend"\r\n [style.left.px]="posPopupLeft"\r\n [style.top.px]="posPopupTop">\r\n <div\r\n #pickerarrow\r\n class="arrow position-absolute m-0"\r\n style="left: unset"\r\n [style.top.px]="posArrowTop"\r\n [style.left.px]="posArrowLeft">\r\n </div>\r\n\r\n <div class="popover-body">\r\n <sac-dateselector\r\n [initialvalue]="value"\r\n (selectdate)="timeselect($event)"\r\n timeselection="true"></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return ne}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return ne}))}]}]}],ne.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef},{type:r.ChangeDetectorRef}]};var te=function(){};te.decorators=[{type:r.NgModule,args:[{declarations:[J,ee,ne,Y],imports:[n.CommonModule,i.IMaskModule,N,F],exports:[J,ee,ne,Y]}]}];var re=function(e){function n(n,t){var r=e.call(this,n,t)||this;return r.ellipsis=!1,r}return g(n,e),n}(l.SacGridCommon);re.decorators=[{type:r.Component,args:[{selector:"sac-grid",template:'<div class="table-responsive">\r\n <table class="table table-striped table-hover" id="{{name}}">\r\n <thead class="thead-light">\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet="template; context { row: {}, type: \'header\'}"\r\n >\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor="let item of value; let i=index">\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet="template; context { row: item, type: \'body\'}"\r\n >\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr\r\n *ngIf="value === undefined || value === null || value.length===0"\r\n data-e2e="emptyrow"\r\n >\r\n <td [attr.colspan]="ColumnCount">{{emptytext}}</td>\r\n </tr>\r\n </tbody>\r\n <tfoot *ngIf="pagerdata">\r\n <tr>\r\n <td [attr.colspan]="ColumnCount">\r\n <div class="container-fluid">\r\n <sac-paging\r\n name="{{name}}Paging"\r\n (paging)="pageChange($event)"\r\n [pagerdata]="pagerdata"\r\n [pagesizes]="pagesizes"\r\n [pagingtext]="pagingtext"\r\n [pagesizetext]="pagesizetext"\r\n [pagesizedisabled]="pagesizedisabled"\r\n ></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:re},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return re}))}]}]}],re.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:r.Injector}]},re.propDecorators={template:[{type:r.ContentChild,args:[r.TemplateRef,{static:!1}]}]};var oe=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}(l.SacGridButtonCommon);oe.decorators=[{type:r.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>\r\n'}]}];var le=function(e){function n(n,t,r){return e.call(this,n,t,r)||this}return g(n,e),n}(l.SacGridColumnCommon);le.decorators=[{type:r.Component,args:[{selector:"sac-gridcolumn",template:'<th\r\n scope="col"\r\n *ngIf="IsHeader()"\r\n [style.width]="width"\r\n (click)="SortByColumn()">\r\n <span>{{ header }}</span>\r\n <span\r\n class="pl-2"\r\n [class]="IconSortUp"\r\n *ngIf="IsSortedColumn() && GetSortDirection() === \'asc\'"></span>\r\n <span\r\n class="pl-2"\r\n [class]="IconSortDown"\r\n *ngIf="IsSortedColumn() && GetSortDirection() === \'desc\'"></span>\r\n</th>\r\n<td\r\n scope="col"\r\n *ngIf="IsBody()"\r\n [style.width]="width"\r\n [class.ellipsis]="IsEllipsis()"\r\n (click)="ColumnClick()"\r\n [style.max-width]="IsEllipsis() ? width : null"\r\n [style.overflow]="IsEllipsis() ? \'hidden\' : null"\r\n [style.text-overflow]="IsEllipsis() ? \'ellipsis\' : null"\r\n [style.white-space]="IsEllipsis() ? \'nowrap\' : null">\r\n <span\r\n [attr.title]="IsEllipsis() ? value : null"\r\n [innerHtml]="value"></span>\r\n</td>\r\n',providers:[{provide:l.SacGridColumnBaseCommon,useExisting:r.forwardRef((function(){return le}))}]}]}],le.ctorParameters=function(){return[{type:re},{type:r.Injector},{type:r.ElementRef}]};var ae=function(e){function n(n,t,r){var o=e.call(this,n,t,r)||this;return o.width="60px",o}return g(n,e),n}(l.SacGridColumnActionCommon);ae.decorators=[{type:r.Component,args:[{selector:"sac-gridcolumnaction",template:'<th scope="col" *ngIf="IsHeader()" [style.width]="width"><span></span></th>\r\n<td scope="col" class="px-2" *ngIf="IsBody()">\r\n <ng-content></ng-content>\r\n</td>\r\n',providers:[{provide:l.SacGridColumnBaseCommon,useExisting:r.forwardRef((function(){return ae}))}]}]}],ae.ctorParameters=function(){return[{type:re},{type:r.Injector},{type:r.ElementRef}]};var se=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}(l.SacGridImageCommon);se.decorators=[{type:r.Component,args:[{selector:"sac-gridimage",template:'<span><span class="{{getIconClass()}}"></span></span>\r\n'}]}];var ie=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(l.SacPagingCommon);ie.decorators=[{type:r.Component,args:[{selector:"sac-paging",template:'<div\r\n class="d-flex justify-content-between align-items-center flex-wrap"\r\n id="{{name}}"\r\n>\r\n <div class="col-pagination order-2 order-md-1" id="{{name}}_pages">\r\n <ul class="pagination mb-4 mb-md-0">\r\n <li\r\n class="page-item"\r\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === firstPageIndex}"\r\n >\r\n <a class="page-link" (click)="firstPage()">«</a>\r\n </li>\r\n <li\r\n class="page-item"\r\n *ngFor="let page of paginators; let i = index"\r\n [ngClass]="{\'active\': page === activePageIndex}"\r\n >\r\n <a class="page-link" (click)="changePage(page)">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n class="page-item"\r\n [ngClass]="{\'aspNetDisabled disabled\': activePageIndex === lastPageIndex}"\r\n >\r\n <a class="page-link" (click)="lastPage()">»</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class="col-summary order-1 order-md-2">\r\n <div class="mb-4 mb-md-0 mr-4 mb-md-0">{{ PagingText | async }}</div>\r\n </div>\r\n <div class="col-pagesize order-3" *ngIf="!pagesizedisabled">\r\n <div class="d-flex align-items-center" id="{{name}}_size">\r\n <select\r\n class="form-control form-control-sm"\r\n style="width: 85px"\r\n [ngModel]="pageSize"\r\n (ngModelChange)="changePageSize($event)"\r\n >\r\n <option [ngValue]="size" *ngFor="let size of getPageSizes">\r\n {{size}}\r\n </option>\r\n </select>\r\n <div class="ml-2">{{ PageSizeText | async }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:ie},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return ie}))}]}]}],ie.ctorParameters=function(){return[{type:r.Injector}]};var ce=function(){};ce.decorators=[{type:r.NgModule,args:[{declarations:[re,le,ae,ie,oe,se],imports:[n.CommonModule,o.FormsModule],exports:[re,le,ae,ie,oe,se]}]}];var de=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputCommon);de.decorators=[{type:r.Component,args:[{selector:"sac-input",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n [readonly]="readonly"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n (keypress)="onKeyPress($event)"\r\n [attr.maxlength]="maxtextlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled" />\r\n\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:de},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return de}))}]}]}],de.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var pe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputAreaCommon);pe.decorators=[{type:r.Component,args:[{selector:"sac-inputarea",template:'<div class="form-group row">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <textarea\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type=""\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n (keypress)="onKeyPress($event)"\r\n [attr.rows]="rows"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [attr.maxlength]="maxtextlength"\r\n [readonly]="readonly"></textarea>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return pe}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return pe}))}]}]}],pe.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var ue=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputCurrencyCommon);ue.decorators=[{type:r.Component,args:[{selector:"sac-inputcurrency",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]" />\r\n <div class="input-group-append">\r\n <span class="input-group-text">{{ currency }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return ue}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return ue}))}]}]}],ue.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var me=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputDecimalCommon);me.decorators=[{type:r.Component,args:[{selector:"sac-inputdecimal",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n [readonly]="readonly"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]" />\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return me}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return me}))}]}]}],me.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var ge=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputEmailCommon);ge.decorators=[{type:r.Component,args:[{selector:"sac-inputemail",template:'<div class="form-group row">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <div class="input-group-prepend">\r\n <span class="input-group-text">@</span>\r\n </div>\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n [attr.maxlength]="maxtextlength"\r\n autocomplete="email"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly" />\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return ge}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return ge}))}]}]}],ge.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var he=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputIntegerCommon);he.decorators=[{type:r.Component,args:[{selector:"sac-inputinteger",template:'<div class="form-group row">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.placeholder]="placeholder"\r\n (keypress)="onKeyPress($event)"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]" />\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:he},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return he}))}]}]}],he.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var fe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputPasswordCommon);fe.decorators=[{type:r.Component,args:[{selector:"sac-inputpassword",template:'<div class="form-group row">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="password"\r\n class="form-control"\r\n [attr.placeholder]="placeholder"\r\n [value]="value"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.maxlength]="maxtextlength"\r\n autocomplete="new-password"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly" />\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:fe},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return fe}))}]}]}],fe.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacInputSearchCommon);be.decorators=[{type:r.Component,args:[{selector:"sac-inputsearch",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n id="{{ name }}_label"\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="value"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="setValue($event.target.value)"\r\n [attr.maxlength]="maxtextlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"\r\n [readonly]="readonly" />\r\n <div class="input-group-append">\r\n <button\r\n type="button"\r\n class="btn btn-secondary"\r\n id="{{ name }}_search"\r\n (click)="searchClick()">\r\n <i\r\n *ngIf="buttonmode === \'icon\' || buttonmode === \'mixed\'"\r\n [class]="iconname"\r\n [class.mr-2]="buttonmode === \'mixed\'"></i>\r\n <ng-container *ngIf="buttonmode === \'text\' || buttonmode === \'mixed\'">{{ buttontext }}</ng-container>\r\n </button>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:be},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return be}))}]}]}],be.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var ve=function(){};ve.decorators=[{type:r.NgModule,args:[{declarations:[de,pe,ue,me,ge,he,fe,be],imports:[n.CommonModule,N,F],exports:[de,pe,ue,me,ge,he,fe,be]}]}];var xe=function(e){function n(n,t,r,o){return e.call(this,n,t,r,o)||this}return g(n,e),n}(l.SacDropdownCommon);xe.decorators=[{type:r.Component,args:[{selector:"sac-dropdown",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired"\r\n ><div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <select\r\n #dropdownitem\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n class="form-control"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (change)="setValue(dropdownitem.value)"\r\n [disabled]="isdisabled">\r\n <option\r\n *ngIf="emptylabel !== \'\'"\r\n [ngValue]="emptyvalue">\r\n {{ emptylabel }}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf="groupitems === \'\'">\r\n <option\r\n *ngFor="let item of options"\r\n [ngValue]="optionvalue ? item[optionvalue] : item"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\r\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf="groupitems !== \'\'">\r\n <optgroup\r\n *ngFor="let group of options"\r\n [attr.label]="group[grouplabel]">\r\n <option\r\n *ngFor="let item of group[groupitems]"\r\n [ngValue]="optionvalue ? item[optionvalue] : item"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\r\n <ng-template *ngTemplateOutlet="optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }"> </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label="label">\r\n {{ label }}\r\n</ng-template>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:xe},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return xe}))}]}]}],xe.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.ElementRef}]};var ye=function(e){function n(n,t,r){return e.call(this,n,t,r)||this}return g(n,e),n}(l.SacDropdownOptionCommon);ye.decorators=[{type:r.Directive,args:[{selector:"[sacOption],option"}]}],ye.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:xe,decorators:[{type:r.Optional},{type:r.Host}]}]};var Ce=function(){};Ce.decorators=[{type:r.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}(l.SacListboxCommon);Se.decorators=[{type:r.Component,args:[{selector:"sac-listbox",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired"\r\n ><div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <select\r\n multiple\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n class="form-control"\r\n [size]="rowsize"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n (blur)="onTouch()"\r\n (change)="getSelectedItems($event.target)"\r\n [disabled]="isdisabled">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf="groupitems === \'\'">\r\n <option\r\n *ngFor="let option of options"\r\n [value]="option[optionvalue]"\r\n [disabled]="optionenabled !== \'\' && option[optionenabled] === false">\r\n {{ option[optionlabel] }}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf="groupitems !== \'\'">\r\n <optgroup\r\n *ngFor="let option of options"\r\n [attr.label]="option[grouplabel]">\r\n <option\r\n *ngFor="let item of option[groupitems]"\r\n [value]="item[optionvalue]"\r\n [disabled]="optionenabled !== \'\' && item[optionenabled] === false">\r\n {{ item[optionlabel] }}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Se},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return Se}))}]}]}],Se.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Ie=function(e){function n(n,t,r){return e.call(this,n,t,r)||this}return g(n,e),n}(l.SacListboxOptionCommon);Ie.decorators=[{type:r.Directive,args:[{selector:"[sacOption],option"}]}],Ie.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:Se,decorators:[{type:r.Optional},{type:r.Host}]}]};var we=function(){};we.decorators=[{type:r.NgModule,args:[{declarations:[Se,Ie],imports:[n.CommonModule,N,F],exports:[Se,Ie]}]}];var He=function(e){function n(n,t){var r=e.call(this,n,t)||this;return r.IconType=l.IconType,r}return g(n,e),n}(l.SacMultilanguageInputCommon);He.decorators=[{type:r.Component,args:[{selector:"sac-multilanguageinput",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <input\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="LanguageValue"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n (input)="SetLanguageValue($event.target.value)"\r\n [attr.maxlength]="maxtextlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled" />\r\n <div\r\n placement="bottom-right"\r\n class="input-group-append"\r\n sac-multilanguagemenu\r\n [buttontemplate]="menuButton"\r\n #contextmenu>\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]="name + \'_dropdownitem\'"\r\n type="button"\r\n class="btn dropdown-toggle"\r\n (click)="contextmenu.toggle()"\r\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\r\n <img\r\n src="{{ SelectedIcon }}"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.Image" />\r\n <span\r\n [ngClass]="SelectedIcon"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.CssSprite"></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor="let sprache of Languages">\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.Image"\r\n text="{{ sprache.Text }}"\r\n image="{{ sprache.Icon }}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\r\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.CssSprite"\r\n text="{{ sprache.Text }}"\r\n icon="{{ sprache.Icon }}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\r\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n<div class="row">\r\n <div class="col text-right"></div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:He},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return He}))}]}]}],He.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Te=function(e){function n(n,t){var r=e.call(this,n,t)||this;return r.IconType=l.IconType,r}return g(n,e),n}(l.SacMultilanguageInputAreaCommon);Te.decorators=[{type:r.Component,args:[{selector:"sac-multilanguageinputarea",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="input-group"\r\n [class.input-group-sm]="componentHeight === ControlHeight.Small"\r\n [class.input-group-lg]="componentHeight === ControlHeight.Large"\r\n [class.has-validation]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n <textarea\r\n id="{{ name }}"\r\n name="{{ name }}"\r\n type="text"\r\n class="form-control"\r\n [value]="LanguageValue"\r\n [attr.placeholder]="placeholder"\r\n (blur)="onTouch()"\r\n style="height: auto"\r\n (input)="SetLanguageValue($event.target.value)"\r\n [attr.rows]="rows"\r\n [attr.maxlength]="maxtextlength"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [disabled]="isdisabled"></textarea>\r\n\r\n <div\r\n placement="bottom-right"\r\n class="input-group-append"\r\n sac-multilanguagemenu\r\n [buttontemplate]="menuButton"\r\n #contextmenu>\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]="name + \'_dropdownitem\'"\r\n type="button"\r\n class="btn dropdown-toggle"\r\n (click)="contextmenu.toggle()"\r\n [ngClass]="[IsAnyEmpty() ? \'btn-warning\' : \'btn-secondary\']">\r\n <img\r\n src="{{ SelectedIcon }}"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.Image" />\r\n <i\r\n [ngClass]="SelectedIcon"\r\n class="align-baseline mr-1 ml-1"\r\n *ngIf="SelectedIconType === IconType.CssSprite"></i>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor="let sprache of Languages">\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.Image"\r\n text="{{ sprache.Text }}"\r\n image="{{ sprache.Icon }}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\r\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf="sprache.IconType === IconType.CssSprite"\r\n text="{{ sprache.Text }}"\r\n icon="{{ sprache.Icon }}"\r\n [cssclass]="IsEmpty(sprache) ? \'text-danger border-left border-danger\' : \'\'"\r\n (clicked)="SelectLanguage(sprache)"></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n<div class="row">\r\n <div class="col text-right"></div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Te},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return Te}))}]}]}],Te.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var ke=function(e){function n(n,t,r,o,l){return e.call(this,n,t,r,o,l)||this}return g(n,e),n}(l.SacContextmenuCommon);ke.decorators=[{type:r.Component,args:[{selector:"[sac-multilanguagemenu]",template:'<ng-container\r\n [ngTemplateOutlet]="buttontemplate || defaultButtonTemplate"\r\n></ng-container>\r\n\r\n<div\r\n class="dropdown-menu dropdown-menu-right"\r\n sacMultilanguageMenuContainer\r\n [class.show]="isopen"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #defaultButtonTemplate>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n class="btn btn-secondary dropdown-toggle"\r\n type="button"\r\n (click)="toggle()"\r\n ></button>\r\n</ng-template>\r\n',providers:[{provide:l.SacContextmenuCommon,useExisting:r.forwardRef((function(){return ke}))}]}]}],ke.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[n.DOCUMENT]}]},{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:r.Injector}]};var Ee=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(l.SacContextmenuAnchorCommon);Ee.decorators=[{type:r.Directive,args:[{selector:"[sacMultilanguageMenuAnchor]",providers:[{provide:l.SacContextmenuAnchorCommon,useExisting:r.forwardRef((function(){return Ee}))}]}]}],Ee.ctorParameters=function(){return[{type:r.ElementRef}]};var Ae=function(e){function n(n){return e.call(this,n)||this}return g(n,e),n}(l.SacContextMenuContrainerCommon);Ae.decorators=[{type:r.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:l.SacContextMenuContrainerCommon,useExisting:r.forwardRef((function(){return Ae}))}]}]}],Ae.ctorParameters=function(){return[{type:r.ElementRef}]};var Le=function(e){function n(){return e.call(this)||this}return g(n,e),n}(l.SacContextmenuItemButtonCommon);Le.decorators=[{type:r.Component,args:[{selector:"sac-multilanguagemenubutton",template:'<button\r\n type="button"\r\n class="dropdown-item"\r\n (click)="callaction($event)"\r\n [class.disabled]="isdisabled"\r\n [ngClass]="cssclass"\r\n [attr.disabled]="isdisabled ? \'disabled\' : null"\r\n>\r\n <div class="d-flex">\r\n <div *ngIf="!isicondisabled" style="min-width: 1.5rem">\r\n <img *ngIf="image" [src]="image" class="align-baseline" />\r\n <i *ngIf="icon" [class]="iconstyle + \' \' + icon"></i>\r\n </div>\r\n <div class="flex-grow-1">{{ text }}</div>\r\n </div>\r\n</button>\r\n',providers:[{provide:l.SacContextmenuItemCommon,useExisting:r.forwardRef((function(){return Le}))}]}]}],Le.ctorParameters=function(){return[]};var Re=function(){};Re.decorators=[{type:r.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}(l.SacStaticFormContainerCommon);Me.decorators=[{type:r.Component,args:[{selector:"sac-staticformcontainer",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n [class.was-validated]="isinlineerrorenabled && isinvalid && errormessage">\r\n <ng-content></ng-content>\r\n <label\r\n for="{{ name }}"\r\n class="form-label-adaptive form-label-fixed"\r\n [ngClass]="{ required: isrequired }"\r\n *ngIf="isAdaptiveLabel && !disablelabel">\r\n {{ label }}\r\n </label>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n class="invalid-feedback"\r\n *ngIf="isinlineerrorenabled && isinvalid && errormessage">\r\n {{ errormessage }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Me},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return Me}))}]}]}],Me.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Pe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacStaticLabelCommon);Pe.decorators=[{type:r.Component,args:[{selector:"sac-staticlabel",template:'<div\r\n class="row form-group"\r\n [class.no-gutters]="disablelabel">\r\n <label\r\n *ngIf="disablelabel === false && !isAdaptiveLabel"\r\n id="{{ name }}_label"\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div>\r\n <div\r\n [id]="name"\r\n class="form-control-plaintext"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [innerHTML]="value"></div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Pe},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return Pe}))}]}]}],Pe.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var ze=function(){};ze.decorators=[{type:r.NgModule,args:[{declarations:[Pe,Me],imports:[n.CommonModule,N,F],exports:[Pe,Me]}]}];var _e=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacTabItemCommon);_e.decorators=[{type:r.Component,args:[{selector:"sac-tabitem",template:'<div [id]="id" [hidden]="unloadwhenhidden === false && active === false" *ngIf="(unloadwhenhidden === true && active === true) || unloadwhenhidden === false" class="tab-pane">\r\n <ng-template [ngTemplateOutlet]="templateRef"></ng-template>\r\n</div>\r\n'}]}];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}(l.SacTabCommon);Oe.decorators=[{type:r.Component,args:[{selector:"sac-tab",template:'\x3c!-- Nav tabs --\x3e\r\n<div class="nav nav-tabs" role="tablist">\r\n <a\r\n *ngFor="let item of _tabItems"\r\n [id]="GetTabItemButtonId(item.id)"\r\n role="tab"\r\n class="nav-item nav-link active"\r\n data-toggle="tab"\r\n [ngClass]="{ \'active show\': item.active, \'disabled\': item.disabled }"\r\n (click)="selectTab(item)"\r\n [ngStyle]="{\'cursor\': item.disabled ? \'not-allowed\' : \'pointer\'}"\r\n >{{item.label}}</a\r\n >\r\n</div>\r\n\r\n\x3c!-- Tab panes --\x3e\r\n<div class="tab-content pl-3 pt-2">\r\n <ng-content></ng-content>\r\n</div>\r\n'}]}],Oe.propDecorators={_tabItems:[{type:r.ContentChildren,args:[_e]}]};var Ge=function(){};Ge.decorators=[{type:r.NgModule,args:[{declarations:[Oe,_e],imports:[n.CommonModule],exports:[Oe,_e]}]}];var Ne=function(e){function n(n,t,r){return e.call(this,n,t,r)||this}return g(n,e),n.prototype.overwriteDefaultSettings=function(){return{}},n}(l.SacTinyMceCommon);Ne.decorators=[{type:r.Component,args:[{selector:"sac-tinymce",template:'<div class="row form-group">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired"\r\n ><div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']"\r\n [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div [class.flex-grow-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <editor\r\n [id]="name + \'_tinymce\'"\r\n [init]="_config"\r\n [initialValue]="value"\r\n ngModel\r\n [ngModelOptions]="{ standalone: true }"\r\n (ngModelChange)="setValue($event)"\r\n (onSaveContent)="save($event.event.content)"\r\n [disabled]="disabled"\r\n [class.is-invalid]="isinlineerrorenabled && invalid && (dirty || touched)">\r\n </editor>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf="selectdialogvisible"\r\n [allowesc]="false"\r\n [backdrop]="true"\r\n [(isvisible)]="selectdialogvisible"\r\n title="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}"\r\n size="large"\r\n height="500px">\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]="filebrowserapiurl"\r\n (file)="selectDialogSettings.value = $event"\r\n [allowfoldercreate]="allowfoldercreate"\r\n [allowfolderrename]="allowfolderrename"\r\n [allowfolderdelete]="allowfolderdelete"\r\n [allowfileupload]="allowfileupload"\r\n [allowfilerename]="allowfilerename"\r\n [allowfiledelete]="allowfiledelete"\r\n [selectedfile]="selectDialogSettings.value"\r\n [allowedtypes]="selectDialogSettings.allowedtypes"></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role="primary"\r\n [name]="name + \'_modalOk\'"\r\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}"\r\n (clicked)="setSelectDialogResult()"></sac-button>\r\n <sac-button\r\n [name]="name + \'_modalClose\'"\r\n text="{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}"\r\n (clicked)="closeSelectDialog()"></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ne},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return Ne})),multi:!0}],styles:[".is-invalid{border:1px solid var(--red)}"]}]}],Ne.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.NgZone}]};var De=function(){};De.decorators=[{type:r.NgModule,args:[{declarations:[Ne],imports:[n.CommonModule,o.FormsModule,d.EditorModule,N,f,v,$,F],exports:[Ne]}]}];var Fe=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacTreeviewCommon);Fe.decorators=[{type:r.Component,args:[{selector:"sac-treeview",template:'<div\r\n class="row mb-3"\r\n [class.g-0]="disablelabel">\r\n <label\r\n for="{{ name }}"\r\n class="col-12 col-form-label d-flex"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n [class.required]="isrequired">\r\n <div\r\n class="text flex-grow-0"\r\n [class.flex-sm-grow-1]="splitlabelandhelptext">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class="col-12"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toControlWidthCss) : \'\']">\r\n <div [class.d-flex]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <div\r\n class="w-100"\r\n [style.min-width]="helptextmode === \'tooltip\' && helptext && disablelabel ? 0 : null"\r\n [class.mr-1]="helptextmode === \'tooltip\' && helptext && disablelabel">\r\n <ul\r\n class="list-group list-group-flush"\r\n id="{{ name }}"\r\n [class.is-invalid]="invalid && (dirty || touched)"\r\n [class.border]="invalid && (dirty || touched)"\r\n [class.border-danger]="invalid && (dirty || touched)">\r\n <ng-container *ngFor="let node of data">\r\n <ng-template\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{ node: node, deep: 0, path: \'\', textpath: \'\' }">\r\n </ng-template>\r\n </ng-container>\r\n </ul>\r\n\r\n <div\r\n *ngIf="isinlineerrorenabled && invalid && (dirty || touched)"\r\n class="invalid-feedback">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="form-text text-muted">\r\n {{ helptext }}\r\n </small>\r\n </div>\r\n\r\n <div\r\n *ngIf="helptextmode === \'tooltip\' && helptext && disablelabel"\r\n class="form-control-plaintext align-self-top ml-2 mr-1 w-auto"\r\n [ngClass]="[componentHeight | toControlHeight]">\r\n <sac-tooltip\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true">\r\n <span\r\n [ngClass]="HelptextTooltipIcon"\r\n class="ml-1">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node="node"\r\n let-deep="deep"\r\n let-path="path"\r\n let-textpath="textpath">\r\n <li\r\n class="list-group-item list-group-item-action py-1 px-2 d-flex align-items-center"\r\n [class.active]="isSelectedState(node)"\r\n (mouseenter)="setHoverState(node, true)"\r\n (mouseleave)="setHoverState(node, false)"\r\n style="cursor: pointer"\r\n attr.data-path="{{ path }}/{{ getStringField(node, attrid) }}"\r\n attr.data-textpath="{{ textpath }}/{{ getStringField(node, attrlabel) }}">\r\n <div\r\n class="mx-3"\r\n *ngFor="let i of count(deep)">\r\n </div>\r\n\r\n <div\r\n (click)="onNodeClicked(node)"\r\n *ngIf="expandedstate === \'true\' || expandedstate === true"\r\n class="mr-2"\r\n [ngClass]="!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : \'\'">\r\n </div>\r\n\r\n <div\r\n (click)="onNodeClicked(node)"\r\n *ngIf="attricon && getStringField(node, attricon)">\r\n <ng-template\r\n [ngTemplateOutlet]="templateicon || defaultTemplateIcon"\r\n [ngTemplateOutletContext]="{ node: node }">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)="onNodeClicked(node)"\r\n class="flex-grow-1 py-1"\r\n [style.overflow]="enableellipsis ? \'hidden\' : null"\r\n [style.text-overflow]="enableellipsis ? \'ellipsis\' : null"\r\n [style.white-space]="enableellipsis ? \'nowrap\' : null">\r\n <ng-template\r\n [ngTemplateOutlet]="templatelabel || defaultTemplateLabel"\r\n [ngTemplateOutletContext]="{ node: node, label: getStringField(node, attrlabel) }">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)="setSelectedState(node)"\r\n class="flex-shrink-0"\r\n *ngIf="!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))">\r\n <ng-template\r\n [ngTemplateOutlet]="templateaction || defaultTemplateAction"\r\n [ngTemplateOutletContext]="{ node: node, actionhandler: onActionClicked.bind(this) }">\r\n </ng-template>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf="isExpandedState(node)">\r\n <ng-template\r\n *ngFor="let child of getChildren(node)"\r\n [ngTemplateOutlet]="treeItem"\r\n [ngTemplateOutletContext]="{\r\n node: child,\r\n deep: deep + 1,\r\n path: path + \'/\' + getStringField(node, attrid),\r\n textpath: textpath + \'/\' + getStringField(node, attrlabel)\r\n }">\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template\r\n #defaultTemplateLabel\r\n let-label="label"\r\n let-node="node">\r\n <span [title]="label">\r\n {{ label }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateIcon\r\n let-node="node">\r\n <div\r\n class="mr-2"\r\n [ngClass]="getStringField(node, attricon)">\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateAction\r\n let-node="node"\r\n let-actionhandler="actionhandler">\r\n <a\r\n class="btn btn-sm btn-link text-secondary"\r\n (click)="actionhandler({ action: \'default\', node: node })">\r\n <i [class]="iconAction"></i>\r\n </a>\r\n</ng-template>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Fe},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return Fe})),multi:!0}]}]}],Fe.ctorParameters=function(){return[{type:P,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Ve=function(){};Ve.decorators=[{type:r.NgModule,args:[{declarations:[Fe],imports:[n.CommonModule,F,N,k],exports:[Fe]}]}];var Be=function(e){function n(n,t){return e.call(this,n,t)||this}return g(n,e),n}(l.SacValidationSummaryCommon);Be.decorators=[{type:r.Component,args:[{selector:"sac-validationsummary",template:'<div class="alert alert-danger" role="alert" *ngIf="hasErrors">\r\n <ul class="mb-0">\r\n <li *ngFor="let error of formErrors">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Be}]}]}],Be.ctorParameters=function(){return[{type:E,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var je=function(){};je.decorators=[{type:r.NgModule,args:[{declarations:[Be],imports:[n.CommonModule],exports:[Be]}]}];var We=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n}(l.SacWizardItemCommon);We.decorators=[{type:r.Component,args:[{selector:"sac-wizarditem",template:""}]}];var Ue=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return g(n,e),n.prototype.wizardItems=function(){return this._wizardItems},n}(l.SacWizardCommon);Ue.decorators=[{type:r.Component,args:[{selector:"sac-wizard",template:'<ul class="nav nav-wizard" role="tablist">\r\n <li *ngFor="let item of _wizardItems" class="nav-item" [ngClass]="{ \'active\': item._active, \'disabled\': item._disabled, \'success\': item._iscomplete }"\r\n [ngStyle]="{\'cursor\': item._disabled ? \'not-allowed\' : \'pointer\'}">\r\n <a role="tab" (click)="selectStep(item)">\r\n <div class="circle">\r\n <span class="step"></span>\r\n </div>\r\n </a>\r\n <div class="info">\r\n <a (click)="selectStep(item)">{{item._label}}</a>\r\n </div>\r\n </li>\r\n</ul>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:Ue}]}]}],Ue.propDecorators={_wizardItems:[{type:r.ContentChildren,args:[We]}]};var qe=function(){};qe.decorators=[{type:r.NgModule,args:[{declarations:[Ue,We],imports:[n.CommonModule],exports:[Ue,We]}]}],e.NGFORM_FACTORY=L,e.SACBootstrap4BrowserModule=$,e.SACBootstrap4ButtonModule=f,e.SACBootstrap4CheckboxModule=Z,e.SACBootstrap4ConfirmModule=C,e.SACBootstrap4ContextmenuModule=k,e.SACBootstrap4DateTimeModule=te,e.SACBootstrap4DialogModule=v,e.SACBootstrap4DropdownModule=Ce,e.SACBootstrap4FormModule=M,e.SACBootstrap4GridModule=ce,e.SACBootstrap4InputModule=ve,e.SACBootstrap4LayoutModule=N,e.SACBootstrap4ListModule=we,e.SACBootstrap4MultilanguageModule=Re,e.SACBootstrap4StaticLabelModule=ze,e.SACBootstrap4TabsModule=Ge,e.SACBootstrap4TinyMceModule=De,e.SACBootstrap4TooltipModule=F,e.SACBootstrap4TreeviewModule=Ve,e.SACBootstrap4UploadModule=U,e.SACBootstrap4ValidationSummaryModule=je,e.SACBootstrap4WizardModule=qe,e.SACFORM_FACTORY=R,e.SacBrowserComponent=q,e.SacButtonComponent=h,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=b,e.SacDropdownComponent=xe,e.SacDropdownOptionDirective=ye,e.SacDropzoneMultipleComponent=V,e.SacDropzoneSingleComponent=B,e.SacFormDirective=E,e.SacFormLayoutDirective=P,e.SacGridButtonComponent=oe,e.SacGridColumnActionComponent=ae,e.SacGridColumnComponent=le,e.SacGridComponent=re,e.SacGridImageComponent=se,e.SacInheritFormDirective=A,e.SacInputAreaComponent=pe,e.SacInputComponent=de,e.SacInputCurrencyComponent=ue,e.SacInputDecimalComponent=me,e.SacInputEmailComponent=ge,e.SacInputIntegerComponent=he,e.SacInputPasswordComponent=fe,e.SacInputSearchComponent=be,e.SacListboxComponent=Se,e.SacListboxOptionDirective=Ie,e.SacMultilanguageInputAreaComponent=Te,e.SacMultilanguageInputComponent=He,e.SacPagingComponent=ie,e.SacRadiobuttonComponent=Q,e.SacRadiobuttonsComponent=X,e.SacStaticFormContainerComponent=Me,e.SacStaticLabelComponent=Pe,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=W,e.SacValidationSummaryComponent=Be,e.SacWizardComponent=Ue,e.SacWizardItemComponent=We,e.ServiceConfirm=y,e.ɵa=T,e.ɵb=ke,e.ɵc=Ee,e.ɵd=Ae,e.ɵe=Le,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap4.umd.min.js.map