@simpleangularcontrols/sac-bootstrap4 10.0.0-rc.7 → 10.0.0-rc.8

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 (68) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js +176 -82
  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/grid/gridbutton.d.ts +1 -10
  6. package/controls/tooltip/tooltip.d.ts +34 -0
  7. package/controls/tooltip/tooltip.module.d.ts +2 -0
  8. package/controls/tooltip/tooltip.module.ngfactory.d.ts +3 -0
  9. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -0
  10. package/esm2015/controls/checkbox/checkbox.js +2 -2
  11. package/esm2015/controls/checkbox/checkbox.module.js +7 -2
  12. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  13. package/esm2015/controls/checkbox/radiobuttons.js +2 -2
  14. package/esm2015/controls/datetime/date.js +2 -2
  15. package/esm2015/controls/datetime/datetime.js +2 -2
  16. package/esm2015/controls/datetime/datetime.module.js +8 -2
  17. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  18. package/esm2015/controls/datetime/time.js +2 -2
  19. package/esm2015/controls/grid/grid.js +2 -2
  20. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  21. package/esm2015/controls/grid/gridbutton.js +3 -11
  22. package/esm2015/controls/input/input.js +2 -2
  23. package/esm2015/controls/input/input.module.js +7 -2
  24. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  25. package/esm2015/controls/input/inputarea.js +2 -2
  26. package/esm2015/controls/input/inputcurrency.js +2 -2
  27. package/esm2015/controls/input/inputdecimal.js +2 -2
  28. package/esm2015/controls/input/inputemail.js +2 -2
  29. package/esm2015/controls/input/inputinteger.js +2 -2
  30. package/esm2015/controls/input/inputpassword.js +2 -2
  31. package/esm2015/controls/input/inputsearch.js +2 -2
  32. package/esm2015/controls/list/dropdown.js +2 -2
  33. package/esm2015/controls/list/dropdown.module.js +7 -2
  34. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  35. package/esm2015/controls/list/list.module.js +7 -2
  36. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  37. package/esm2015/controls/list/listbox.js +2 -2
  38. package/esm2015/controls/multilanguage/multilanguage.module.js +7 -2
  39. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  40. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  41. package/esm2015/controls/multilanguage/multilanguageinputarea.js +2 -2
  42. package/esm2015/controls/static/formcontainer.js +2 -2
  43. package/esm2015/controls/static/staticlabel.js +2 -2
  44. package/esm2015/controls/static/staticlabel.module.js +7 -2
  45. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  46. package/esm2015/controls/tinymce/tinymce.js +2 -2
  47. package/esm2015/controls/tinymce/tinymce.module.js +3 -1
  48. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  49. package/esm2015/controls/tooltip/tooltip.js +52 -0
  50. package/esm2015/controls/tooltip/tooltip.module.js +13 -0
  51. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -0
  52. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -0
  53. package/esm2015/controls/upload/dropzonemultiple.js +2 -2
  54. package/esm2015/controls/upload/dropzonesingle.js +2 -2
  55. package/esm2015/controls/upload/upload.js +2 -2
  56. package/esm2015/controls/upload/upload.module.js +8 -2
  57. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  58. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  59. package/esm2015/public_api.js +2 -1
  60. package/esm2015/simpleangularcontrols-sac-bootstrap4.js +39 -38
  61. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js +132 -45
  62. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js.map +1 -1
  63. package/package.json +2 -2
  64. package/public_api.d.ts +1 -0
  65. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.8.tgz +0 -0
  66. package/simpleangularcontrols-sac-bootstrap4.d.ts +38 -37
  67. package/simpleangularcontrols-sac-bootstrap4.metadata.json +1 -1
  68. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.7.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 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 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 A=function(n){function e(e){var r=n.call(this,e)||this;return r.cssClassForm=!0,r}return m(e,n),e}(a.SacFormCommon);A.decorators=[{type:t.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],A.ctorParameters=function(){return[{type:o.NgForm}]},A.propDecorators={cssClassForm:[{type:t.HostBinding,args:["class.form"]}]};var L=function(n){function e(e){return n.call(this,e.get(o.NgForm))||this}return m(e,n),e}(a.SacFormCommon);function M(n){return n}function R(n){return n}L.decorators=[{type:t.Directive,args:[{selector:"[sacInheritForm]",exportAs:"sacinheritform",providers:[{provide:A,useFactory:R,deps:[[new t.SkipSelf,A]]},{provide:o.ControlContainer,useFactory:M,deps:[o.NgForm]}]}]}],L.ctorParameters=function(){return[{type:t.Injector}]};var z=function(){};z.decorators=[{type:t.NgModule,args:[{declarations:[A,L],imports:[e.CommonModule,o.FormsModule],exports:[A,L]}]}];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 An=function(n){function e(e){return n.call(this,e)||this}return m(e,n),e}(a.SacContextMenuContrainerCommon);An.decorators=[{type:t.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:a.SacContextMenuContrainerCommon,useExisting:t.forwardRef((function(){return An}))}]}]}],An.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.SacContextmenuItemButtonCommon);Ln.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'}]}],Ln.ctorParameters=function(){return[{type:a.SacContextmenuCommon}]};var Mn=function(){};Mn.decorators=[{type:t.NgModule,args:[{declarations:[wn,Hn,kn,En,An,Ln],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 [id]="name"\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 [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'}]}],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:A,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.NGFORM_FACTORY=M,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.SACFORM_FACTORY=R,n.SacFormDirective=A,n.SacInheritFormDirective=L,n.ServiceConfirm=C,n.ɵa=U,n.ɵb=F,n.ɵba=tn,n.ɵbb=on,n.ɵbc=ln,n.ɵbd=rn,n.ɵbe=an,n.ɵbf=cn,n.ɵbg=dn,n.ɵbh=pn,n.ɵbi=un,n.ɵbj=gn,n.ɵbk=mn,n.ɵbl=bn,n.ɵbm=vn,n.ɵbn=hn,n.ɵbo=yn,n.ɵbp=Sn,n.ɵbq=xn,n.ɵbr=wn,n.ɵbs=Hn,n.ɵbt=kn,n.ɵbu=En,n.ɵbv=An,n.ɵbw=Ln,n.ɵbx=zn,n.ɵby=Rn,n.ɵbz=Nn,n.ɵc=_,n.ɵca=On,n.ɵcb=Gn,n.ɵcc=Fn,n.ɵcd=jn,n.ɵce=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=$,n.ɵt=q,n.ɵu=K,n.ɵv=Q,n.ɵw=J,n.ɵx=Y,n.ɵy=Z,n.ɵz=en,Object.defineProperty(n,"__esModule",{value:!0})}));
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,t,r,o,l,a,s,i,c,d){"use strict";function p(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var u=p(c),m=function(n,e){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(n,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])})(n,e)};function g(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=n}m(n,e),n.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var b=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacButtonCommon);b.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 v=function(){};v.decorators=[{type:r.NgModule,args:[{declarations:[b],imports:[e.CommonModule],exports:[b]}]}];var f=function(n){function e(e,t){var r=n.call(this,t)||this;return r.element=e.nativeElement,r}return g(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}(l.SacDialogCommon);f.decorators=[{type:r.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:r.ElementRef},{type:r.ChangeDetectorRef}]};var h=function(){};h.decorators=[{type:r.NgModule,args:[{declarations:[f],imports:[e.CommonModule],exports:[f]}]}];var y=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacConfirmCommon);y.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 x=function(n){function e(e,t,r){var o=n.call(this,t,r)||this;return o.componentFactoryResolver=e,o.buttons=[],o.message="",o.title="",o}return g(e,n),e.prototype.ConfirmMessage=function(e,t,r){var o=this;return void 0===r&&(r=null),this.title=e,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(n){o.buttons.push(new l.SacConfirmButton("yes",n.button_yes,"primary")),o.buttons.push(new l.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}(l.ServiceConfirmCommon);x.decorators=[{type:r.Injectable}],x.ctorParameters=function(){return[{type:r.ComponentFactoryResolver,decorators:[{type:r.Inject,args:[r.ComponentFactoryResolver]}]},{type:r.ApplicationRef},{type:r.Injector}]};var C=function(){function n(){}return n.forRoot=function(){return{ngModule:n,providers:[x]}},n}();C.decorators=[{type:r.NgModule,args:[{declarations:[y],imports:[e.CommonModule,h,v],exports:[y],entryComponents:[y]}]}];var S=function(n){function e(e,t,r,o,l){return n.call(this,e,t,r,o,l)||this}return g(e,n),e}(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',providers:[{provide:l.SacContextmenuCommon,useExisting:r.forwardRef((function(){return S}))}]}]}],S.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:r.Injector}]};var I=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacContextmenuItemButtonCommon);I.decorators=[{type:r.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:l.SacContextmenuCommon}]};var w=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacContextmenuItemCommon);w.decorators=[{type:r.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 g(e,n),e}(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 k=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacContextMenuContrainerCommon);k.decorators=[{type:r.Directive,args:[{selector:"[sacContextMenuContainer]",providers:[{provide:l.SacContextMenuContrainerCommon,useExisting:r.forwardRef((function(){return k}))}]}]}],k.ctorParameters=function(){return[{type:r.ElementRef}]};var E=function(){};E.decorators=[{type:r.NgModule,args:[{declarations:[S,I,w,H,k],imports:[e.CommonModule],exports:[S,I,w,H]}]}];var T=function(n){function e(e){var t=n.call(this,e)||this;return t.cssClassForm=!0,t}return g(e,n),e}(l.SacFormCommon);T.decorators=[{type:r.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),[ngForm]",exportAs:"sacform"}]}],T.ctorParameters=function(){return[{type:o.NgForm}]},T.propDecorators={cssClassForm:[{type:r.HostBinding,args:["class.form"]}]};var A=function(n){function e(e){return n.call(this,e.get(o.NgForm))||this}return g(e,n),e}(l.SacFormCommon);function L(n){return n}function M(n){return n}A.decorators=[{type:r.Directive,args:[{selector:"[sacInheritForm]",exportAs:"sacinheritform",providers:[{provide:T,useFactory:M,deps:[[new r.SkipSelf,T]]},{provide:o.ControlContainer,useFactory:L,deps:[o.NgForm]}]}]}],A.ctorParameters=function(){return[{type:r.Injector}]};var R=function(){};R.decorators=[{type:r.NgModule,args:[{declarations:[T,A],imports:[e.CommonModule,o.FormsModule],exports:[T,A]}]}];var z=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacFormLayoutCommon);z.decorators=[{type:r.Directive,args:[{selector:"[sacFormLayout]"}]}];var _=function(){function n(){}return n.prototype.transform=function(n){if(!n)return"";switch(n){case l.ControlHeight.Small:return"form-control-sm";case l.ControlHeight.Large:return"form-control-lg";default:return""}},n}();_.decorators=[{type:r.Pipe,args:[{name:"toControlHeight"}]}];var O=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}();O.decorators=[{type:r.Pipe,args:[{name:"toControlWidthCss"}]}];var G=function(){function n(){}return n.prototype.transform=function(n){if(!n)return"";switch(n){case l.ControlHeight.Small:return"col-form-label-sm";case l.ControlHeight.Large:return"col-form-label-lg";default:return""}},n}();G.decorators=[{type:r.Pipe,args:[{name:"toLabelHeight"}]}];var N=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}();N.decorators=[{type:r.Pipe,args:[{name:"toLabelWidthCss"}]}];var P=function(){};P.decorators=[{type:r.NgModule,args:[{declarations:[z,_,O,G,N],imports:[e.CommonModule],exports:[z,_,O,G,N]}]}];var D=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e.prototype.getTooltipOffset=function(){return 2},e}(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:[e.CommonModule],exports:[D]}]}];var V=function(n){function e(e,t,r,o){return n.call(this,e,t,r,o)||this}return g(e,n),e.prototype.ngOnInit=function(){n.prototype.ngOnInit.call(this)},e}(l.SacDropzoneMultipleCommon);V.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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: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:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var j=function(n){function e(e,t,r,o){return n.call(this,e,t,r,o)||this}return g(e,n),e.prototype.ngOnInit=function(){n.prototype.ngOnInit.call(this)},e}(l.SacDropzoneSingleCommon);j.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:j},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return j}))}],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%}"]}]}],j.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var B=function(n){function e(e,t,r,o){return n.call(this,e,t,r,o)||this}return g(e,n),e}(l.SacUploadSingleCommon);B.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:B},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return B}))}],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}"]}]}],B.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var U=function(n){function e(e,t,r,o){return n.call(this,e,t,r,o)||this}return g(e,n),e}(l.SacUploadMultipleCommon);U.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:U},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return U}))}],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}"]}]}],U.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.NgZone}]};var W=function(){};W.decorators=[{type:r.NgModule,args:[{declarations:[B,U,j,V],imports:[e.CommonModule,o.FormsModule,P,F],exports:[B,U,j,V]}]}];var $=function(n){function e(e,t,r){var o=n.call(this,e,t)||this;return o.confirmService=r,o}return g(e,n),e.prototype.confirmDeleteFile=function(n){var e=this;return new a.Observable((function(n){a.forkJoin({title:e.lngResourceService.GetString(e.validationKeyService.FilebrowserButtonDelete),message:e.lngResourceService.GetString(e.validationKeyService.FilebrowserConfirmTextDeleteFile)}).subscribe((function(t){e.confirmService.ConfirmMessage(t.title,t.message).subscribe((function(e){"yes"===e?n.next(!0):n.next(!1),n.complete()}))}))}))},e.prototype.confirmDeleteNode=function(n){var e=this;return new a.Observable((function(n){a.forkJoin({title:e.lngResourceService.GetString(e.validationKeyService.FilebrowserButtonDelete),message:e.lngResourceService.GetString(e.validationKeyService.FilebrowserConfirmTextDeleteFolder)}).subscribe((function(t){e.confirmService.ConfirmMessage(t.title,t.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}(l.SacFileBrowserCommon);$.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:[x]}]}],$.ctorParameters=function(){return[{type:t.HttpClient},{type:r.Injector},{type:x}]},$.propDecorators={uploadComponent:[{type:r.ViewChild,args:[V,{static:!1}]}]};var K=function(){};K.decorators=[{type:r.NgModule,args:[{declarations:[$],imports:[e.CommonModule,t.HttpClientModule,C,E,W,R,o.FormsModule],exports:[$],bootstrap:[$]}]}];var q=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacCheckboxCommon);q.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>\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}}<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> </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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:q},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return q})),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}"]}]}],q.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var X=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(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 >\r\n <label\r\n class="col-form-label"\r\n [ngClass]="componentHeight | toLabelHeight"\r\n *ngIf="!disablelabel"\r\n >{{label}}<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> </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 >\r\n <ng-content></ng-content>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\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:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Q=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(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>\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:X,decorators:[{type:r.Host}]}]};var Z=function(){};Z.decorators=[{type:r.NgModule,args:[{declarations:[q,Q,X],imports:[e.CommonModule,P,F],exports:[q,Q,X]}]}];u.default;var J=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacDateCommon);J.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:r.forwardRef((function(){return J}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return J}))}]}]}],J.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef}]};var Y=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(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 nn=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacDateTimeCommon);nn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:r.forwardRef((function(){return nn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return nn}))}]}]}],nn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef}]};var en=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacTimeCommon);en.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:r.forwardRef((function(){return en}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return en}))}]}]}],en.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.ElementRef}]};var tn=function(){};tn.decorators=[{type:r.NgModule,args:[{declarations:[J,nn,en,Y],imports:[e.CommonModule,i.IMaskModule,P,F],exports:[J,nn,en,Y]}]}];var rn=function(n){function e(e,t){var r=n.call(this,e,t)||this;return r.ellipsis=!1,r}return g(e,n),e}(l.SacGridCommon);rn.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 *ngIf="value === undefined || value === null || value.length===0">\r\n <td [attr.colspan]="ColumnCount">{{emptytext}}</td>\r\n </tr>\r\n <tr *ngIf="pagerdata">\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 </tbody>\r\n </table>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:rn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return rn}))}]}]}],rn.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:r.Injector}]},rn.propDecorators={template:[{type:r.ContentChild,args:[r.TemplateRef,{static:!1}]}]};var on=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(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}(l.SacGridButtonCommon);on.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 ln=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacGridColumnCommon);ln.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>\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:l.SacGridColumnBaseCommon,useExisting:r.forwardRef((function(){return ln}))}]}]}],ln.ctorParameters=function(){return[{type:rn},{type:r.Injector},{type:r.ElementRef}]};var an=function(n){function e(e,t,r){var o=n.call(this,e,t,r)||this;return o.width="60px",o}return g(e,n),e}(l.SacGridColumnActionCommon);an.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 an}))}]}]}],an.ctorParameters=function(){return[{type:rn},{type:r.Injector},{type:r.ElementRef}]};var sn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(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}(l.SacGridImageCommon);sn.decorators=[{type:r.Component,args:[{selector:"sac-gridimage",template:'<span><span class="{{getIconClass()}}"></span></span>\r\n'}]}];var cn=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacPagingCommon);cn.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:cn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return cn}))}]}]}],cn.ctorParameters=function(){return[{type:r.Injector}]};var dn=function(){};dn.decorators=[{type:r.NgModule,args:[{declarations:[rn,ln,an,cn,on,sn],imports:[e.CommonModule,o.FormsModule],exports:[rn,ln,an,cn,on,sn]}]}];var pn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputCommon);pn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:pn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return pn}))}]}]}],pn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var un=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputAreaCommon);un.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"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:r.forwardRef((function(){return un}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return un}))}]}]}],un.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var mn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputCurrencyCommon);mn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return mn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return mn}))}]}]}],mn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var gn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputDecimalCommon);gn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:r.forwardRef((function(){return gn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return gn}))}]}]}],gn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var bn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputEmailCommon);bn.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"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:r.forwardRef((function(){return bn}))},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return bn}))}]}]}],bn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var vn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputIntegerCommon);vn.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"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:vn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return vn}))}]}]}],vn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var fn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputPasswordCommon);fn.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"\r\n [ngClass]="[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : \'sr-only\', componentHeight | toLabelHeight]"\r\n >{{label}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:fn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return fn}))}]}]}],fn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var hn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacInputSearchCommon);hn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n',providers:[{provide:o.NG_VALUE_ACCESSOR,multi:!0,useExisting:hn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return hn}))}]}]}],hn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var yn=function(){};yn.decorators=[{type:r.NgModule,args:[{declarations:[pn,un,mn,gn,bn,vn,fn,hn],imports:[e.CommonModule,P,F],exports:[pn,un,mn,gn,bn,vn,fn,hn]}]}];var xn=function(n){function e(e,t,r,o){return n.call(this,e,t,r,o)||this}return g(e,n),e}(l.SacDropdownCommon);xn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:xn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return xn}))}]}]}],xn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.Renderer2},{type:r.ElementRef}]};var Cn=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacDropdownOptionCommon);Cn.decorators=[{type:r.Directive,args:[{selector:"[sacOption],option"}]}],Cn.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:xn,decorators:[{type:r.Optional},{type:r.Host}]}]};var Sn=function(){};Sn.decorators=[{type:r.NgModule,args:[{declarations:[xn,Cn],imports:[e.CommonModule,P,F],exports:[xn,Cn]}]}];var In=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacListboxCommon);In.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:In},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return In}))}]}]}],In.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var wn=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e}(l.SacListboxOptionCommon);wn.decorators=[{type:r.Directive,args:[{selector:"[sacOption],option"}]}],wn.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:In,decorators:[{type:r.Optional},{type:r.Host}]}]};var Hn=function(){};Hn.decorators=[{type:r.NgModule,args:[{declarations:[In,wn],imports:[e.CommonModule,P,F],exports:[In,wn]}]}];var kn=function(n){function e(e,t){var r=n.call(this,e,t)||this;return r.IconType=l.IconType,r}return g(e,n),e}(l.SacMultilanguageInputCommon);kn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:kn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return kn}))}]}]}],kn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var En=function(n){function e(e,t){var r=n.call(this,e,t)||this;return r.IconType=l.IconType,r}return g(e,n),e}(l.SacMultilanguageInputAreaCommon);En.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:En},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return En}))}]}]}],En.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var Tn=function(n){function e(e,t,r,o,l){return n.call(this,e,t,r,o,l)||this}return g(e,n),e}(l.SacContextmenuCommon);Tn.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 Tn}))}]}]}],Tn.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:r.Injector}]};var An=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacContextmenuAnchorCommon);An.decorators=[{type:r.Directive,args:[{selector:"[sacMultilanguageMenuAnchor]",providers:[{provide:l.SacContextmenuAnchorCommon,useExisting:r.forwardRef((function(){return An}))}]}]}],An.ctorParameters=function(){return[{type:r.ElementRef}]};var Ln=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacContextMenuContrainerCommon);Ln.decorators=[{type:r.Directive,args:[{selector:"[sacMultilanguageMenuContainer]",providers:[{provide:l.SacContextMenuContrainerCommon,useExisting:r.forwardRef((function(){return Ln}))}]}]}],Ln.ctorParameters=function(){return[{type:r.ElementRef}]};var Mn=function(n){function e(e){return n.call(this,e)||this}return g(e,n),e}(l.SacContextmenuItemButtonCommon);Mn.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'}]}],Mn.ctorParameters=function(){return[{type:l.SacContextmenuCommon}]};var Rn=function(){};Rn.decorators=[{type:r.NgModule,args:[{declarations:[kn,En,Tn,An,Ln,Mn],imports:[e.CommonModule,P,F],exports:[kn,En]}]}];var zn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacStaticFormContainerCommon);zn.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\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 <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:zn},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return zn}))}]}]}],zn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var _n=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacStaticLabelCommon);_n.decorators=[{type:r.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}}<sac-tooltip\r\n *ngIf="helptextmode === \'tooltip\' && helptext"\r\n [tooltiptext]="helptext"\r\n [inlinemode]="true"\r\n ><span [ngClass]="HelptextTooltipIcon" 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 >\r\n <div\r\n [id]="name"\r\n class="form-control-plaintext"\r\n [ngClass]="[componentHeight | toControlHeight]"\r\n [innerHTML]="value"\r\n ></div>\r\n <small\r\n *ngIf="helptextmode === \'text\' && helptext"\r\n class="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:_n},{provide:o.NG_VALIDATORS,multi:!0,useExisting:r.forwardRef((function(){return _n}))}]}]}],_n.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var On=function(){};On.decorators=[{type:r.NgModule,args:[{declarations:[_n,zn],imports:[e.CommonModule,P,F],exports:[_n,zn]}]}];var Gn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacTabItemCommon);Gn.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 Nn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e.prototype.tabItems=function(){return this._tabItems.toArray()},e}(l.SacTabCommon);Nn.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'}]}],Nn.propDecorators={_tabItems:[{type:r.ContentChildren,args:[Gn]}]};var Pn=function(){};Pn.decorators=[{type:r.NgModule,args:[{declarations:[Nn,Gn],imports:[e.CommonModule],exports:[Nn,Gn]}]}];var Dn=function(n){function e(e,t,r){return n.call(this,e,t,r)||this}return g(e,n),e.prototype.overwriteDefaultSettings=function(){return{}},e}(l.SacTinyMceCommon);Dn.decorators=[{type:r.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"\r\n >{{label}}<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> </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 >\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="help-block"\r\n class="form-text text-muted"\r\n >\r\n {{helptext}}\r\n </small>\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:Dn},{provide:o.NG_VALIDATORS,useExisting:r.forwardRef((function(){return Dn})),multi:!0}],styles:[".is-invalid{border:1px solid var(--red)}"]}]}],Dn.ctorParameters=function(){return[{type:z,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector},{type:r.NgZone}]};var Fn=function(){};Fn.decorators=[{type:r.NgModule,args:[{declarations:[Dn],imports:[e.CommonModule,o.FormsModule,d.EditorModule,P,v,h,K,F],exports:[Dn]}]}];var Vn=function(n){function e(e,t){return n.call(this,e,t)||this}return g(e,n),e}(l.SacValidationSummaryCommon);Vn.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:Vn}]}]}],Vn.ctorParameters=function(){return[{type:T,decorators:[{type:r.Host},{type:r.Optional}]},{type:r.Injector}]};var jn=function(){};jn.decorators=[{type:r.NgModule,args:[{declarations:[Vn],imports:[e.CommonModule],exports:[Vn]}]}];var Bn=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e}(l.SacWizardItemCommon);Bn.decorators=[{type:r.Component,args:[{selector:"sac-wizarditem",template:""}]}];var Un=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return g(e,n),e.prototype.wizardItems=function(){return this._wizardItems},e}(l.SacWizardCommon);Un.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:Un}]}]}],Un.propDecorators={_wizardItems:[{type:r.ContentChildren,args:[Bn]}]};var Wn=function(){};Wn.decorators=[{type:r.NgModule,args:[{declarations:[Un,Bn],imports:[e.CommonModule],exports:[Un,Bn]}]}],n.NGFORM_FACTORY=L,n.SACBootstrap4BrowserModule=K,n.SACBootstrap4ButtonModule=v,n.SACBootstrap4CheckboxModule=Z,n.SACBootstrap4ConfirmModule=C,n.SACBootstrap4ContextmenuModule=E,n.SACBootstrap4DateTimeModule=tn,n.SACBootstrap4DialogModule=h,n.SACBootstrap4DropdownModule=Sn,n.SACBootstrap4FormModule=R,n.SACBootstrap4GridModule=dn,n.SACBootstrap4InputModule=yn,n.SACBootstrap4LayoutModule=P,n.SACBootstrap4ListModule=Hn,n.SACBootstrap4MultilanguageModule=Rn,n.SACBootstrap4StaticLabelModule=On,n.SACBootstrap4TabsModule=Pn,n.SACBootstrap4TinyMceModule=Fn,n.SACBootstrap4TooltipModule=F,n.SACBootstrap4UploadModule=W,n.SACBootstrap4ValidationSummaryModule=jn,n.SACBootstrap4WizardModule=Wn,n.SACFORM_FACTORY=M,n.SacFormDirective=T,n.SacInheritFormDirective=A,n.ServiceConfirm=x,n.ɵa=$,n.ɵb=V,n.ɵba=rn,n.ɵbb=ln,n.ɵbc=an,n.ɵbd=cn,n.ɵbe=on,n.ɵbf=sn,n.ɵbg=pn,n.ɵbh=un,n.ɵbi=mn,n.ɵbj=gn,n.ɵbk=bn,n.ɵbl=vn,n.ɵbm=fn,n.ɵbn=hn,n.ɵbo=xn,n.ɵbp=Cn,n.ɵbq=In,n.ɵbr=wn,n.ɵbs=kn,n.ɵbt=En,n.ɵbu=Tn,n.ɵbv=An,n.ɵbw=Ln,n.ɵbx=Mn,n.ɵby=_n,n.ɵbz=zn,n.ɵc=z,n.ɵca=Nn,n.ɵcb=Gn,n.ɵcc=Dn,n.ɵcd=Vn,n.ɵce=Un,n.ɵcf=Bn,n.ɵd=y,n.ɵe=f,n.ɵf=b,n.ɵg=S,n.ɵh=I,n.ɵi=w,n.ɵj=H,n.ɵk=k,n.ɵl=B,n.ɵm=U,n.ɵn=j,n.ɵo=_,n.ɵp=O,n.ɵq=G,n.ɵr=N,n.ɵs=D,n.ɵt=q,n.ɵu=Q,n.ɵv=X,n.ɵw=J,n.ɵx=nn,n.ɵy=en,n.ɵz=Y,Object.defineProperty(n,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap4.umd.min.js.map