@simpleangularcontrols/sac-bootstrap4 16.0.0-rc.4 → 16.0.0-rc.6

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 (78) hide show
  1. package/components/browser/browser.d.ts.map +1 -1
  2. package/controls/checkbox/checkbox.d.ts.map +1 -1
  3. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  4. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  5. package/controls/confirm/confirm.service.d.ts +10 -11
  6. package/controls/confirm/confirm.service.d.ts.map +1 -1
  7. package/controls/datetime/date.d.ts.map +1 -1
  8. package/controls/datetime/datetime.d.ts.map +1 -1
  9. package/controls/datetime/time.d.ts.map +1 -1
  10. package/controls/grid/grid.d.ts +2 -2
  11. package/controls/grid/grid.d.ts.map +1 -1
  12. package/controls/input/input.d.ts.map +1 -1
  13. package/controls/input/inputarea.d.ts.map +1 -1
  14. package/controls/input/inputcurrency.d.ts.map +1 -1
  15. package/controls/input/inputdecimal.d.ts.map +1 -1
  16. package/controls/input/inputemail.d.ts.map +1 -1
  17. package/controls/input/inputinteger.d.ts.map +1 -1
  18. package/controls/input/inputpassword.d.ts.map +1 -1
  19. package/controls/input/inputsearch.d.ts.map +1 -1
  20. package/controls/layout/layout.module.d.ts +5 -3
  21. package/controls/layout/layout.module.d.ts.map +1 -1
  22. package/controls/layout/tocontrolheight.pipe.d.ts +13 -0
  23. package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -0
  24. package/controls/layout/tolabelheight.pipe.d.ts +13 -0
  25. package/controls/layout/tolabelheight.pipe.d.ts.map +1 -0
  26. package/controls/list/dropdown.d.ts.map +1 -1
  27. package/controls/list/listbox.d.ts.map +1 -1
  28. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  29. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  30. package/controls/static/formcontainer.d.ts +2 -2
  31. package/controls/static/formcontainer.d.ts.map +1 -1
  32. package/controls/static/staticlabel.d.ts.map +1 -1
  33. package/controls/tinymce/tinymce.d.ts.map +1 -1
  34. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  35. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  36. package/controls/upload/upload.d.ts.map +1 -1
  37. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  38. package/esm2022/components/browser/browser.mjs +7 -7
  39. package/esm2022/controls/buttons/button.mjs +3 -3
  40. package/esm2022/controls/checkbox/checkbox.mjs +10 -3
  41. package/esm2022/controls/checkbox/radiobutton.mjs +3 -3
  42. package/esm2022/controls/checkbox/radiobuttons.mjs +10 -3
  43. package/esm2022/controls/confirm/confirm.mjs +3 -3
  44. package/esm2022/controls/confirm/confirm.service.mjs +31 -16
  45. package/esm2022/controls/datetime/date.mjs +7 -3
  46. package/esm2022/controls/datetime/datetime.mjs +7 -3
  47. package/esm2022/controls/datetime/time.mjs +7 -3
  48. package/esm2022/controls/grid/grid.mjs +6 -6
  49. package/esm2022/controls/input/input.mjs +7 -3
  50. package/esm2022/controls/input/inputarea.mjs +7 -3
  51. package/esm2022/controls/input/inputcurrency.mjs +7 -3
  52. package/esm2022/controls/input/inputdecimal.mjs +7 -3
  53. package/esm2022/controls/input/inputemail.mjs +7 -3
  54. package/esm2022/controls/input/inputinteger.mjs +7 -3
  55. package/esm2022/controls/input/inputpassword.mjs +7 -3
  56. package/esm2022/controls/input/inputsearch.mjs +12 -3
  57. package/esm2022/controls/layout/layout.module.mjs +11 -1
  58. package/esm2022/controls/layout/tocontrolheight.pipe.mjs +35 -0
  59. package/esm2022/controls/layout/tolabelheight.pipe.mjs +35 -0
  60. package/esm2022/controls/list/dropdown.mjs +7 -3
  61. package/esm2022/controls/list/listbox.mjs +7 -3
  62. package/esm2022/controls/multilanguage/multilanguageinput.mjs +7 -3
  63. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +7 -3
  64. package/esm2022/controls/static/formcontainer.mjs +7 -5
  65. package/esm2022/controls/static/staticlabel.mjs +12 -3
  66. package/esm2022/controls/tinymce/tinymce.mjs +5 -3
  67. package/esm2022/controls/upload/dropzonemultiple.mjs +5 -3
  68. package/esm2022/controls/upload/dropzonesingle.mjs +5 -3
  69. package/esm2022/controls/upload/upload.mjs +7 -3
  70. package/esm2022/controls/upload/uploadmultiple.mjs +5 -3
  71. package/esm2022/public_api.mjs +3 -1
  72. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs +227 -82
  73. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs.map +1 -1
  74. package/package.json +2 -2
  75. package/public_api.d.ts +2 -0
  76. package/public_api.d.ts.map +1 -1
  77. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.6.tgz +0 -0
  78. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.4.tgz +0 -0
@@ -6,8 +6,9 @@ import { HttpClientModule } from '@angular/common/http';
6
6
  import * as i1$2 from '@angular/forms';
7
7
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ControlContainer, NgForm } from '@angular/forms';
8
8
  import * as i1 from '@simpleangularcontrols/sac-common';
9
- import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacFormLayoutCommon, SacDropzoneMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateSelectorCommon, SacDateCommon, SacDateTimeCommon, SacTimeCommon, SacFormCommon, SacPagingCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacInputCommon, SacInputEmailCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticLabelCommon, SacStaticFormContainerCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
10
- import { Observable, forkJoin } from 'rxjs';
9
+ import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, ControlHeight, SacFormLayoutCommon, SacDropzoneMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateSelectorCommon, SacDateCommon, SacDateTimeCommon, SacTimeCommon, SacFormCommon, SacPagingCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacInputCommon, SacInputEmailCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticLabelCommon, SacStaticFormContainerCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
10
+ import { forkJoin, Observable } from 'rxjs';
11
+ import { take } from 'rxjs/operators';
11
12
  import { IMaskDirective, IMaskModule } from 'angular-imask';
12
13
  import * as moment_ from 'moment';
13
14
  import { EditorComponent } from '@tinymce/tinymce-angular';
@@ -19,11 +20,11 @@ import { EditorComponent } from '@tinymce/tinymce-angular';
19
20
  */
20
21
  class SacButtonComponent extends SacButtonCommon {
21
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacButtonComponent, isStandalone: true, selector: "sac-button", usesInheritance: true, ngImport: i0, 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\"></i\r\n >{{text}}\r\n</button>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacButtonComponent, isStandalone: true, selector: "sac-button", usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
23
24
  }
24
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacButtonComponent, decorators: [{
25
26
  type: Component,
26
- args: [{ selector: 'sac-button', standalone: true, imports: [NgIf, NgClass], 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\"></i\r\n >{{text}}\r\n</button>\r\n" }]
27
+ args: [{ selector: 'sac-button', standalone: true, imports: [NgIf, NgClass], 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" }]
27
28
  }] });
28
29
 
29
30
  /**
@@ -69,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69
70
  */
70
71
  class SacConfirmComponent extends SacConfirmCommon {
71
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacConfirmComponent, isStandalone: true, selector: "sac-confirm", usesInheritance: true, ngImport: i0, template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n", dependencies: [{ kind: "component", type: SacDialogComponent, selector: "sac-dialog" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SacButtonComponent, selector: "sac-button" }] }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacConfirmComponent, isStandalone: true, selector: "sac-confirm", usesInheritance: true, ngImport: i0, template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n", dependencies: [{ kind: "component", type: SacDialogComponent, selector: "sac-dialog" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SacButtonComponent, selector: "sac-button" }] }); }
73
74
  }
74
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacConfirmComponent, decorators: [{
75
76
  type: Component,
@@ -78,7 +79,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
78
79
  NgIf,
79
80
  NgFor,
80
81
  SacButtonComponent,
81
- ], template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n" }]
82
+ ], template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n" }]
82
83
  }] });
83
84
 
84
85
  /**
@@ -96,6 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
96
97
  * confirmService.ConfirmMessage('titel', 'frage', buttons).subscribe(action => { // Action Code });
97
98
  */
98
99
  class ServiceConfirm extends ServiceConfirmCommon {
100
+ // #endregion Properties
101
+ // #region Constructors
99
102
  /**
100
103
  * Konstruktor
101
104
  * @param componentFactoryResolver Component Factory Resolver Instanz
@@ -105,25 +108,22 @@ class ServiceConfirm extends ServiceConfirmCommon {
105
108
  constructor(componentFactoryResolver, appRef, injector) {
106
109
  super(appRef, injector);
107
110
  this.componentFactoryResolver = componentFactoryResolver;
111
+ // #region Properties
108
112
  /**
109
- * Titel der im Dialog angezeigt werden soll.
113
+ * Collection von Buttons die angezeigt werden müssen.
110
114
  */
111
- this.title = '';
115
+ this.buttons = [];
112
116
  /**
113
117
  * Message die in Dialog angezeigt werden soll.
114
118
  */
115
119
  this.message = '';
116
120
  /**
117
- * Collection von Buttons die angezeigt werden müssen.
121
+ * Titel der im Dialog angezeigt werden soll.
118
122
  */
119
- this.buttons = [];
120
- }
121
- /**
122
- * Erzeugen einer Component Factory für einen Dialog
123
- */
124
- GetComponentFactory() {
125
- return this.componentFactoryResolver.resolveComponentFactory(SacConfirmComponent);
123
+ this.title = '';
126
124
  }
125
+ // #endregion Constructors
126
+ // #region Public Methods
127
127
  /**
128
128
  * Confirm Dialog anzeigen
129
129
  * @param message Nachricht die angezeigt werden soll.
@@ -134,16 +134,30 @@ class ServiceConfirm extends ServiceConfirmCommon {
134
134
  this.message = message;
135
135
  // Default Buttons setzen, wenn keine Buttons angegeben sind
136
136
  if (!isDefined(buttons)) {
137
- // TODO: Text von Localisation Service beziehen
138
137
  this.buttons = [];
139
- this.buttons.push(new SacConfirmButton('yes', 'Ja'));
140
- this.buttons.push(new SacConfirmButton('no', 'Nein'));
138
+ forkJoin({
139
+ button_yes: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonYes),
140
+ button_no: this.localisationService.GetString(this.validationKeyService.ConfirmDefaultButtonNo),
141
+ })
142
+ .pipe(take(1))
143
+ .subscribe((texte) => {
144
+ this.buttons.push(new SacConfirmButton('yes', texte.button_yes, 'primary'));
145
+ this.buttons.push(new SacConfirmButton('no', texte.button_no));
146
+ });
141
147
  }
142
148
  else {
143
149
  this.buttons = buttons;
144
150
  }
145
151
  return super.Confirm();
146
152
  }
153
+ /**
154
+ * Erzeugen einer Component Factory für einen Dialog
155
+ */
156
+ GetComponentFactory() {
157
+ return this.componentFactoryResolver.resolveComponentFactory(SacConfirmComponent);
158
+ }
159
+ // #endregion Public Methods
160
+ // #region Protected Methods
147
161
  /**
148
162
  * Konfiguration des Dialogs
149
163
  * @param instance Instanz eines SacConfirm Dialogs
@@ -359,6 +373,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
359
373
  }]
360
374
  }] });
361
375
 
376
+ class SacToLabelHeightPipe {
377
+ // #region Public Methods
378
+ /**
379
+ * Returns the CSS class that defines the height for the control
380
+ * @param value ControlHeight value or null
381
+ */
382
+ transform(value) {
383
+ // Return default value
384
+ if (!value) {
385
+ return '';
386
+ }
387
+ switch (value) {
388
+ case ControlHeight.Small:
389
+ return 'col-form-label-sm';
390
+ case ControlHeight.Large:
391
+ return 'col-form-label-lg';
392
+ default:
393
+ return '';
394
+ }
395
+ }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
397
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, isStandalone: true, name: "toLabelHeight" }); }
398
+ }
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, decorators: [{
400
+ type: Pipe,
401
+ args: [{
402
+ name: 'toLabelHeight',
403
+ standalone: true,
404
+ }]
405
+ }] });
406
+
362
407
  class SacToLabelWidthCssPipe {
363
408
  // #region Public Methods
364
409
  /**
@@ -444,7 +489,7 @@ class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
444
489
  multi: true,
445
490
  useExisting: forwardRef(() => SacDropzoneMultipleComponent),
446
491
  },
447
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
492
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
448
493
  }
449
494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropzoneMultipleComponent, decorators: [{
450
495
  type: Component,
@@ -466,7 +511,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
466
511
  AsyncPipe,
467
512
  SacToLabelWidthCssPipe,
468
513
  SacToControlWidthCssPipe,
469
- ], 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' ]\"\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 class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"] }]
514
+ SacToLabelHeightPipe,
515
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"] }]
470
516
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
471
517
  type: Host
472
518
  }, {
@@ -499,8 +545,8 @@ class SacBrowserComponent extends SacFileBrowserCommon {
499
545
  confirmDeleteFile(file) {
500
546
  return new Observable((observer) => {
501
547
  forkJoin({
502
- title: this.lngResourceService.GetString('FILEBROWSER_DELETE'),
503
- message: this.lngResourceService.GetString('FILEBROWSER_CONFIRM_DELETEFILE'),
548
+ title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
549
+ message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserConfirmTextDeleteFile),
504
550
  }).subscribe((text) => {
505
551
  this.confirmService
506
552
  .ConfirmMessage(text.title, text.message)
@@ -524,8 +570,8 @@ class SacBrowserComponent extends SacFileBrowserCommon {
524
570
  confirmDeleteNode(node) {
525
571
  return new Observable((observer) => {
526
572
  forkJoin({
527
- title: this.lngResourceService.GetString('FILEBROWSER_DELETE'),
528
- message: this.lngResourceService.GetString('FILEBROWSER_CONFIRM_DELETEFOLDER'),
573
+ title: this.lngResourceService.GetString(this.validationKeyService.FilebrowserButtonDelete),
574
+ message: this.lngResourceService.GetString(this.validationKeyService.FilebrowserConfirmTextDeleteFolder),
529
575
  }).subscribe((text) => {
530
576
  this.confirmService
531
577
  .ConfirmMessage(text.title, text.message)
@@ -560,7 +606,7 @@ class SacBrowserComponent extends SacFileBrowserCommon {
560
606
  }
561
607
  }
562
608
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBrowserComponent, deps: [{ token: i1$1.HttpClient }, { token: i0.Injector }, { token: ServiceConfirm }], target: i0.ɵɵFactoryTarget.Component }); }
563
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacBrowserComponent, isStandalone: true, selector: "sac-filebrowser", providers: [ServiceConfirm], viewQueries: [{ propertyName: "uploadComponent", first: true, predicate: SacDropzoneMultipleComponent, descendants: true }], usesInheritance: true, ngImport: i0, 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('FILEBROWSER_NEWFOLDER') | 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('FILEBROWSER_DELETE') | 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('FILEBROWSER_REFRESH') | 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 >{{ lngResourceService.GetString('FILEBROWSER_UPLOAD') | async\r\n }}</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 {{ lngResourceService.GetString('FILEBROWSER_GRID_FILE') | async\r\n }}\r\n </th>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_SIZE') | async\r\n }}\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 {{ lngResourceService.GetString('FILEBROWSER_NO_FILES') |\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", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type: SacContextmenuComponent, selector: "sac-contextmenu" }, { kind: "component", type: SacContextmenuItemButtonComponent, selector: "sac-contextmenubutton" }, { kind: "component", type: SacContextmenuItemSplitterComponent, selector: "sac-contextmenusplitter" }, { kind: "component", type: SacDropzoneMultipleComponent, selector: "sac-dropzonemultiple" }] }); }
609
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacBrowserComponent, isStandalone: true, selector: "sac-filebrowser", providers: [ServiceConfirm], viewQueries: [{ propertyName: "uploadComponent", first: true, predicate: SacDropzoneMultipleComponent, descendants: true }], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type: SacContextmenuComponent, selector: "sac-contextmenu" }, { kind: "component", type: SacContextmenuItemButtonComponent, selector: "sac-contextmenubutton" }, { kind: "component", type: SacContextmenuItemSplitterComponent, selector: "sac-contextmenusplitter" }, { kind: "component", type: SacDropzoneMultipleComponent, selector: "sac-dropzonemultiple" }] }); }
564
610
  }
565
611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBrowserComponent, decorators: [{
566
612
  type: Component,
@@ -576,7 +622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
576
622
  SacContextmenuItemButtonComponent,
577
623
  SacContextmenuItemSplitterComponent,
578
624
  SacDropzoneMultipleComponent,
579
- ], providers: [ServiceConfirm], 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('FILEBROWSER_NEWFOLDER') | 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('FILEBROWSER_DELETE') | 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('FILEBROWSER_REFRESH') | 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 >{{ lngResourceService.GetString('FILEBROWSER_UPLOAD') | async\r\n }}</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 {{ lngResourceService.GetString('FILEBROWSER_GRID_FILE') | async\r\n }}\r\n </th>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_SIZE') | async\r\n }}\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 {{ lngResourceService.GetString('FILEBROWSER_NO_FILES') |\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" }]
625
+ ], providers: [ServiceConfirm], 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" }]
580
626
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i0.Injector }, { type: ServiceConfirm }]; }, propDecorators: { uploadComponent: [{
581
627
  type: ViewChild,
582
628
  args: [SacDropzoneMultipleComponent, { static: false }]
@@ -638,7 +684,7 @@ class SacCheckboxComponent extends SacCheckboxCommon {
638
684
  useExisting: forwardRef(() => SacCheckboxComponent),
639
685
  multi: true,
640
686
  },
641
- ], usesInheritance: true, ngImport: i0, 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 && !stacked ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n <label *ngIf=\"!disablelabel && !stacked\" for=\"{{name}}\">{{label}}</label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"form-check\">\r\n <input\r\n class=\"form-check-input\"\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 for=\"{{name}}\" class=\"form-check-label\">\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
687
+ ], usesInheritance: true, ngImport: i0, 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", styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{width:1rem;height:1rem}.form-check-input-sm{width:.875rem;height:.875rem;margin-top:.4rem}.form-check-input-lg{width:1.25rem;height:1.25rem;margin-left:-1.75rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
642
688
  }
643
689
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacCheckboxComponent, decorators: [{
644
690
  type: Component,
@@ -653,7 +699,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
653
699
  useExisting: forwardRef(() => SacCheckboxComponent),
654
700
  multi: true,
655
701
  },
656
- ], standalone: true, imports: [NgClass, NgIf, SacToLabelWidthCssPipe, SacToControlWidthCssPipe], 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 && !stacked ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n <label *ngIf=\"!disablelabel && !stacked\" for=\"{{name}}\">{{label}}</label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"form-check\">\r\n <input\r\n class=\"form-check-input\"\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 for=\"{{name}}\" class=\"form-check-label\">\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
702
+ ], standalone: true, imports: [
703
+ NgClass,
704
+ NgIf,
705
+ SacToLabelWidthCssPipe,
706
+ SacToControlWidthCssPipe,
707
+ SacToLabelHeightPipe,
708
+ ], 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", styles: [".form-check-lg{padding-left:1.75rem}.form-check-input{width:1rem;height:1rem}.form-check-input-sm{width:.875rem;height:.875rem;margin-top:.4rem}.form-check-input-lg{width:1.25rem;height:1.25rem;margin-left:-1.75rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}\n"] }]
657
709
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
658
710
  type: Host
659
711
  }, {
@@ -685,7 +737,7 @@ class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
685
737
  useExisting: forwardRef(() => SacRadiobuttonsComponent),
686
738
  multi: true,
687
739
  },
688
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 col-form-label pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\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 </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
740
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
689
741
  }
690
742
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonsComponent, decorators: [{
691
743
  type: Component,
@@ -700,7 +752,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
700
752
  useExisting: forwardRef(() => SacRadiobuttonsComponent),
701
753
  multi: true,
702
754
  },
703
- ], standalone: true, imports: [NgIf, NgClass, SacToLabelWidthCssPipe, SacToControlWidthCssPipe], template: "<div class=\"row form-group\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 col-form-label pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\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 </div>\r\n</div>\r\n" }]
755
+ ], standalone: true, imports: [
756
+ NgIf,
757
+ NgClass,
758
+ SacToLabelWidthCssPipe,
759
+ SacToControlWidthCssPipe,
760
+ SacToLabelHeightPipe,
761
+ ], 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" }]
704
762
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
705
763
  type: Host
706
764
  }, {
@@ -719,11 +777,11 @@ class SacRadiobuttonComponent extends SacRadiobuttonCommon {
719
777
  super(sacRadioButtons);
720
778
  }
721
779
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonComponent, deps: [{ token: SacRadiobuttonsComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
722
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacRadiobuttonComponent, isStandalone: true, selector: "sac-radiobutton", usesInheritance: true, ngImport: i0, template: "<div class=\"form-check\" *ngIf=\"hidden===false\">\r\n <input id=\"{{getName}}_{{getIndex}}\" name=\"{{getName}}\" type=\"radio\" class=\"form-check-input\" [value]=\"value\"\r\n [checked]=\"checked\" (change)=\"ChangeEvent()\" [disabled]=\"isDisabled\" />\r\n <label for=\"{{getName}}_{{getIndex}}\" class=\"form-check-label\">\r\n <ng-template *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\">\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
780
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacRadiobuttonComponent, isStandalone: true, selector: "sac-radiobutton", usesInheritance: true, ngImport: i0, 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{width:1rem;height:1rem}.form-check-input-sm{width:.875rem;height:.875rem;margin-top:.4rem}.form-check-input-lg{width:1.25rem;height:1.25rem;margin-left:-1.75rem;margin-top:.4rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
723
781
  }
724
782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonComponent, decorators: [{
725
783
  type: Component,
726
- args: [{ selector: 'sac-radiobutton', standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div class=\"form-check\" *ngIf=\"hidden===false\">\r\n <input id=\"{{getName}}_{{getIndex}}\" name=\"{{getName}}\" type=\"radio\" class=\"form-check-input\" [value]=\"value\"\r\n [checked]=\"checked\" (change)=\"ChangeEvent()\" [disabled]=\"isDisabled\" />\r\n <label for=\"{{getName}}_{{getIndex}}\" class=\"form-check-label\">\r\n <ng-template *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\">\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>" }]
784
+ args: [{ selector: 'sac-radiobutton', standalone: true, imports: [NgIf, NgTemplateOutlet], 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{width:1rem;height:1rem}.form-check-input-sm{width:.875rem;height:.875rem;margin-top:.4rem}.form-check-input-lg{width:1.25rem;height:1.25rem;margin-left:-1.75rem;margin-top:.4rem}.form-check-label-sm{font-size:.875rem}.form-check-label-lg{font-size:1.25rem}\n"] }]
727
785
  }], ctorParameters: function () { return [{ type: SacRadiobuttonsComponent, decorators: [{
728
786
  type: Host
729
787
  }] }]; } });
@@ -799,6 +857,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
799
857
  }]
800
858
  }] });
801
859
 
860
+ class SacToControlHeightPipe {
861
+ // #region Public Methods
862
+ /**
863
+ * Returns the CSS class that defines the height for the control
864
+ * @param value ControlHeight value or null
865
+ */
866
+ transform(value) {
867
+ // Return default value
868
+ if (!value) {
869
+ return '';
870
+ }
871
+ switch (value) {
872
+ case ControlHeight.Small:
873
+ return 'form-control-sm';
874
+ case ControlHeight.Large:
875
+ return 'form-control-lg';
876
+ default:
877
+ return '';
878
+ }
879
+ }
880
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToControlHeightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
881
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SacToControlHeightPipe, isStandalone: true, name: "toControlHeight" }); }
882
+ }
883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToControlHeightPipe, decorators: [{
884
+ type: Pipe,
885
+ args: [{
886
+ name: 'toControlHeight',
887
+ standalone: true,
888
+ }]
889
+ }] });
890
+
802
891
  /**
803
892
  * DateTime Selektor Komponente
804
893
  */
@@ -846,7 +935,7 @@ class SacDateComponent extends SacDateCommon {
846
935
  multi: true,
847
936
  useExisting: forwardRef(() => SacDateComponent),
848
937
  },
849
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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-sm 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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
938
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
850
939
  }
851
940
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDateComponent, decorators: [{
852
941
  type: Component,
@@ -869,7 +958,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
869
958
  AsyncPipe,
870
959
  SacToLabelWidthCssPipe,
871
960
  SacToControlWidthCssPipe,
872
- ], 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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-sm 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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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" }]
961
+ SacToLabelHeightPipe,
962
+ SacToControlHeightPipe,
963
+ ], 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" }]
873
964
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
874
965
  type: Host
875
966
  }, {
@@ -902,7 +993,7 @@ class SacDateTimeComponent extends SacDateTimeCommon {
902
993
  multi: true,
903
994
  useExisting: forwardRef(() => SacDateTimeComponent),
904
995
  },
905
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
996
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
906
997
  }
907
998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDateTimeComponent, decorators: [{
908
999
  type: Component,
@@ -925,7 +1016,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
925
1016
  SacDateSelectorComponent,
926
1017
  SacToLabelWidthCssPipe,
927
1018
  SacToControlWidthCssPipe,
928
- ], 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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" }]
1019
+ SacToLabelHeightPipe,
1020
+ SacToControlHeightPipe,
1021
+ ], 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" }]
929
1022
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
930
1023
  type: Host
931
1024
  }, {
@@ -958,7 +1051,7 @@ class SacTimeComponent extends SacTimeCommon {
958
1051
  multi: true,
959
1052
  useExisting: forwardRef(() => SacTimeComponent),
960
1053
  },
961
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1054
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacDateSelectorComponent, selector: "sac-dateselector" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
962
1055
  }
963
1056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTimeComponent, decorators: [{
964
1057
  type: Component,
@@ -981,7 +1074,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
981
1074
  SacDateSelectorComponent,
982
1075
  SacToLabelWidthCssPipe,
983
1076
  SacToControlWidthCssPipe,
984
- ], 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 12px\"></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" }]
1077
+ SacToLabelHeightPipe,
1078
+ SacToControlHeightPipe,
1079
+ ], 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" }]
985
1080
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
986
1081
  type: Host
987
1082
  }, {
@@ -1215,14 +1310,14 @@ class SacGridComponent extends SacGridCommon {
1215
1310
  * Konstrukor
1216
1311
  * @param cdRef Change Detection Reference
1217
1312
  */
1218
- constructor(cdRef) {
1219
- super(cdRef);
1313
+ constructor(cdRef, injector) {
1314
+ super(cdRef, injector);
1220
1315
  /**
1221
1316
  * Setzt die Ellipsis Funktion auf der Column
1222
1317
  */
1223
1318
  this.ellipsis = false;
1224
1319
  }
1225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacGridComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacGridComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1226
1321
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacGridComponent, isStandalone: true, selector: "sac-grid", providers: [
1227
1322
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacGridComponent },
1228
1323
  {
@@ -1242,7 +1337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1242
1337
  useExisting: forwardRef(() => SacGridComponent),
1243
1338
  },
1244
1339
  ], standalone: true, imports: [NgTemplateOutlet, NgFor, NgIf, SacPagingComponent], 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" }]
1245
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { template: [{
1340
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, propDecorators: { template: [{
1246
1341
  type: ContentChild,
1247
1342
  args: [TemplateRef, { static: false }]
1248
1343
  }] } });
@@ -1418,7 +1513,7 @@ class SacInputComponent extends SacInputCommon {
1418
1513
  multi: true,
1419
1514
  useExisting: forwardRef(() => SacInputComponent),
1420
1515
  },
1421
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1516
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1422
1517
  }
1423
1518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputComponent, decorators: [{
1424
1519
  type: Component,
@@ -1435,7 +1530,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1435
1530
  AsyncPipe,
1436
1531
  SacToLabelWidthCssPipe,
1437
1532
  SacToControlWidthCssPipe,
1438
- ], 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1533
+ SacToLabelHeightPipe,
1534
+ SacToControlHeightPipe,
1535
+ ], 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" }]
1439
1536
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1440
1537
  type: Host
1441
1538
  }, {
@@ -1467,7 +1564,7 @@ class SacInputEmailComponent extends SacInputEmailCommon {
1467
1564
  multi: true,
1468
1565
  useExisting: forwardRef(() => SacInputEmailComponent),
1469
1566
  },
1470
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1567
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1471
1568
  }
1472
1569
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputEmailComponent, decorators: [{
1473
1570
  type: Component,
@@ -1488,7 +1585,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1488
1585
  AsyncPipe,
1489
1586
  SacToLabelWidthCssPipe,
1490
1587
  SacToControlWidthCssPipe,
1491
- ], 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1588
+ SacToLabelHeightPipe,
1589
+ SacToControlHeightPipe,
1590
+ ], 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" }]
1492
1591
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1493
1592
  type: Host
1494
1593
  }, {
@@ -1520,7 +1619,7 @@ class SacInputAreaComponent extends SacInputAreaCommon {
1520
1619
  multi: true,
1521
1620
  useExisting: forwardRef(() => SacInputAreaComponent),
1522
1621
  },
1523
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1622
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1524
1623
  }
1525
1624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputAreaComponent, decorators: [{
1526
1625
  type: Component,
@@ -1541,7 +1640,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1541
1640
  AsyncPipe,
1542
1641
  SacToLabelWidthCssPipe,
1543
1642
  SacToControlWidthCssPipe,
1544
- ], 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1643
+ SacToLabelHeightPipe,
1644
+ SacToControlHeightPipe,
1645
+ ], 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" }]
1545
1646
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1546
1647
  type: Host
1547
1648
  }, {
@@ -1573,7 +1674,7 @@ class SacInputCurrencyComponent extends SacInputCurrencyCommon {
1573
1674
  multi: true,
1574
1675
  useExisting: forwardRef(() => SacInputCurrencyComponent),
1575
1676
  },
1576
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n />\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\">CHF</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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1677
+ ], usesInheritance: true, ngImport: i0, 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\">CHF</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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1577
1678
  }
1578
1679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputCurrencyComponent, decorators: [{
1579
1680
  type: Component,
@@ -1594,7 +1695,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1594
1695
  AsyncPipe,
1595
1696
  SacToLabelWidthCssPipe,
1596
1697
  SacToControlWidthCssPipe,
1597
- ], 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' ]\"\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 input-group-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n />\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\">CHF</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" }]
1698
+ SacToLabelHeightPipe,
1699
+ SacToControlHeightPipe,
1700
+ ], 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\">CHF</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" }]
1598
1701
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1599
1702
  type: Host
1600
1703
  }, {
@@ -1626,7 +1729,7 @@ class SacInputDecimalComponent extends SacInputDecimalCommon {
1626
1729
  multi: true,
1627
1730
  useExisting: forwardRef(() => SacInputDecimalComponent),
1628
1731
  },
1629
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1732
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1630
1733
  }
1631
1734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputDecimalComponent, decorators: [{
1632
1735
  type: Component,
@@ -1647,7 +1750,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1647
1750
  AsyncPipe,
1648
1751
  SacToLabelWidthCssPipe,
1649
1752
  SacToControlWidthCssPipe,
1650
- ], 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1753
+ SacToLabelHeightPipe,
1754
+ SacToControlHeightPipe,
1755
+ ], 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" }]
1651
1756
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1652
1757
  type: Host
1653
1758
  }, {
@@ -1679,7 +1784,7 @@ class SacInputIntegerComponent extends SacInputIntegerCommon {
1679
1784
  multi: true,
1680
1785
  useExisting: forwardRef(() => SacInputIntegerComponent),
1681
1786
  },
1682
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1787
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1683
1788
  }
1684
1789
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputIntegerComponent, decorators: [{
1685
1790
  type: Component,
@@ -1700,7 +1805,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1700
1805
  AsyncPipe,
1701
1806
  SacToLabelWidthCssPipe,
1702
1807
  SacToControlWidthCssPipe,
1703
- ], 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1808
+ SacToLabelHeightPipe,
1809
+ SacToControlHeightPipe,
1810
+ ], 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" }]
1704
1811
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1705
1812
  type: Host
1706
1813
  }, {
@@ -1732,7 +1839,7 @@ class SacInputPasswordComponent extends SacInputPasswordCommon {
1732
1839
  multi: true,
1733
1840
  useExisting: forwardRef(() => SacInputPasswordComponent),
1734
1841
  },
1735
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1842
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1736
1843
  }
1737
1844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputPasswordComponent, decorators: [{
1738
1845
  type: Component,
@@ -1753,7 +1860,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1753
1860
  AsyncPipe,
1754
1861
  SacToLabelWidthCssPipe,
1755
1862
  SacToControlWidthCssPipe,
1756
- ], 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' ]\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1863
+ SacToLabelHeightPipe,
1864
+ SacToControlHeightPipe,
1865
+ ], 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" }]
1757
1866
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1758
1867
  type: Host
1759
1868
  }, {
@@ -1785,7 +1894,7 @@ class SacInputSearchComponent extends SacInputSearchCommon {
1785
1894
  multi: true,
1786
1895
  useExisting: forwardRef(() => SacInputSearchComponent),
1787
1896
  },
1788
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 class=\"input-group input-group-sm\">\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
1897
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
1789
1898
  }
1790
1899
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacInputSearchComponent, decorators: [{
1791
1900
  type: Component,
@@ -1800,7 +1909,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1800
1909
  multi: true,
1801
1910
  useExisting: forwardRef(() => SacInputSearchComponent),
1802
1911
  },
1803
- ], standalone: true, imports: [NgIf, NgClass, SacToLabelWidthCssPipe, SacToControlWidthCssPipe], 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' ]\"\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 class=\"input-group input-group-sm\">\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
1912
+ ], standalone: true, imports: [
1913
+ NgIf,
1914
+ NgClass,
1915
+ SacToLabelWidthCssPipe,
1916
+ SacToControlWidthCssPipe,
1917
+ SacToLabelHeightPipe,
1918
+ SacToControlHeightPipe,
1919
+ ], 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" }]
1804
1920
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1805
1921
  type: Host
1806
1922
  }, {
@@ -1828,9 +1944,13 @@ class SACBootstrap4LayoutModule {
1828
1944
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1829
1945
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4LayoutModule, imports: [CommonModule,
1830
1946
  SacFormLayoutDirective,
1947
+ SacToControlHeightPipe,
1831
1948
  SacToControlWidthCssPipe,
1949
+ SacToLabelHeightPipe,
1832
1950
  SacToLabelWidthCssPipe], exports: [SacFormLayoutDirective,
1951
+ SacToControlHeightPipe,
1833
1952
  SacToControlWidthCssPipe,
1953
+ SacToLabelHeightPipe,
1834
1954
  SacToLabelWidthCssPipe] }); }
1835
1955
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4LayoutModule, imports: [CommonModule] }); }
1836
1956
  }
@@ -1840,12 +1960,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1840
1960
  imports: [
1841
1961
  CommonModule,
1842
1962
  SacFormLayoutDirective,
1963
+ SacToControlHeightPipe,
1843
1964
  SacToControlWidthCssPipe,
1965
+ SacToLabelHeightPipe,
1844
1966
  SacToLabelWidthCssPipe,
1845
1967
  ],
1846
1968
  exports: [
1847
1969
  SacFormLayoutDirective,
1970
+ SacToControlHeightPipe,
1848
1971
  SacToControlWidthCssPipe,
1972
+ SacToLabelHeightPipe,
1849
1973
  SacToLabelWidthCssPipe,
1850
1974
  ],
1851
1975
  }]
@@ -1879,7 +2003,7 @@ class SacDropdownComponent extends SacDropdownCommon {
1879
2003
  multi: true,
1880
2004
  useExisting: forwardRef(() => SacDropdownComponent),
1881
2005
  },
1882
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }] }); }
2006
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelHeightPipe; }), name: "toLabelHeight" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlHeightPipe; }), name: "toControlHeight" }] }); }
1883
2007
  }
1884
2008
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, decorators: [{
1885
2009
  type: Component,
@@ -1903,7 +2027,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1903
2027
  AsyncPipe,
1904
2028
  SacToLabelWidthCssPipe,
1905
2029
  SacToControlWidthCssPipe,
1906
- ], 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' ]\"\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 form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
2030
+ SacToLabelHeightPipe,
2031
+ SacToControlHeightPipe,
2032
+ ], 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" }]
1907
2033
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1908
2034
  type: Host
1909
2035
  }, {
@@ -1980,7 +2106,7 @@ class SacListboxComponent extends SacListboxCommon {
1980
2106
  multi: true,
1981
2107
  useExisting: forwardRef(() => SacListboxComponent),
1982
2108
  },
1983
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "directive", type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }] }); }
2109
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "directive", type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelHeightPipe; }), name: "toLabelHeight" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlHeightPipe; }), name: "toControlHeight" }] }); }
1984
2110
  }
1985
2111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, decorators: [{
1986
2112
  type: Component,
@@ -2003,7 +2129,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2003
2129
  forwardRef(() => SacListboxOptionDirective),
2004
2130
  SacToLabelWidthCssPipe,
2005
2131
  SacToControlWidthCssPipe,
2006
- ], 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' ]\"\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 form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
2132
+ SacToLabelHeightPipe,
2133
+ SacToControlHeightPipe,
2134
+ ], 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" }]
2007
2135
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2008
2136
  type: Host
2009
2137
  }, {
@@ -2208,7 +2336,7 @@ class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
2208
2336
  multi: true,
2209
2337
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
2210
2338
  },
2211
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2339
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
2212
2340
  }
2213
2341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputComponent, decorators: [{
2214
2342
  type: Component,
@@ -2233,7 +2361,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2233
2361
  SacMultilanguagemenuItemButtonComponent,
2234
2362
  SacToLabelWidthCssPipe,
2235
2363
  SacToControlWidthCssPipe,
2236
- ], 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' ]\"\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 input-group-sm\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
2364
+ SacToLabelHeightPipe,
2365
+ SacToControlHeightPipe,
2366
+ ], 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" }]
2237
2367
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2238
2368
  type: Host
2239
2369
  }, {
@@ -2271,7 +2401,7 @@ class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAreaCommon
2271
2401
  multi: true,
2272
2402
  useExisting: forwardRef(() => SacMultilanguageInputAreaComponent),
2273
2403
  },
2274
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 input-group-sm\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2404
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
2275
2405
  }
2276
2406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputAreaComponent, decorators: [{
2277
2407
  type: Component,
@@ -2296,7 +2426,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2296
2426
  SacMultilanguagemenuItemButtonComponent,
2297
2427
  SacToLabelWidthCssPipe,
2298
2428
  SacToControlWidthCssPipe,
2299
- ], 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' ]\"\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 input-group-sm\"\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 form-control-sm\"\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 [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\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" }]
2429
+ SacToLabelHeightPipe,
2430
+ SacToControlHeightPipe,
2431
+ ], 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" }]
2300
2432
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2301
2433
  type: Host
2302
2434
  }, {
@@ -2351,7 +2483,7 @@ class SacStaticLabelComponent extends SacStaticLabelCommon {
2351
2483
  multi: true,
2352
2484
  useExisting: forwardRef(() => SacStaticLabelComponent),
2353
2485
  },
2354
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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=\"form-control-plaintext\" [innerHTML]=\"value\"></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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2486
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
2355
2487
  }
2356
2488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacStaticLabelComponent, decorators: [{
2357
2489
  type: Component,
@@ -2366,7 +2498,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2366
2498
  multi: true,
2367
2499
  useExisting: forwardRef(() => SacStaticLabelComponent),
2368
2500
  },
2369
- ], standalone: true, imports: [NgIf, NgClass, SacToLabelWidthCssPipe, SacToControlWidthCssPipe], 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' ]\"\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=\"form-control-plaintext\" [innerHTML]=\"value\"></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" }]
2501
+ ], standalone: true, imports: [
2502
+ NgIf,
2503
+ NgClass,
2504
+ SacToLabelWidthCssPipe,
2505
+ SacToControlWidthCssPipe,
2506
+ SacToLabelHeightPipe,
2507
+ SacToControlHeightPipe,
2508
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n" }]
2370
2509
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2371
2510
  type: Host
2372
2511
  }, {
@@ -2378,12 +2517,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2378
2517
  *
2379
2518
  * @example
2380
2519
  * <ngStaticFormContainer name='myformcontainer' label="My Custom Form Control" [isrequired]='false'>
2381
- * <input type="range" class="form-control form-control-sm" />
2520
+ * <input type="range" class="form-control" />
2382
2521
  * </ngStaticFormContainer>
2383
2522
  *
2384
2523
  * @example
2385
2524
  * <ngStaticFormContainer name='myformcintainer' label="My Custom Form Control" [isrequired]='false' tooltiptext="Dies ist ein Tooltip Text">
2386
- * <input type="range" class="form-control form-control-sm" />
2525
+ * <input type="range" class="form-control" />
2387
2526
  * </ngStaticFormContainer>
2388
2527
  *
2389
2528
  **/
@@ -2409,7 +2548,7 @@ class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
2409
2548
  multi: true,
2410
2549
  useExisting: forwardRef(() => SacStaticFormContainerComponent),
2411
2550
  },
2412
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2551
+ ], usesInheritance: true, ngImport: i0, 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
2413
2552
  }
2414
2553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacStaticFormContainerComponent, decorators: [{
2415
2554
  type: Component,
@@ -2430,7 +2569,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2430
2569
  AsyncPipe,
2431
2570
  SacToLabelWidthCssPipe,
2432
2571
  SacToControlWidthCssPipe,
2433
- ], 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' ]\"\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" }]
2572
+ SacToLabelHeightPipe,
2573
+ ], 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" }]
2434
2574
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2435
2575
  type: Host
2436
2576
  }, {
@@ -2544,7 +2684,7 @@ class SacTinyMceComponent extends SacTinyMceCommon {
2544
2684
  useExisting: forwardRef(() => SacTinyMceComponent),
2545
2685
  multi: true,
2546
2686
  },
2547
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-row form-group\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\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('TINYMCE_FILESELECT_DIALOGTITLE') | 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('TINYMCE_FILESELECT_OK') | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString('TINYMCE_FILESELECT_CANCEL') | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n", styles: [".is-invalid{border:1px solid var(--red)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SacDialogComponent, selector: "sac-dialog" }, { kind: "component", type: SacBrowserComponent, selector: "sac-filebrowser" }, { kind: "component", type: SacButtonComponent, selector: "sac-button" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2687
+ ], usesInheritance: true, ngImport: i0, 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", styles: [".is-invalid{border:1px solid var(--red)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SacDialogComponent, selector: "sac-dialog" }, { kind: "component", type: SacBrowserComponent, selector: "sac-filebrowser" }, { kind: "component", type: SacButtonComponent, selector: "sac-button" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
2548
2688
  }
2549
2689
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTinyMceComponent, decorators: [{
2550
2690
  type: Component,
@@ -2570,7 +2710,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2570
2710
  AsyncPipe,
2571
2711
  SacToLabelWidthCssPipe,
2572
2712
  SacToControlWidthCssPipe,
2573
- ], template: "<div class=\"form-row form-group\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\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('TINYMCE_FILESELECT_DIALOGTITLE') | 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('TINYMCE_FILESELECT_OK') | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString('TINYMCE_FILESELECT_CANCEL') | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n", styles: [".is-invalid{border:1px solid var(--red)}\n"] }]
2713
+ SacToLabelHeightPipe,
2714
+ ], 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", styles: [".is-invalid{border:1px solid var(--red)}\n"] }]
2574
2715
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2575
2716
  type: Host
2576
2717
  }, {
@@ -2626,7 +2767,7 @@ class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
2626
2767
  multi: true,
2627
2768
  useExisting: forwardRef(() => SacDropzoneSingleComponent),
2628
2769
  },
2629
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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 class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2770
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
2630
2771
  }
2631
2772
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropzoneSingleComponent, decorators: [{
2632
2773
  type: Component,
@@ -2648,7 +2789,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2648
2789
  AsyncPipe,
2649
2790
  SacToLabelWidthCssPipe,
2650
2791
  SacToControlWidthCssPipe,
2651
- ], 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' ]\"\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 class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"] }]
2792
+ SacToLabelHeightPipe,
2793
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--red)}.dropzone .content{position:absolute;inset: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{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset}\n"] }]
2652
2794
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2653
2795
  type: Host
2654
2796
  }, {
@@ -2683,7 +2825,7 @@ class SacUploadComponent extends SacUploadSingleCommon {
2683
2825
  multi: true,
2684
2826
  useExisting: forwardRef(() => SacUploadComponent),
2685
2827
  },
2686
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{ lngResourceService.GetString('UPLOAD_BUTTON_BROWSE') | async\r\n }}</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 [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | 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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2828
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }] }); }
2687
2829
  }
2688
2830
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacUploadComponent, decorators: [{
2689
2831
  type: Component,
@@ -2704,7 +2846,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2704
2846
  AsyncPipe,
2705
2847
  SacToLabelWidthCssPipe,
2706
2848
  SacToControlWidthCssPipe,
2707
- ], 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' ]\"\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.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{ lngResourceService.GetString('UPLOAD_BUTTON_BROWSE') | async\r\n }}</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 [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | 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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
2849
+ SacToLabelHeightPipe,
2850
+ SacToControlHeightPipe,
2851
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
2708
2852
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2709
2853
  type: Host
2710
2854
  }, {
@@ -2739,7 +2883,7 @@ class SacUploadMultipleComponent extends SacUploadMultipleCommon {
2739
2883
  multi: true,
2740
2884
  useExisting: forwardRef(() => SacUploadMultipleComponent),
2741
2885
  },
2742
- ], usesInheritance: true, ngImport: i0, 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' ]\"\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.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 class=\"btn-group\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | 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 class=\"input-group upload-component upload-multiple\">\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
2886
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pr-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }] }); }
2743
2887
  }
2744
2888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacUploadMultipleComponent, decorators: [{
2745
2889
  type: Component,
@@ -2761,7 +2905,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2761
2905
  AsyncPipe,
2762
2906
  SacToLabelWidthCssPipe,
2763
2907
  SacToControlWidthCssPipe,
2764
- ], 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' ]\"\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.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 class=\"btn-group\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | 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 class=\"input-group upload-component upload-multiple\">\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
2908
+ SacToLabelHeightPipe,
2909
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pr-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{inset:0;position:absolute}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
2765
2910
  }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2766
2911
  type: Host
2767
2912
  }, {
@@ -2916,5 +3061,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2916
3061
  * Generated bundle index. Do not edit.
2917
3062
  */
2918
3063
 
2919
- export { NGFORM_FACTORY, SACBootstrap4BrowserModule, SACBootstrap4ButtonModule, SACBootstrap4CheckboxModule, SACBootstrap4ConfirmModule, SACBootstrap4ContextmenuModule, SACBootstrap4DateTimeModule, SACBootstrap4DialogModule, SACBootstrap4DropdownModule, SACBootstrap4FormModule, SACBootstrap4GridModule, SACBootstrap4InputModule, SACBootstrap4LayoutModule, SACBootstrap4ListModule, SACBootstrap4MultilanguageModule, SACBootstrap4StaticLabelModule, SACBootstrap4TabsModule, SACBootstrap4TinyMceModule, SACBootstrap4UploadModule, SACBootstrap4ValidationSummaryModule, SACBootstrap4WizardModule, SACFORM_FACTORY, SacBrowserComponent, SacButtonComponent, SacCheckboxComponent, SacConfirmComponent, SacContextmenuAnchorDirective, SacContextmenuComponent, SacContextmenuItemButtonComponent, SacContextmenuItemSplitterComponent, SacDateComponent, SacDateSelectorComponent, SacDateTimeComponent, SacDialogComponent, SacDropdownComponent, SacDropdownOptionDirective, SacDropzoneMultipleComponent, SacDropzoneSingleComponent, SacFormDirective, SacFormLayoutDirective, SacGridButtonComponent, SacGridColumnActionComponent, SacGridColumnComponent, SacGridComponent, SacGridImageComponent, SacInheritFormDirective, SacInputAreaComponent, SacInputComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent, SacListboxComponent, SacListboxOptionDirective, SacMultilanguageInputAreaComponent, SacMultilanguageInputComponent, SacPagingComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent, SacStaticFormContainerComponent, SacStaticLabelComponent, SacTabComponent, SacTabItemComponent, SacTimeComponent, SacTinyMceComponent, SacToControlWidthCssPipe, SacToLabelWidthCssPipe, SacUploadComponent, SacUploadMultipleComponent, SacValidationSummaryComponent, SacWizardComponent, SacWizardItemComponent, ServiceConfirm };
3064
+ export { NGFORM_FACTORY, SACBootstrap4BrowserModule, SACBootstrap4ButtonModule, SACBootstrap4CheckboxModule, SACBootstrap4ConfirmModule, SACBootstrap4ContextmenuModule, SACBootstrap4DateTimeModule, SACBootstrap4DialogModule, SACBootstrap4DropdownModule, SACBootstrap4FormModule, SACBootstrap4GridModule, SACBootstrap4InputModule, SACBootstrap4LayoutModule, SACBootstrap4ListModule, SACBootstrap4MultilanguageModule, SACBootstrap4StaticLabelModule, SACBootstrap4TabsModule, SACBootstrap4TinyMceModule, SACBootstrap4UploadModule, SACBootstrap4ValidationSummaryModule, SACBootstrap4WizardModule, SACFORM_FACTORY, SacBrowserComponent, SacButtonComponent, SacCheckboxComponent, SacConfirmComponent, SacContextmenuAnchorDirective, SacContextmenuComponent, SacContextmenuItemButtonComponent, SacContextmenuItemSplitterComponent, SacDateComponent, SacDateSelectorComponent, SacDateTimeComponent, SacDialogComponent, SacDropdownComponent, SacDropdownOptionDirective, SacDropzoneMultipleComponent, SacDropzoneSingleComponent, SacFormDirective, SacFormLayoutDirective, SacGridButtonComponent, SacGridColumnActionComponent, SacGridColumnComponent, SacGridComponent, SacGridImageComponent, SacInheritFormDirective, SacInputAreaComponent, SacInputComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent, SacListboxComponent, SacListboxOptionDirective, SacMultilanguageInputAreaComponent, SacMultilanguageInputComponent, SacPagingComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent, SacStaticFormContainerComponent, SacStaticLabelComponent, SacTabComponent, SacTabItemComponent, SacTimeComponent, SacTinyMceComponent, SacToControlHeightPipe, SacToControlWidthCssPipe, SacToLabelHeightPipe, SacToLabelWidthCssPipe, SacUploadComponent, SacUploadMultipleComponent, SacValidationSummaryComponent, SacWizardComponent, SacWizardItemComponent, ServiceConfirm };
2920
3065
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap4.mjs.map