@simpleangularcontrols/sac-bootstrap5 13.0.0-rc.2 → 13.0.0-rc.4

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 (119) hide show
  1. package/controls/checkbox/checkbox.d.ts +5 -5
  2. package/controls/checkbox/checkbox.module.d.ts +2 -1
  3. package/controls/checkbox/radiobuttons.d.ts +5 -5
  4. package/controls/contextmenu/contextmenu.d.ts +6 -6
  5. package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
  6. package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
  7. package/controls/datetime/date.d.ts +6 -6
  8. package/controls/datetime/datetime.d.ts +6 -6
  9. package/controls/datetime/datetime.module.d.ts +2 -1
  10. package/controls/datetime/time.d.ts +6 -6
  11. package/controls/form/form.d.ts +0 -8
  12. package/controls/input/input.d.ts +5 -5
  13. package/controls/input/input.module.d.ts +2 -1
  14. package/controls/input/inputarea.d.ts +5 -5
  15. package/controls/input/inputcurrency.d.ts +5 -5
  16. package/controls/input/inputdecimal.d.ts +5 -5
  17. package/controls/input/inputemail.d.ts +5 -5
  18. package/controls/input/inputinteger.d.ts +5 -5
  19. package/controls/input/inputpassword.d.ts +5 -5
  20. package/controls/input/inputsearch.d.ts +5 -5
  21. package/controls/layout/formlayout.directive.d.ts +6 -0
  22. package/controls/layout/formlayout.directive.ngfactory.d.ts +3 -0
  23. package/controls/layout/formlayout.directive.ngsummary.d.ts +1 -0
  24. package/controls/layout/layout.module.d.ts +10 -0
  25. package/controls/layout/layout.module.ngfactory.d.ts +3 -0
  26. package/controls/layout/layout.module.ngsummary.d.ts +1 -0
  27. package/controls/layout/tocontrolwidthcss.pipe.d.ts +19 -0
  28. package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +3 -0
  29. package/controls/layout/tocontrolwidthcss.pipe.ngsummary.d.ts +1 -0
  30. package/controls/layout/tolabelwidthcss.pipe.d.ts +13 -0
  31. package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +3 -0
  32. package/controls/layout/tolabelwidthcss.pipe.ngsummary.d.ts +1 -0
  33. package/controls/list/dropdown.d.ts +10 -10
  34. package/controls/list/dropdown.module.d.ts +2 -1
  35. package/controls/list/list.module.d.ts +2 -1
  36. package/controls/list/listbox.d.ts +9 -9
  37. package/controls/multilanguage/multilanguage.module.d.ts +2 -1
  38. package/controls/multilanguage/multilanguageinput.d.ts +5 -5
  39. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
  40. package/controls/multilanguage/multilanguagemenu.d.ts +9 -9
  41. package/controls/multilanguage/multilanguagemenuanchor.d.ts +2 -2
  42. package/controls/multilanguage/multilanguagemenucontainer.d.ts +2 -2
  43. package/controls/static/formcontainer.d.ts +5 -5
  44. package/controls/static/staticlabel.d.ts +5 -5
  45. package/controls/static/staticlabel.module.d.ts +2 -1
  46. package/controls/tinymce/tinymce.d.ts +6 -6
  47. package/controls/tinymce/tinymce.module.d.ts +2 -1
  48. package/controls/upload/dropzonemultiple.d.ts +7 -7
  49. package/controls/upload/dropzonesingle.d.ts +7 -7
  50. package/controls/upload/upload.d.ts +7 -7
  51. package/controls/upload/upload.module.d.ts +2 -1
  52. package/controls/upload/uploadmultiple.d.ts +7 -7
  53. package/controls/validation/validationsummary.d.ts +4 -4
  54. package/controls/wizard/wizard.module.d.ts +2 -1
  55. package/esm2020/controls/buttons/button.mjs +3 -3
  56. package/esm2020/controls/checkbox/checkbox.mjs +15 -17
  57. package/esm2020/controls/checkbox/checkbox.module.mjs +19 -10
  58. package/esm2020/controls/checkbox/radiobuttons.mjs +15 -17
  59. package/esm2020/controls/contextmenu/contextmenu.mjs +9 -8
  60. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +5 -4
  61. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +5 -4
  62. package/esm2020/controls/datetime/date.mjs +17 -19
  63. package/esm2020/controls/datetime/datetime.mjs +16 -18
  64. package/esm2020/controls/datetime/datetime.module.mjs +25 -12
  65. package/esm2020/controls/datetime/time.mjs +17 -19
  66. package/esm2020/controls/form/form.mjs +3 -17
  67. package/esm2020/controls/form/form.module.mjs +5 -14
  68. package/esm2020/controls/input/input.mjs +15 -13
  69. package/esm2020/controls/input/input.module.mjs +40 -11
  70. package/esm2020/controls/input/inputarea.mjs +15 -17
  71. package/esm2020/controls/input/inputcurrency.mjs +15 -17
  72. package/esm2020/controls/input/inputdecimal.mjs +15 -17
  73. package/esm2020/controls/input/inputemail.mjs +15 -17
  74. package/esm2020/controls/input/inputinteger.mjs +15 -17
  75. package/esm2020/controls/input/inputpassword.mjs +15 -17
  76. package/esm2020/controls/input/inputsearch.mjs +14 -11
  77. package/esm2020/controls/layout/formlayout.directive.mjs +14 -0
  78. package/esm2020/controls/layout/formlayout.directive.ngfactory.mjs +4 -0
  79. package/esm2020/controls/layout/formlayout.directive.ngsummary.mjs +2 -0
  80. package/esm2020/controls/layout/layout.module.mjs +32 -0
  81. package/esm2020/controls/layout/layout.module.ngfactory.mjs +4 -0
  82. package/esm2020/controls/layout/layout.module.ngsummary.mjs +2 -0
  83. package/esm2020/controls/layout/tocontrolwidthcss.pipe.mjs +57 -0
  84. package/esm2020/controls/layout/tocontrolwidthcss.pipe.ngfactory.mjs +4 -0
  85. package/esm2020/controls/layout/tocontrolwidthcss.pipe.ngsummary.mjs +2 -0
  86. package/esm2020/controls/layout/tolabelwidthcss.pipe.mjs +41 -0
  87. package/esm2020/controls/layout/tolabelwidthcss.pipe.ngfactory.mjs +4 -0
  88. package/esm2020/controls/layout/tolabelwidthcss.pipe.ngsummary.mjs +2 -0
  89. package/esm2020/controls/list/dropdown.mjs +22 -17
  90. package/esm2020/controls/list/dropdown.module.mjs +8 -15
  91. package/esm2020/controls/list/list.module.mjs +6 -5
  92. package/esm2020/controls/list/listbox.mjs +22 -22
  93. package/esm2020/controls/multilanguage/multilanguage.module.mjs +5 -4
  94. package/esm2020/controls/multilanguage/multilanguageinput.mjs +17 -17
  95. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +17 -17
  96. package/esm2020/controls/multilanguage/multilanguagemenu.mjs +10 -8
  97. package/esm2020/controls/multilanguage/multilanguagemenuanchor.mjs +5 -4
  98. package/esm2020/controls/multilanguage/multilanguagemenucontainer.mjs +5 -4
  99. package/esm2020/controls/static/formcontainer.mjs +16 -13
  100. package/esm2020/controls/static/staticlabel.mjs +14 -11
  101. package/esm2020/controls/static/staticlabel.module.mjs +8 -11
  102. package/esm2020/controls/tinymce/tinymce.mjs +18 -14
  103. package/esm2020/controls/tinymce/tinymce.module.mjs +10 -6
  104. package/esm2020/controls/upload/dropzonemultiple.mjs +18 -13
  105. package/esm2020/controls/upload/dropzonesingle.mjs +18 -13
  106. package/esm2020/controls/upload/upload.mjs +26 -15
  107. package/esm2020/controls/upload/upload.module.mjs +5 -4
  108. package/esm2020/controls/upload/uploadmultiple.mjs +16 -13
  109. package/esm2020/controls/validation/validationsummary.mjs +9 -12
  110. package/esm2020/controls/wizard/wizard.module.mjs +7 -10
  111. package/esm2020/public-api.mjs +30 -26
  112. package/fesm2015/simpleangularcontrols-sac-bootstrap5.mjs +676 -539
  113. package/fesm2015/simpleangularcontrols-sac-bootstrap5.mjs.map +1 -1
  114. package/fesm2020/simpleangularcontrols-sac-bootstrap5.mjs +676 -539
  115. package/fesm2020/simpleangularcontrols-sac-bootstrap5.mjs.map +1 -1
  116. package/package.json +4 -3
  117. package/public-api.d.ts +29 -25
  118. package/simpleangularcontrols-sac-bootstrap5-13.0.0-rc.4.tgz +0 -0
  119. package/simpleangularcontrols-sac-bootstrap5-13.0.0-rc.2.tgz +0 -0
@@ -3,15 +3,15 @@ import { CommonModule, DOCUMENT } from '@angular/common';
3
3
  import * as i1$1 from '@angular/common/http';
4
4
  import { HttpClientModule } from '@angular/common/http';
5
5
  import * as i0 from '@angular/core';
6
- import { Component, ComponentFactoryResolver, Injectable, Inject, NgModule, forwardRef, Directive, HostBinding, SkipSelf, Host, Optional, ViewChild, TemplateRef, ContentChild, Input, ContentChildren } from '@angular/core';
6
+ import { Component, ComponentFactoryResolver, Injectable, Inject, NgModule, forwardRef, Directive, HostBinding, SkipSelf, Pipe, Host, Optional, ViewChild, TemplateRef, ContentChild, Input, ContentChildren } from '@angular/core';
7
7
  import * as i9 from '@angular/forms';
8
8
  import { ControlContainer, NgForm, FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
9
9
  import * as i1 from '@simpleangularcontrols/sac-common';
10
- import { SacDialogCommon, SacButtonCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextMenuContrainerCommon, SacContextmenuAnchorCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacFormCommon, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateSelectorCommon, SacDateCommon, SacDateTimeCommon, SacTimeCommon, SacPagingCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacInputCommon, SacInputEmailCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacListboxCommon, SacListboxOptionCommon, SacDropdownCommon, SacDropdownOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticLabelCommon, SacStaticFormContainerCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
10
+ import { SacDialogCommon, SacButtonCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextMenuContrainerCommon, SacContextmenuAnchorCommon, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacFormCommon, SacFormLayoutCommon, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateSelectorCommon, SacDateCommon, SacDateTimeCommon, SacTimeCommon, SacPagingCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
11
11
  import { Observable, forkJoin } from 'rxjs';
12
- import * as moment_ from 'moment';
13
12
  import * as i4 from 'angular-imask';
14
13
  import { IMaskModule } from 'angular-imask';
14
+ import * as moment_ from 'moment';
15
15
  import * as i2$1 from '@tinymce/tinymce-angular';
16
16
  import { EditorModule } from '@tinymce/tinymce-angular';
17
17
 
@@ -61,10 +61,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
61
61
  class SacButtonComponent extends SacButtonCommon {
62
62
  }
63
63
  SacButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
64
- SacButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacButtonComponent, selector: "sac-button", usesInheritance: true, ngImport: i0, template: "<button [id]=\"name\" type=\"button\" class=\"btn d-flex justify-content-center align-items-center\" [attr.disabled]=\"_isdisabled ? 'disabled' : null\" (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 <i *ngIf=\"icon !== ''\" [ngClass]=\"icon\" class=\"me-2\"></i>{{text}}\r\n</button>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
64
+ SacButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacButtonComponent, 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 me-2\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n <i *ngIf=\"!isloading && icon !== ''\" [ngClass]=\"icon\" class=\"me-2\"></i\r\n >{{text}}\r\n</button>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacButtonComponent, decorators: [{
66
66
  type: Component,
67
- args: [{ selector: 'sac-button', template: "<button [id]=\"name\" type=\"button\" class=\"btn d-flex justify-content-center align-items-center\" [attr.disabled]=\"_isdisabled ? 'disabled' : null\" (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 <i *ngIf=\"icon !== ''\" [ngClass]=\"icon\" class=\"me-2\"></i>{{text}}\r\n</button>\r\n" }]
67
+ args: [{ selector: 'sac-button', template: "<button\r\n [id]=\"name\"\r\n type=\"button\"\r\n class=\"btn d-flex justify-content-center align-items-center\"\r\n [attr.disabled]=\"_isdisabled || isloading ? 'disabled' : null\"\r\n (click)=\"buttonClick()\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary' || role === 'default'\"\r\n [class.btn-success]=\"role === 'success'\"\r\n [class.btn-danger]=\"role === 'danger'\"\r\n [class.btn-warning]=\"role === 'warning'\"\r\n [class.btn-info]=\"role === 'info'\"\r\n [class.btn-link]=\"role === 'link'\"\r\n>\r\n <span\r\n *ngIf=\"isloading\"\r\n class=\"spinner-border spinner-border-sm me-2\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n <i *ngIf=\"!isloading && icon !== ''\" [ngClass]=\"icon\" class=\"me-2\"></i\r\n >{{text}}\r\n</button>\r\n" }]
68
68
  }] });
69
69
 
70
70
  /**
@@ -229,12 +229,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
229
229
  * Marker Komponente für Context Menü
230
230
  */
231
231
  class SacContextmenuContainerDirective extends SacContextMenuContrainerCommon {
232
+ // #region Constructors
232
233
  /**
233
234
  * Konstruktor
234
- * @param _elementRef Referenz auf DOM Element
235
+ * @param elementRef Referenz auf DOM Element
235
236
  */
236
- constructor(_elementRef) {
237
- super(_elementRef);
237
+ constructor(elementRef) {
238
+ super(elementRef);
238
239
  }
239
240
  }
240
241
  SacContextmenuContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacContextmenuContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
@@ -261,12 +262,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
261
262
  * Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
262
263
  */
263
264
  class SacContextmenuAnchorDirective extends SacContextmenuAnchorCommon {
265
+ // #region Constructors
264
266
  /**
265
267
  * Konstruktor
266
- * @param _elementRef HTML DOM Referenz
268
+ * @param elementRef HTML DOM Referenz
267
269
  */
268
- constructor(_elementRef) {
269
- super(_elementRef);
270
+ constructor(elementRef) {
271
+ super(elementRef);
270
272
  }
271
273
  }
272
274
  SacContextmenuAnchorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacContextmenuAnchorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
@@ -293,16 +295,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
293
295
  * Component für Contextmenü
294
296
  */
295
297
  class SacContextmenuComponent extends SacContextmenuCommon {
298
+ // #region Constructors
296
299
  /**
297
300
  * Constructor
298
- * @param _document Referenz auf HTML Document
299
- * @param _ngZone Angular Zone Service
300
- * @param _elementRef Referenz auf HTML Element der aktuellen Komponente
301
- * @param _renderer Render Service von Angular
302
- * @param _injector injector to resolve services
301
+ * @param document Referenz auf HTML Document
302
+ * @param ngZone Angular Zone Service
303
+ * @param elementRef Referenz auf HTML Element der aktuellen Komponente
304
+ * @param renderer Render Service von Angular
305
+ * @param injector injector to resolve services
303
306
  */
304
- constructor(_document, _ngZone, _elementRef, _renderer, _injector) {
305
- super(_document, _ngZone, _elementRef, _renderer, _injector);
307
+ constructor(document, ngZone, elementRef, renderer, injector) {
308
+ super(document, ngZone, elementRef, renderer, injector);
306
309
  }
307
310
  }
308
311
  SacContextmenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacContextmenuComponent, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
@@ -412,32 +415,18 @@ class SacFormDirective extends SacFormCommon {
412
415
  */
413
416
  this.cssClassForm = true;
414
417
  }
415
- /**
416
- * Setzt die CSS Klasse 'form-horizontal' wenn die Orientation auf Horizontal eingestellt ist
417
- */
418
- get orientientationHorizontal() { return this.getOrientation() === 'horizontal'; }
419
- /**
420
- * Setzt die CSS Klasse 'form-vertical' wenn die Orientation auf Vertical eingestellt ist
421
- */
422
- get orientientationVertical() { return this.getOrientation() === 'vertical'; }
423
418
  }
424
419
  SacFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacFormDirective, deps: [{ token: i9.NgForm }], target: i0.ɵɵFactoryTarget.Directive });
425
- SacFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacFormDirective, selector: "form:not([ngNoForm]):not([formGroup]),[ngForm]", host: { properties: { "class.form": "this.cssClassForm", "class.form-horizontal": "this.orientientationHorizontal", "class.form-vertical": "this.orientientationVertical" } }, exportAs: ["sacform"], usesInheritance: true, ngImport: i0 });
420
+ SacFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacFormDirective, selector: "form:not([ngNoForm]):not([formGroup]),[ngForm]", host: { properties: { "class.form": "this.cssClassForm" } }, exportAs: ["sacform"], usesInheritance: true, ngImport: i0 });
426
421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacFormDirective, decorators: [{
427
422
  type: Directive,
428
423
  args: [{
429
424
  selector: 'form:not([ngNoForm]):not([formGroup]),[ngForm]',
430
- exportAs: 'sacform'
425
+ exportAs: 'sacform',
431
426
  }]
432
427
  }], ctorParameters: function () { return [{ type: i9.NgForm }]; }, propDecorators: { cssClassForm: [{
433
428
  type: HostBinding,
434
429
  args: ['class.form']
435
- }], orientientationHorizontal: [{
436
- type: HostBinding,
437
- args: ['class.form-horizontal']
438
- }], orientientationVertical: [{
439
- type: HostBinding,
440
- args: ['class.form-vertical']
441
430
  }] } });
442
431
 
443
432
  /**
@@ -522,23 +511,145 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
522
511
  class SACBootstrap5FormModule {
523
512
  }
524
513
  SACBootstrap5FormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
525
- SACBootstrap5FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, declarations: [SacFormDirective, SacInheritFormDirective], imports: [CommonModule,
526
- FormsModule], exports: [SacFormDirective, SacInheritFormDirective] });
527
- SACBootstrap5FormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, imports: [[
528
- CommonModule,
529
- FormsModule
530
- ]] });
514
+ SACBootstrap5FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, declarations: [SacFormDirective, SacInheritFormDirective], imports: [CommonModule, FormsModule], exports: [SacFormDirective, SacInheritFormDirective] });
515
+ SACBootstrap5FormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, imports: [[CommonModule, FormsModule]] });
531
516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5FormModule, decorators: [{
532
517
  type: NgModule,
533
518
  args: [{
534
519
  declarations: [SacFormDirective, SacInheritFormDirective],
535
- imports: [
536
- CommonModule,
537
- FormsModule
520
+ imports: [CommonModule, FormsModule],
521
+ exports: [SacFormDirective, SacInheritFormDirective],
522
+ }]
523
+ }] });
524
+
525
+ class SacFormLayoutDirective extends SacFormLayoutCommon {
526
+ }
527
+ SacFormLayoutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacFormLayoutDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
528
+ SacFormLayoutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacFormLayoutDirective, selector: "[sacFormLayout]", usesInheritance: true, ngImport: i0 });
529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacFormLayoutDirective, decorators: [{
530
+ type: Directive,
531
+ args: [{
532
+ selector: '[sacFormLayout]',
533
+ }]
534
+ }] });
535
+
536
+ class SacToControlWidthCssPipe {
537
+ // #region Public Methods
538
+ /**
539
+ * Get CSS classes from label width configuration to set control size
540
+ * @param value Configuration with grid columns for different viewports
541
+ * @returns string with css classe for bootstrap3
542
+ */
543
+ transform(value) {
544
+ const classes = [];
545
+ if (value.labelSizeXs) {
546
+ classes.push('col-' + this.calcControlSize(value.labelSizeXs));
547
+ }
548
+ if (value.labelSizeSm) {
549
+ classes.push('col-sm-' + this.calcControlSize(value.labelSizeSm));
550
+ }
551
+ if (value.labelSizeMd) {
552
+ classes.push('col-md-' + this.calcControlSize(value.labelSizeMd));
553
+ }
554
+ if (value.labelSizeLg) {
555
+ classes.push('col-lg-' + this.calcControlSize(value.labelSizeLg));
556
+ }
557
+ if (value.labelSizeXl) {
558
+ classes.push('col-xl-' + this.calcControlSize(value.labelSizeXl));
559
+ }
560
+ if (value.labelSizeXxl) {
561
+ classes.push('col-xxl-' + this.calcControlSize(value.labelSizeXxl));
562
+ }
563
+ return classes.join(' ');
564
+ }
565
+ // #endregion Public Methods
566
+ // #region Private Methods
567
+ /**
568
+ * calculate the control size
569
+ * @param labelsize grid size of label
570
+ * @returns grid size for control. should be between 1 and 12
571
+ */
572
+ calcControlSize(labelsize) {
573
+ if (labelsize === 12) {
574
+ return 12;
575
+ }
576
+ if (!labelsize) {
577
+ return 12;
578
+ }
579
+ return 12 - labelsize;
580
+ }
581
+ }
582
+ SacToControlWidthCssPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToControlWidthCssPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
583
+ SacToControlWidthCssPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToControlWidthCssPipe, name: "toControlWidthCss" });
584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToControlWidthCssPipe, decorators: [{
585
+ type: Pipe,
586
+ args: [{
587
+ name: 'toControlWidthCss',
588
+ }]
589
+ }] });
590
+
591
+ class SacToLabelWidthCssPipe {
592
+ // #region Public Methods
593
+ /**
594
+ * Get CSS classes from label width configuration to set label size
595
+ * @param value Configuration with grid columns for different viewports
596
+ * @returns string with css classe for bootstrap3
597
+ */
598
+ transform(value) {
599
+ const classes = [];
600
+ if (value.labelSizeXs) {
601
+ classes.push('col-' + value.labelSizeXs);
602
+ }
603
+ if (value.labelSizeSm) {
604
+ classes.push('col-sm-' + value.labelSizeSm);
605
+ }
606
+ if (value.labelSizeMd) {
607
+ classes.push('col-md-' + value.labelSizeMd);
608
+ }
609
+ if (value.labelSizeLg) {
610
+ classes.push('col-lg-' + value.labelSizeLg);
611
+ }
612
+ if (value.labelSizeXl) {
613
+ classes.push('col-xl-' + value.labelSizeXl);
614
+ }
615
+ if (value.labelSizeXxl) {
616
+ classes.push('col-xxl-' + value.labelSizeXxl);
617
+ }
618
+ return classes.join(' ');
619
+ }
620
+ }
621
+ SacToLabelWidthCssPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToLabelWidthCssPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
622
+ SacToLabelWidthCssPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" });
623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacToLabelWidthCssPipe, decorators: [{
624
+ type: Pipe,
625
+ args: [{
626
+ name: 'toLabelWidthCss',
627
+ }]
628
+ }] });
629
+
630
+ class SACBootstrap5LayoutModule {
631
+ }
632
+ SACBootstrap5LayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
633
+ SACBootstrap5LayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5LayoutModule, declarations: [SacFormLayoutDirective,
634
+ SacToControlWidthCssPipe,
635
+ SacToLabelWidthCssPipe], imports: [CommonModule], exports: [SacFormLayoutDirective,
636
+ SacToControlWidthCssPipe,
637
+ SacToLabelWidthCssPipe] });
638
+ SACBootstrap5LayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5LayoutModule, imports: [[CommonModule]] });
639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5LayoutModule, decorators: [{
640
+ type: NgModule,
641
+ args: [{
642
+ declarations: [
643
+ SacFormLayoutDirective,
644
+ SacToControlWidthCssPipe,
645
+ SacToLabelWidthCssPipe,
538
646
  ],
647
+ imports: [CommonModule],
539
648
  exports: [
540
- SacFormDirective, SacInheritFormDirective
541
- ]
649
+ SacFormLayoutDirective,
650
+ SacToControlWidthCssPipe,
651
+ SacToLabelWidthCssPipe,
652
+ ],
542
653
  }]
543
654
  }] });
544
655
 
@@ -547,16 +658,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
547
658
  * @see https://github.com/kukhariev/ngx-uploadx/
548
659
  */
549
660
  class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
661
+ // #region Constructors
550
662
  /**
551
- * Konstruktor
552
- * @param parent Formular
553
- * @param injector Angular Dependency Injection Service
554
- * @param renderer Angular Rendering Engine
555
- * @param ngZone ngZone
663
+ * Constructor
664
+ * @param formLayout SacFormLayout to define scoped layout settings
665
+ * @param injector Injector for injecting services
666
+ * @param renderer Angular rendering engine
667
+ * @param ngZone ngZone to manage external javascripts
556
668
  */
557
- constructor(parent, injector, renderer, ngZone) {
558
- super(parent, injector, renderer, ngZone);
669
+ constructor(formLayout, injector, renderer, ngZone) {
670
+ super(formLayout, injector, renderer, ngZone);
559
671
  }
672
+ // #endregion Constructors
673
+ // #region Public Methods
560
674
  /**
561
675
  * Initialisiert das Control
562
676
  */
@@ -564,7 +678,7 @@ class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
564
678
  super.ngOnInit();
565
679
  }
566
680
  }
567
- SacDropzoneMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneMultipleComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
681
+ SacDropzoneMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneMultipleComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
568
682
  SacDropzoneMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDropzoneMultipleComponent, selector: "sac-dropzonemultiple", providers: [
569
683
  {
570
684
  provide: NG_VALUE_ACCESSOR,
@@ -576,7 +690,7 @@ SacDropzoneMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
576
690
  multi: true,
577
691
  useExisting: forwardRef(() => SacDropzoneMultipleComponent),
578
692
  },
579
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
693
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
580
694
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneMultipleComponent, decorators: [{
581
695
  type: Component,
582
696
  args: [{ selector: 'sac-dropzonemultiple', providers: [
@@ -590,8 +704,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
590
704
  multi: true,
591
705
  useExisting: forwardRef(() => SacDropzoneMultipleComponent),
592
706
  },
593
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"] }]
594
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
707
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"] }]
708
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
595
709
  type: Host
596
710
  }, {
597
711
  type: Optional
@@ -602,16 +716,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
602
716
  * @see https://github.com/kukhariev/ngx-uploadx/
603
717
  */
604
718
  class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
719
+ // #region Constructors
605
720
  /**
606
- * Konstruktor
607
- * @param parent Formular
608
- * @param injector Angular Dependency Injection Service
609
- * @param renderer Angular Rendering Engine
610
- * @param ngZone ngZone
721
+ * Constructor
722
+ * @param formLayout SacFormLayout to define scoped layout settings
723
+ * @param injector Injector for injecting services
724
+ * @param renderer Angular rendering engine
725
+ * @param ngZone ngZone to manage external javascripts
611
726
  */
612
- constructor(parent, injector, renderer, ngZone) {
613
- super(parent, injector, renderer, ngZone);
727
+ constructor(formLayout, injector, renderer, ngZone) {
728
+ super(formLayout, injector, renderer, ngZone);
614
729
  }
730
+ // #endregion Constructors
731
+ // #region Public Methods
615
732
  /**
616
733
  * Initialisiert das Control
617
734
  */
@@ -619,7 +736,7 @@ class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
619
736
  super.ngOnInit();
620
737
  }
621
738
  }
622
- SacDropzoneSingleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
739
+ SacDropzoneSingleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
623
740
  SacDropzoneSingleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDropzoneSingleComponent, selector: "sac-dropzonesingle", providers: [
624
741
  {
625
742
  provide: NG_VALUE_ACCESSOR,
@@ -631,7 +748,7 @@ SacDropzoneSingleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
631
748
  multi: true,
632
749
  useExisting: forwardRef(() => SacDropzoneSingleComponent),
633
750
  },
634
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 position-relative\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
751
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 position-relative\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
635
752
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, decorators: [{
636
753
  type: Component,
637
754
  args: [{ selector: 'sac-dropzonesingle', providers: [
@@ -645,8 +762,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
645
762
  multi: true,
646
763
  useExisting: forwardRef(() => SacDropzoneSingleComponent),
647
764
  },
648
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 position-relative\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"] }]
649
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
765
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 position-relative\"\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 align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill 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 <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 <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(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{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;width:100%;opacity:0;position:absolute}\n"] }]
766
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
650
767
  type: Host
651
768
  }, {
652
769
  type: Optional
@@ -657,37 +774,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
657
774
  * @see https://github.com/kukhariev/ngx-uploadx/
658
775
  */
659
776
  class SacUploadComponent extends SacUploadSingleCommon {
777
+ // #region Constructors
660
778
  /**
661
- * Konstruktor
662
- * @param parent Formular
663
- * @param injector Angular Dependency Injection Service
664
- * @param renderer Angular Rendering Engine
665
- * @param ngZone ngZone Referenz
779
+ * Constructor
780
+ * @param formLayout SacFormLayout to define scoped layout settings
781
+ * @param injector Injector for injecting services
782
+ * @param renderer Angular rendering engine
783
+ * @param ngZone ngZone to manage external javascripts
666
784
  */
667
- constructor(parent, injector, renderer, ngZone) {
668
- super(parent, injector, renderer, ngZone);
785
+ constructor(formLayout, injector, renderer, ngZone) {
786
+ super(formLayout, injector, renderer, ngZone);
669
787
  }
670
788
  }
671
- SacUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
789
+ SacUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
672
790
  SacUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacUploadComponent, selector: "sac-upload", providers: [
673
- { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacUploadComponent },
791
+ {
792
+ provide: NG_VALUE_ACCESSOR,
793
+ multi: true,
794
+ useExisting: SacUploadComponent,
795
+ },
674
796
  {
675
797
  provide: NG_VALIDATORS,
676
798
  multi: true,
677
799
  useExisting: forwardRef(() => SacUploadComponent),
678
800
  },
679
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 <!-- 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=\"pe-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 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\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=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe } });
801
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 <!-- 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=\"pe-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 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\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=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
680
802
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, decorators: [{
681
803
  type: Component,
682
804
  args: [{ selector: 'sac-upload', providers: [
683
- { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacUploadComponent },
805
+ {
806
+ provide: NG_VALUE_ACCESSOR,
807
+ multi: true,
808
+ useExisting: SacUploadComponent,
809
+ },
684
810
  {
685
811
  provide: NG_VALIDATORS,
686
812
  multi: true,
687
813
  useExisting: forwardRef(() => SacUploadComponent),
688
814
  },
689
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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 <!-- 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=\"pe-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 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\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=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"] }]
690
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
815
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 <!-- 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=\"pe-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 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\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=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"] }]
816
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
691
817
  type: Host
692
818
  }, {
693
819
  type: Optional
@@ -698,18 +824,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
698
824
  * @see https://github.com/kukhariev/ngx-uploadx/
699
825
  */
700
826
  class SacUploadMultipleComponent extends SacUploadMultipleCommon {
827
+ // #region Constructors
701
828
  /**
702
- * Konstruktor
703
- * @param parent Formular
704
- * @param injector Angular Dependency Injection Service
705
- * @param renderer Angular Rendering Engine
706
- * @param ngZone ngZone
829
+ * Constructor
830
+ * @param formLayout SacFormLayout to define scoped layout settings
831
+ * @param injector Injector for injecting services
832
+ * @param renderer Angular rendering engine
833
+ * @param ngZone ngZone to manage external javascripts
707
834
  */
708
- constructor(parent, injector, renderer, ngZone) {
709
- super(parent, injector, renderer, ngZone);
835
+ constructor(formLayout, injector, renderer, ngZone) {
836
+ super(formLayout, injector, renderer, ngZone);
710
837
  }
711
838
  }
712
- SacUploadMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
839
+ SacUploadMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
713
840
  SacUploadMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacUploadMultipleComponent, selector: "sac-uploadmultiple", providers: [
714
841
  {
715
842
  provide: NG_VALUE_ACCESSOR,
@@ -721,7 +848,7 @@ SacUploadMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
721
848
  multi: true,
722
849
  useExisting: forwardRef(() => SacUploadMultipleComponent),
723
850
  },
724
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-sm-12']\"\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=\"pe-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=\"pe-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\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=\"pe-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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
851
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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=\"pe-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=\"pe-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\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=\"pe-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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
725
852
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, decorators: [{
726
853
  type: Component,
727
854
  args: [{ selector: 'sac-uploadmultiple', providers: [
@@ -735,8 +862,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
735
862
  multi: true,
736
863
  useExisting: forwardRef(() => SacUploadMultipleComponent),
737
864
  },
738
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-sm-12']\"\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=\"pe-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=\"pe-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\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=\"pe-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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"] }]
739
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
865
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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=\"pe-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=\"pe-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\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=\"pe-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", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.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"] }]
866
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
740
867
  type: Host
741
868
  }, {
742
869
  type: Optional
@@ -748,11 +875,11 @@ SACBootstrap5UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
748
875
  SACBootstrap5UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, declarations: [SacUploadComponent,
749
876
  SacUploadMultipleComponent,
750
877
  SacDropzoneSingleComponent,
751
- SacDropzoneMultipleComponent], imports: [CommonModule, FormsModule], exports: [SacUploadComponent,
878
+ SacDropzoneMultipleComponent], imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule], exports: [SacUploadComponent,
752
879
  SacUploadMultipleComponent,
753
880
  SacDropzoneSingleComponent,
754
881
  SacDropzoneMultipleComponent] });
755
- SACBootstrap5UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, imports: [[CommonModule, FormsModule]] });
882
+ SACBootstrap5UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, imports: [[CommonModule, FormsModule, SACBootstrap5LayoutModule]] });
756
883
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, decorators: [{
757
884
  type: NgModule,
758
885
  args: [{
@@ -762,7 +889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
762
889
  SacDropzoneSingleComponent,
763
890
  SacDropzoneMultipleComponent,
764
891
  ],
765
- imports: [CommonModule, FormsModule],
892
+ imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule],
766
893
  exports: [
767
894
  SacUploadComponent,
768
895
  SacUploadMultipleComponent,
@@ -906,16 +1033,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
906
1033
  * Checkbox Kompontente
907
1034
  */
908
1035
  class SacCheckboxComponent extends SacCheckboxCommon {
1036
+ // #region Constructors
909
1037
  /**
910
- * Konstruktor
911
- * @param parent Formular
912
- * @param injector Angular Dependency Injection Service
1038
+ * Constructor
1039
+ * @param formLayout SacFormLayout to define scoped layout settings
1040
+ * @param injector Injector for injecting services
913
1041
  */
914
- constructor(parent, injector) {
915
- super(parent, injector);
1042
+ constructor(formLayout, injector) {
1043
+ super(formLayout, injector);
916
1044
  }
917
1045
  }
918
- SacCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacCheckboxComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1046
+ SacCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacCheckboxComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
919
1047
  SacCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacCheckboxComponent, selector: "sac-checkbox", providers: [
920
1048
  {
921
1049
  provide: NG_VALUE_ACCESSOR,
@@ -927,9 +1055,7 @@ SacCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
927
1055
  useExisting: forwardRef(() => SacCheckboxComponent),
928
1056
  multi: true,
929
1057
  },
930
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3 align-items-center\" [class.g-0]=\"disablelabel\">\r\n <div class=\"col-12 col-form-label col-form-label-sm\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input form-check-input-sm\" id=\"{{name}}\" name=\"{{name}}\" type=\"checkbox\" [checked]=\"value\"\r\n (blur)=\"onTouch()\" (change)=\"setValue($event.target.checked)\" [disabled]=\"isdisabled\" />\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>", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], viewProviders: [
931
- { provide: ControlContainer, useExisting: SacFormDirective },
932
- ] });
1058
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row align-items-center\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.mb-3]=\"!stacked\"\r\n>\r\n <div\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 form-check-input-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe } });
933
1059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacCheckboxComponent, decorators: [{
934
1060
  type: Component,
935
1061
  args: [{ selector: 'sac-checkbox', providers: [
@@ -943,10 +1069,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
943
1069
  useExisting: forwardRef(() => SacCheckboxComponent),
944
1070
  multi: true,
945
1071
  },
946
- ], viewProviders: [
947
- { provide: ControlContainer, useExisting: SacFormDirective },
948
- ], template: "<div class=\"row mb-3 align-items-center\" [class.g-0]=\"disablelabel\">\r\n <div class=\"col-12 col-form-label col-form-label-sm\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input form-check-input-sm\" id=\"{{name}}\" name=\"{{name}}\" type=\"checkbox\" [checked]=\"value\"\r\n (blur)=\"onTouch()\" (change)=\"setValue($event.target.checked)\" [disabled]=\"isdisabled\" />\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>" }]
949
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1072
+ ], template: "<div\r\n class=\"row align-items-center\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.mb-3]=\"!stacked\"\r\n>\r\n <div\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 form-check-input-sm\"\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" }]
1073
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
950
1074
  type: Host
951
1075
  }, {
952
1076
  type: Optional
@@ -956,16 +1080,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
956
1080
  * Radiobuttons Group Komponente
957
1081
  */
958
1082
  class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
1083
+ // #region Constructors
959
1084
  /**
960
- * Konstruktor
961
- * @param parent Formular
962
- * @param injector Angular Dependency Injection Service
1085
+ * Constructor
1086
+ * @param formLayout SacFormLayout to define scoped layout settings
1087
+ * @param injector Injector for injecting services
963
1088
  */
964
- constructor(parent, injector) {
965
- super(parent, injector);
1089
+ constructor(formLayout, injector) {
1090
+ super(formLayout, injector);
966
1091
  }
967
1092
  }
968
- SacRadiobuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacRadiobuttonsComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1093
+ SacRadiobuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacRadiobuttonsComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
969
1094
  SacRadiobuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacRadiobuttonsComponent, selector: "sac-radiobuttons", providers: [
970
1095
  {
971
1096
  provide: NG_VALUE_ACCESSOR,
@@ -977,9 +1102,7 @@ SacRadiobuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
977
1102
  useExisting: forwardRef(() => SacRadiobuttonsComponent),
978
1103
  multi: true,
979
1104
  },
980
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div *ngIf=\"disablelabel === false\" class=\"col-form-label col-form-label-sm col-12 pt-0\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], viewProviders: [
981
- { provide: ControlContainer, useExisting: SacFormDirective },
982
- ] });
1105
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 col-form-label col-form-label-sm 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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe } });
983
1106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacRadiobuttonsComponent, decorators: [{
984
1107
  type: Component,
985
1108
  args: [{ selector: 'sac-radiobuttons', providers: [
@@ -993,10 +1116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
993
1116
  useExisting: forwardRef(() => SacRadiobuttonsComponent),
994
1117
  multi: true,
995
1118
  },
996
- ], viewProviders: [
997
- { provide: ControlContainer, useExisting: SacFormDirective },
998
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div *ngIf=\"disablelabel === false\" class=\"col-form-label col-form-label-sm col-12 pt-0\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>" }]
999
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1119
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 col-form-label col-form-label-sm 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" }]
1120
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1000
1121
  type: Host
1001
1122
  }, {
1002
1123
  type: Optional
@@ -1026,18 +1147,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1026
1147
  class SACBootstrap5CheckboxModule {
1027
1148
  }
1028
1149
  SACBootstrap5CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1029
- SACBootstrap5CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, declarations: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent], imports: [CommonModule], exports: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent] });
1030
- SACBootstrap5CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, imports: [[
1031
- CommonModule
1032
- ]] });
1150
+ SACBootstrap5CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, declarations: [SacCheckboxComponent,
1151
+ SacRadiobuttonComponent,
1152
+ SacRadiobuttonsComponent], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacCheckboxComponent,
1153
+ SacRadiobuttonComponent,
1154
+ SacRadiobuttonsComponent] });
1155
+ SACBootstrap5CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
1033
1156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5CheckboxModule, decorators: [{
1034
1157
  type: NgModule,
1035
1158
  args: [{
1036
- declarations: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent],
1037
- imports: [
1038
- CommonModule
1159
+ declarations: [
1160
+ SacCheckboxComponent,
1161
+ SacRadiobuttonComponent,
1162
+ SacRadiobuttonsComponent,
1163
+ ],
1164
+ imports: [CommonModule, SACBootstrap5LayoutModule],
1165
+ exports: [
1166
+ SacCheckboxComponent,
1167
+ SacRadiobuttonComponent,
1168
+ SacRadiobuttonsComponent,
1039
1169
  ],
1040
- exports: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent]
1041
1170
  }]
1042
1171
  }] });
1043
1172
 
@@ -1056,22 +1185,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1056
1185
  /**
1057
1186
  * Referenz auf Moment.JS
1058
1187
  */
1059
- const moment = moment_["default"];
1188
+ const moment = moment_['default'];
1060
1189
  /**
1061
1190
  * Komponente für Datumauswahl
1062
1191
  */
1063
1192
  class SacDateComponent extends SacDateCommon {
1193
+ // #region Constructors
1064
1194
  /**
1065
- * Konstruktor
1066
- * @param parent Formular
1067
- * @param injector Angular Dependency Injection Service
1068
- * @param _elementRef Referenz auf HTML DOM Element
1195
+ * Constructor
1196
+ * @param formLayout SacFormLayout to define scoped layout settings
1197
+ * @param injector Injector for injecting services
1198
+ * @param elementRef Reference to html dom element
1069
1199
  */
1070
- constructor(parent, injector, _elementRef) {
1071
- super(parent, injector, _elementRef);
1200
+ constructor(formLayout, injector, elementRef) {
1201
+ super(formLayout, injector, elementRef);
1072
1202
  }
1073
1203
  }
1074
- SacDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1204
+ SacDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1075
1205
  SacDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDateComponent, selector: "sac-date", providers: [
1076
1206
  {
1077
1207
  provide: NG_VALUE_ACCESSOR,
@@ -1083,9 +1213,7 @@ SacDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
1083
1213
  multi: true,
1084
1214
  useExisting: forwardRef(() => SacDateComponent),
1085
1215
  },
1086
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1087
- { provide: ControlContainer, useExisting: SacFormDirective },
1088
- ] });
1216
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1089
1217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateComponent, decorators: [{
1090
1218
  type: Component,
1091
1219
  args: [{ selector: 'sac-date', providers: [
@@ -1099,10 +1227,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1099
1227
  multi: true,
1100
1228
  useExisting: forwardRef(() => SacDateComponent),
1101
1229
  },
1102
- ], viewProviders: [
1103
- { provide: ControlContainer, useExisting: SacFormDirective },
1104
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1105
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1230
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1231
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1106
1232
  type: Host
1107
1233
  }, {
1108
1234
  type: Optional
@@ -1112,17 +1238,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1112
1238
  * Date und Time Komponente
1113
1239
  */
1114
1240
  class SacDateTimeComponent extends SacDateTimeCommon {
1241
+ // #region Constructors
1115
1242
  /**
1116
- * Konstruktor
1117
- * @param parent Formular
1118
- * @param injector Angular Dependency Injection Service
1119
- * @param _elementRef DOM Element Referenz
1243
+ * Constructor
1244
+ * @param formLayout SacFormLayout to define scoped layout settings
1245
+ * @param injector Injector for injecting services
1246
+ * @param elementRef Reference to html dom element
1120
1247
  */
1121
- constructor(parent, injector, _elementRef) {
1122
- super(parent, injector, _elementRef);
1248
+ constructor(formLayout, injector, elementRef) {
1249
+ super(formLayout, injector, elementRef);
1123
1250
  }
1124
1251
  }
1125
- SacDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateTimeComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1252
+ SacDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateTimeComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1126
1253
  SacDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDateTimeComponent, selector: "sac-datetime", providers: [
1127
1254
  {
1128
1255
  provide: NG_VALUE_ACCESSOR,
@@ -1134,9 +1261,7 @@ SacDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
1134
1261
  multi: true,
1135
1262
  useExisting: forwardRef(() => SacDateTimeComponent),
1136
1263
  },
1137
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1138
- { provide: ControlContainer, useExisting: SacFormDirective },
1139
- ] });
1264
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1140
1265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDateTimeComponent, decorators: [{
1141
1266
  type: Component,
1142
1267
  args: [{ selector: 'sac-datetime', providers: [
@@ -1150,10 +1275,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1150
1275
  multi: true,
1151
1276
  useExisting: forwardRef(() => SacDateTimeComponent),
1152
1277
  },
1153
- ], viewProviders: [
1154
- { provide: ControlContainer, useExisting: SacFormDirective },
1155
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1156
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1278
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1279
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1157
1280
  type: Host
1158
1281
  }, {
1159
1282
  type: Optional
@@ -1163,17 +1286,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1163
1286
  * Time Auswahl Komponente
1164
1287
  */
1165
1288
  class SacTimeComponent extends SacTimeCommon {
1289
+ // #region Constructors
1166
1290
  /**
1167
- * Konstruktor
1168
- * @param parent Formular
1169
- * @param injector Angular Dependency Injection Service
1170
- * @param _elementRef DOM Element Referenz
1291
+ * Constructor
1292
+ * @param formLayout SacFormLayout to define scoped layout settings
1293
+ * @param injector Injector for injecting services
1294
+ * @param elementRef Reference to html dom element
1171
1295
  */
1172
- constructor(parent, injector, _elementRef) {
1173
- super(parent, injector, _elementRef);
1296
+ constructor(formLayout, injector, elementRef) {
1297
+ super(formLayout, injector, elementRef);
1174
1298
  }
1175
1299
  }
1176
- SacTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTimeComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1300
+ SacTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTimeComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1177
1301
  SacTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacTimeComponent, selector: "sac-time", providers: [
1178
1302
  {
1179
1303
  provide: NG_VALUE_ACCESSOR,
@@ -1185,9 +1309,7 @@ SacTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
1185
1309
  multi: true,
1186
1310
  useExisting: forwardRef(() => SacTimeComponent),
1187
1311
  },
1188
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1189
- { provide: ControlContainer, useExisting: SacFormDirective },
1190
- ] });
1312
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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", components: [{ type: SacDateSelectorComponent, selector: "sac-dateselector" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.IMaskDirective, selector: "[imask]", inputs: ["imaskElement", "imask", "unmask"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1191
1313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTimeComponent, decorators: [{
1192
1314
  type: Component,
1193
1315
  args: [{ selector: 'sac-time', providers: [
@@ -1201,10 +1323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1201
1323
  multi: true,
1202
1324
  useExisting: forwardRef(() => SacTimeComponent),
1203
1325
  },
1204
- ], viewProviders: [
1205
- { provide: ControlContainer, useExisting: SacFormDirective },
1206
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1207
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1326
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12 position-relative\"\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 <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 *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 position-absolute\"\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\r\n class=\"popover-arrow position-absolute\"\r\n style=\"left: unset; right: 18px\"\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" }]
1327
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1208
1328
  type: Host
1209
1329
  }, {
1210
1330
  type: Optional
@@ -1213,18 +1333,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1213
1333
  class SACBootstrap5DateTimeModule {
1214
1334
  }
1215
1335
  SACBootstrap5DateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1216
- SACBootstrap5DateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, declarations: [SacDateComponent, SacDateTimeComponent, SacTimeComponent, SacDateSelectorComponent], imports: [CommonModule, IMaskModule], exports: [SacDateComponent, SacDateTimeComponent, SacTimeComponent, SacDateSelectorComponent] });
1217
- SACBootstrap5DateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, imports: [[
1218
- CommonModule, IMaskModule
1219
- ]] });
1336
+ SACBootstrap5DateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, declarations: [SacDateComponent,
1337
+ SacDateTimeComponent,
1338
+ SacTimeComponent,
1339
+ SacDateSelectorComponent], imports: [CommonModule, IMaskModule, SACBootstrap5LayoutModule], exports: [SacDateComponent,
1340
+ SacDateTimeComponent,
1341
+ SacTimeComponent,
1342
+ SacDateSelectorComponent] });
1343
+ SACBootstrap5DateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, imports: [[CommonModule, IMaskModule, SACBootstrap5LayoutModule]] });
1220
1344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DateTimeModule, decorators: [{
1221
1345
  type: NgModule,
1222
1346
  args: [{
1223
- declarations: [SacDateComponent, SacDateTimeComponent, SacTimeComponent, SacDateSelectorComponent],
1224
- imports: [
1225
- CommonModule, IMaskModule
1347
+ declarations: [
1348
+ SacDateComponent,
1349
+ SacDateTimeComponent,
1350
+ SacTimeComponent,
1351
+ SacDateSelectorComponent,
1352
+ ],
1353
+ imports: [CommonModule, IMaskModule, SACBootstrap5LayoutModule],
1354
+ exports: [
1355
+ SacDateComponent,
1356
+ SacDateTimeComponent,
1357
+ SacTimeComponent,
1358
+ SacDateSelectorComponent,
1226
1359
  ],
1227
- exports: [SacDateComponent, SacDateTimeComponent, SacTimeComponent, SacDateSelectorComponent]
1228
1360
  }]
1229
1361
  }] });
1230
1362
 
@@ -1455,16 +1587,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1455
1587
  * Input Komponente
1456
1588
  */
1457
1589
  class SacInputComponent extends SacInputCommon {
1590
+ // #region Constructors
1458
1591
  /**
1459
- * Konstruktor
1460
- * @param parent Formular
1461
- * @param injector Angular Dependency Injection Service
1592
+ * Constructor
1593
+ * @param formLayout SacFormLayout to define scoped layout settings
1594
+ * @param injector Injector for injecting services
1462
1595
  */
1463
- constructor(parent, injector) {
1464
- super(parent, injector);
1596
+ constructor(formLayout, injector) {
1597
+ super(formLayout, injector);
1465
1598
  }
1466
1599
  }
1467
- SacInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1600
+ SacInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1468
1601
  SacInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputComponent, selector: "sac-input", providers: [
1469
1602
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacInputComponent },
1470
1603
  {
@@ -1472,7 +1605,7 @@ SacInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
1472
1605
  multi: true,
1473
1606
  useExisting: forwardRef(() => SacInputComponent),
1474
1607
  },
1475
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }] });
1608
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1476
1609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputComponent, decorators: [{
1477
1610
  type: Component,
1478
1611
  args: [{ selector: 'sac-input', providers: [
@@ -1482,208 +1615,196 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1482
1615
  multi: true,
1483
1616
  useExisting: forwardRef(() => SacInputComponent),
1484
1617
  },
1485
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
1486
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1618
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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" }]
1619
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1487
1620
  type: Host
1488
1621
  }, {
1489
1622
  type: Optional
1490
1623
  }] }, { type: i0.Injector }]; } });
1491
1624
 
1492
1625
  /**
1493
- * Input Box für E-Mail Adressen
1626
+ * Input Box für lange Texte
1494
1627
  */
1495
- class SacInputEmailComponent extends SacInputEmailCommon {
1628
+ class SacInputAreaComponent extends SacInputAreaCommon {
1629
+ // #region Constructors
1496
1630
  /**
1497
- * Konstruktor
1498
- * @param parent Formular
1499
- * @param injector Angular Dependency Injection Service
1631
+ * Constructor
1632
+ * @param formLayout SacFormLayout to define scoped layout settings
1633
+ * @param injector Injector for injecting services
1500
1634
  */
1501
- constructor(parent, injector) {
1502
- super(parent, injector);
1635
+ constructor(formLayout, injector) {
1636
+ super(formLayout, injector);
1503
1637
  }
1504
1638
  }
1505
- SacInputEmailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputEmailComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1506
- SacInputEmailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputEmailComponent, selector: "sac-inputemail", providers: [
1639
+ SacInputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputAreaComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1640
+ SacInputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputAreaComponent, selector: "sac-inputarea", providers: [
1507
1641
  {
1508
1642
  provide: NG_VALUE_ACCESSOR,
1509
1643
  multi: true,
1510
- useExisting: forwardRef(() => SacInputEmailComponent),
1644
+ useExisting: forwardRef(() => SacInputAreaComponent),
1511
1645
  },
1512
1646
  {
1513
1647
  provide: NG_VALIDATORS,
1514
1648
  multi: true,
1515
- useExisting: forwardRef(() => SacInputEmailComponent),
1649
+ useExisting: forwardRef(() => SacInputAreaComponent),
1516
1650
  },
1517
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <span class=\"input-group-text\">@</span>\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1518
- { provide: ControlContainer, useExisting: SacFormDirective },
1519
- ] });
1520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputEmailComponent, decorators: [{
1651
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputAreaComponent, decorators: [{
1521
1653
  type: Component,
1522
- args: [{ selector: 'sac-inputemail', providers: [
1654
+ args: [{ selector: 'sac-inputarea', providers: [
1523
1655
  {
1524
1656
  provide: NG_VALUE_ACCESSOR,
1525
1657
  multi: true,
1526
- useExisting: forwardRef(() => SacInputEmailComponent),
1658
+ useExisting: forwardRef(() => SacInputAreaComponent),
1527
1659
  },
1528
1660
  {
1529
1661
  provide: NG_VALIDATORS,
1530
1662
  multi: true,
1531
- useExisting: forwardRef(() => SacInputEmailComponent),
1663
+ useExisting: forwardRef(() => SacInputAreaComponent),
1532
1664
  },
1533
- ], viewProviders: [
1534
- { provide: ControlContainer, useExisting: SacFormDirective },
1535
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <span class=\"input-group-text\">@</span>\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" }]
1536
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1665
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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" }]
1666
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1537
1667
  type: Host
1538
1668
  }, {
1539
1669
  type: Optional
1540
1670
  }] }, { type: i0.Injector }]; } });
1541
1671
 
1542
1672
  /**
1543
- * Input Box für lange Texte
1673
+ * Input Control für Währungen
1544
1674
  */
1545
- class SacInputAreaComponent extends SacInputAreaCommon {
1675
+ class SacInputCurrencyComponent extends SacInputCurrencyCommon {
1676
+ // #region Constructors
1546
1677
  /**
1547
- * Konstruktor
1548
- * @param parent Formular
1549
- * @param injector Angular Dependency Injection Service
1678
+ * Constructor
1679
+ * @param formLayout SacFormLayout to define scoped layout settings
1680
+ * @param injector Injector for injecting services
1550
1681
  */
1551
- constructor(parent, injector) {
1552
- super(parent, injector);
1682
+ constructor(formLayout, injector) {
1683
+ super(formLayout, injector);
1553
1684
  }
1554
1685
  }
1555
- SacInputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputAreaComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1556
- SacInputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputAreaComponent, selector: "sac-inputarea", providers: [
1686
+ SacInputCurrencyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputCurrencyComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1687
+ SacInputCurrencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputCurrencyComponent, selector: "sac-inputcurrency", providers: [
1557
1688
  {
1558
1689
  provide: NG_VALUE_ACCESSOR,
1559
1690
  multi: true,
1560
- useExisting: forwardRef(() => SacInputAreaComponent),
1691
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1561
1692
  },
1562
1693
  {
1563
1694
  provide: NG_VALIDATORS,
1564
1695
  multi: true,
1565
- useExisting: forwardRef(() => SacInputAreaComponent),
1696
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1566
1697
  },
1567
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1568
- { provide: ControlContainer, useExisting: SacFormDirective },
1569
- ] });
1570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputAreaComponent, decorators: [{
1698
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 <span class=\"input-group-text\">CHF</span>\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputCurrencyComponent, decorators: [{
1571
1700
  type: Component,
1572
- args: [{ selector: 'sac-inputarea', providers: [
1701
+ args: [{ selector: 'sac-inputcurrency', providers: [
1573
1702
  {
1574
1703
  provide: NG_VALUE_ACCESSOR,
1575
1704
  multi: true,
1576
- useExisting: forwardRef(() => SacInputAreaComponent),
1705
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1577
1706
  },
1578
1707
  {
1579
1708
  provide: NG_VALIDATORS,
1580
1709
  multi: true,
1581
- useExisting: forwardRef(() => SacInputAreaComponent),
1710
+ useExisting: forwardRef(() => SacInputCurrencyComponent),
1582
1711
  },
1583
- ], viewProviders: [
1584
- { provide: ControlContainer, useExisting: SacFormDirective },
1585
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
1586
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1712
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 <span class=\"input-group-text\">CHF</span>\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" }]
1713
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1587
1714
  type: Host
1588
1715
  }, {
1589
1716
  type: Optional
1590
1717
  }] }, { type: i0.Injector }]; } });
1591
1718
 
1592
1719
  /**
1593
- * Input Control für Währungen
1720
+ * Input Komponente für Zahlen
1594
1721
  */
1595
- class SacInputCurrencyComponent extends SacInputCurrencyCommon {
1722
+ class SacInputDecimalComponent extends SacInputDecimalCommon {
1723
+ // #region Constructors
1596
1724
  /**
1597
- * Konstruktor
1598
- * @param parent Formular
1599
- * @param injector Angular Dependency Injection Service
1725
+ * Constructor
1726
+ * @param formLayout SacFormLayout to define scoped layout settings
1727
+ * @param injector Injector for injecting services
1600
1728
  */
1601
- constructor(parent, injector) {
1602
- super(parent, injector);
1729
+ constructor(formLayout, injector) {
1730
+ super(formLayout, injector);
1603
1731
  }
1604
1732
  }
1605
- SacInputCurrencyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputCurrencyComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1606
- SacInputCurrencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputCurrencyComponent, selector: "sac-inputcurrency", providers: [
1733
+ SacInputDecimalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputDecimalComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1734
+ SacInputDecimalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputDecimalComponent, selector: "sac-inputdecimal", providers: [
1607
1735
  {
1608
1736
  provide: NG_VALUE_ACCESSOR,
1609
1737
  multi: true,
1610
- useExisting: forwardRef(() => SacInputCurrencyComponent),
1738
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1611
1739
  },
1612
1740
  {
1613
1741
  provide: NG_VALIDATORS,
1614
1742
  multi: true,
1615
- useExisting: forwardRef(() => SacInputCurrencyComponent),
1743
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1616
1744
  },
1617
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <span class=\"input-group-text\">CHF</span>\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1618
- { provide: ControlContainer, useExisting: SacFormDirective },
1619
- ] });
1620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputCurrencyComponent, decorators: [{
1745
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1746
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputDecimalComponent, decorators: [{
1621
1747
  type: Component,
1622
- args: [{ selector: 'sac-inputcurrency', providers: [
1748
+ args: [{ selector: 'sac-inputdecimal', providers: [
1623
1749
  {
1624
1750
  provide: NG_VALUE_ACCESSOR,
1625
1751
  multi: true,
1626
- useExisting: forwardRef(() => SacInputCurrencyComponent),
1752
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1627
1753
  },
1628
1754
  {
1629
1755
  provide: NG_VALIDATORS,
1630
1756
  multi: true,
1631
- useExisting: forwardRef(() => SacInputCurrencyComponent),
1757
+ useExisting: forwardRef(() => SacInputDecimalComponent),
1632
1758
  },
1633
- ], viewProviders: [
1634
- { provide: ControlContainer, useExisting: SacFormDirective },
1635
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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 <span class=\"input-group-text\">CHF</span>\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" }]
1636
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1759
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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" }]
1760
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1637
1761
  type: Host
1638
1762
  }, {
1639
1763
  type: Optional
1640
1764
  }] }, { type: i0.Injector }]; } });
1641
1765
 
1642
1766
  /**
1643
- * Input Komponente für Zahlen
1767
+ * Input Box für E-Mail Adressen
1644
1768
  */
1645
- class SacInputDecimalComponent extends SacInputDecimalCommon {
1769
+ class SacInputEmailComponent extends SacInputEmailCommon {
1770
+ // #region Constructors
1646
1771
  /**
1647
- * Konstruktor
1648
- * @param parent Formular
1649
- * @param injector Angular Dependency Injection Service
1772
+ * Constructor
1773
+ * @param formLayout SacFormLayout to define scoped layout settings
1774
+ * @param injector Injector for injecting services
1650
1775
  */
1651
- constructor(parent, injector) {
1652
- super(parent, injector);
1776
+ constructor(formLayout, injector) {
1777
+ super(formLayout, injector);
1653
1778
  }
1654
1779
  }
1655
- SacInputDecimalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputDecimalComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1656
- SacInputDecimalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputDecimalComponent, selector: "sac-inputdecimal", providers: [
1780
+ SacInputEmailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputEmailComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1781
+ SacInputEmailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputEmailComponent, selector: "sac-inputemail", providers: [
1657
1782
  {
1658
1783
  provide: NG_VALUE_ACCESSOR,
1659
1784
  multi: true,
1660
- useExisting: forwardRef(() => SacInputDecimalComponent),
1785
+ useExisting: forwardRef(() => SacInputEmailComponent),
1661
1786
  },
1662
1787
  {
1663
1788
  provide: NG_VALIDATORS,
1664
1789
  multi: true,
1665
- useExisting: forwardRef(() => SacInputDecimalComponent),
1790
+ useExisting: forwardRef(() => SacInputEmailComponent),
1666
1791
  },
1667
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1668
- { provide: ControlContainer, useExisting: SacFormDirective },
1669
- ] });
1670
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputDecimalComponent, decorators: [{
1792
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 <span class=\"input-group-text\">@</span>\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputEmailComponent, decorators: [{
1671
1794
  type: Component,
1672
- args: [{ selector: 'sac-inputdecimal', providers: [
1795
+ args: [{ selector: 'sac-inputemail', providers: [
1673
1796
  {
1674
1797
  provide: NG_VALUE_ACCESSOR,
1675
1798
  multi: true,
1676
- useExisting: forwardRef(() => SacInputDecimalComponent),
1799
+ useExisting: forwardRef(() => SacInputEmailComponent),
1677
1800
  },
1678
1801
  {
1679
1802
  provide: NG_VALIDATORS,
1680
1803
  multi: true,
1681
- useExisting: forwardRef(() => SacInputDecimalComponent),
1804
+ useExisting: forwardRef(() => SacInputEmailComponent),
1682
1805
  },
1683
- ], viewProviders: [
1684
- { provide: ControlContainer, useExisting: SacFormDirective },
1685
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
1686
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1806
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 <span class=\"input-group-text\">@</span>\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" }]
1807
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1687
1808
  type: Host
1688
1809
  }, {
1689
1810
  type: Optional
@@ -1693,16 +1814,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1693
1814
  * Input Komponten für Ganzzahlen
1694
1815
  */
1695
1816
  class SacInputIntegerComponent extends SacInputIntegerCommon {
1817
+ // #region Constructors
1696
1818
  /**
1697
- * Konstruktor
1698
- * @param parent Formular
1699
- * @param injector Angular Dependency Injection Service
1819
+ * Constructor
1820
+ * @param formLayout SacFormLayout to define scoped layout settings
1821
+ * @param injector Injector for injecting services
1700
1822
  */
1701
- constructor(parent, injector) {
1702
- super(parent, injector);
1823
+ constructor(formLayout, injector) {
1824
+ super(formLayout, injector);
1703
1825
  }
1704
1826
  }
1705
- SacInputIntegerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputIntegerComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1827
+ SacInputIntegerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputIntegerComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1706
1828
  SacInputIntegerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputIntegerComponent, selector: "sac-inputinteger", providers: [
1707
1829
  {
1708
1830
  provide: NG_VALUE_ACCESSOR,
@@ -1714,9 +1836,7 @@ SacInputIntegerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
1714
1836
  multi: true,
1715
1837
  useExisting: forwardRef(() => SacInputIntegerComponent),
1716
1838
  },
1717
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1718
- { provide: ControlContainer, useExisting: SacFormDirective },
1719
- ] });
1839
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1720
1840
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputIntegerComponent, decorators: [{
1721
1841
  type: Component,
1722
1842
  args: [{ selector: 'sac-inputinteger', providers: [
@@ -1730,10 +1850,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1730
1850
  multi: true,
1731
1851
  useExisting: forwardRef(() => SacInputIntegerComponent),
1732
1852
  },
1733
- ], viewProviders: [
1734
- { provide: ControlContainer, useExisting: SacFormDirective },
1735
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
1736
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1853
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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" }]
1854
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1737
1855
  type: Host
1738
1856
  }, {
1739
1857
  type: Optional
@@ -1743,16 +1861,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1743
1861
  * Input Box für Passwörter
1744
1862
  */
1745
1863
  class SacInputPasswordComponent extends SacInputPasswordCommon {
1864
+ // #region Constructors
1746
1865
  /**
1747
- * Konstruktor
1748
- * @param parent Formular
1749
- * @param injector Angular Dependency Injection Service
1866
+ * Constructor
1867
+ * @param formLayout SacFormLayout to define scoped layout settings
1868
+ * @param injector Injector for injecting services
1750
1869
  */
1751
- constructor(parent, injector) {
1752
- super(parent, injector);
1870
+ constructor(formLayout, injector) {
1871
+ super(formLayout, injector);
1753
1872
  }
1754
1873
  }
1755
- SacInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputPasswordComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1874
+ SacInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputPasswordComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1756
1875
  SacInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputPasswordComponent, selector: "sac-inputpassword", providers: [
1757
1876
  {
1758
1877
  provide: NG_VALUE_ACCESSOR,
@@ -1764,9 +1883,7 @@ SacInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
1764
1883
  multi: true,
1765
1884
  useExisting: forwardRef(() => SacInputPasswordComponent),
1766
1885
  },
1767
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
1768
- { provide: ControlContainer, useExisting: SacFormDirective },
1769
- ] });
1886
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
1770
1887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputPasswordComponent, decorators: [{
1771
1888
  type: Component,
1772
1889
  args: [{ selector: 'sac-inputpassword', providers: [
@@ -1780,10 +1897,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1780
1897
  multi: true,
1781
1898
  useExisting: forwardRef(() => SacInputPasswordComponent),
1782
1899
  },
1783
- ], viewProviders: [
1784
- { provide: ControlContainer, useExisting: SacFormDirective },
1785
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
1786
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1900
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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" }]
1901
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1787
1902
  type: Host
1788
1903
  }, {
1789
1904
  type: Optional
@@ -1793,16 +1908,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1793
1908
  * Input Box für Suche
1794
1909
  */
1795
1910
  class SacInputSearchComponent extends SacInputSearchCommon {
1911
+ // #region Constructors
1796
1912
  /**
1797
- * Konstruktor
1798
- * @param parent Formular
1799
- * @param injector Angular Dependency Injection Service
1913
+ * Constructor
1914
+ * @param formLayout SacFormLayout to define scoped layout settings
1915
+ * @param injector Injector for injecting services
1800
1916
  */
1801
- constructor(parent, injector) {
1802
- super(parent, injector);
1917
+ constructor(formLayout, injector) {
1918
+ super(formLayout, injector);
1803
1919
  }
1804
1920
  }
1805
- SacInputSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputSearchComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1921
+ SacInputSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputSearchComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1806
1922
  SacInputSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacInputSearchComponent, selector: "sac-inputsearch", providers: [
1807
1923
  {
1808
1924
  provide: NG_VALUE_ACCESSOR,
@@ -1814,7 +1930,7 @@ SacInputSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
1814
1930
  multi: true,
1815
1931
  useExisting: forwardRef(() => SacInputSearchComponent),
1816
1932
  },
1817
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isadaptivelabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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]=\"{'language-specific': islanguagespecific,'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1933
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 <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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe } });
1818
1934
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacInputSearchComponent, decorators: [{
1819
1935
  type: Component,
1820
1936
  args: [{ selector: 'sac-inputsearch', providers: [
@@ -1828,8 +1944,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1828
1944
  multi: true,
1829
1945
  useExisting: forwardRef(() => SacInputSearchComponent),
1830
1946
  },
1831
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isadaptivelabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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]=\"{'language-specific': islanguagespecific,'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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" }]
1832
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
1947
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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 <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" }]
1948
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1833
1949
  type: Host
1834
1950
  }, {
1835
1951
  type: Optional
@@ -1838,200 +1954,222 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
1838
1954
  class SACBootstrap5InputModule {
1839
1955
  }
1840
1956
  SACBootstrap5InputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1841
- SACBootstrap5InputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, declarations: [SacInputComponent, SacInputAreaComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent], imports: [CommonModule], exports: [SacInputComponent, SacInputAreaComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent] });
1842
- SACBootstrap5InputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, imports: [[
1843
- CommonModule
1844
- ]] });
1957
+ SACBootstrap5InputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, declarations: [SacInputComponent,
1958
+ SacInputAreaComponent,
1959
+ SacInputCurrencyComponent,
1960
+ SacInputDecimalComponent,
1961
+ SacInputEmailComponent,
1962
+ SacInputIntegerComponent,
1963
+ SacInputPasswordComponent,
1964
+ SacInputSearchComponent], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacInputComponent,
1965
+ SacInputAreaComponent,
1966
+ SacInputCurrencyComponent,
1967
+ SacInputDecimalComponent,
1968
+ SacInputEmailComponent,
1969
+ SacInputIntegerComponent,
1970
+ SacInputPasswordComponent,
1971
+ SacInputSearchComponent] });
1972
+ SACBootstrap5InputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
1845
1973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5InputModule, decorators: [{
1846
1974
  type: NgModule,
1847
1975
  args: [{
1848
- declarations: [SacInputComponent, SacInputAreaComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent],
1849
- imports: [
1850
- CommonModule
1976
+ declarations: [
1977
+ SacInputComponent,
1978
+ SacInputAreaComponent,
1979
+ SacInputCurrencyComponent,
1980
+ SacInputDecimalComponent,
1981
+ SacInputEmailComponent,
1982
+ SacInputIntegerComponent,
1983
+ SacInputPasswordComponent,
1984
+ SacInputSearchComponent,
1985
+ ],
1986
+ imports: [CommonModule, SACBootstrap5LayoutModule],
1987
+ exports: [
1988
+ SacInputComponent,
1989
+ SacInputAreaComponent,
1990
+ SacInputCurrencyComponent,
1991
+ SacInputDecimalComponent,
1992
+ SacInputEmailComponent,
1993
+ SacInputIntegerComponent,
1994
+ SacInputPasswordComponent,
1995
+ SacInputSearchComponent,
1851
1996
  ],
1852
- exports: [SacInputComponent, SacInputAreaComponent, SacInputCurrencyComponent, SacInputDecimalComponent, SacInputEmailComponent, SacInputIntegerComponent, SacInputPasswordComponent, SacInputSearchComponent]
1853
1997
  }]
1854
1998
  }] });
1855
1999
 
2000
+ // #region Classes
1856
2001
  /**
1857
- * Listbox Komponente
2002
+ * Dropdown Komponente
1858
2003
  */
1859
- class SacListboxComponent extends SacListboxCommon {
2004
+ class SacDropdownComponent extends SacDropdownCommon {
2005
+ // #region Constructors
1860
2006
  /**
1861
- * Konstruktor
1862
- * @param parent Formular
1863
- * @param injector Angular Dependiency Injection Service
2007
+ * Constructor
2008
+ * @param formLayout SacFormLayout to define scoped layout settings
2009
+ * @param injector Injector for injecting services
2010
+ * @param renderer Angular rendering engine
2011
+ * @param elementRef Reference to html dom element
1864
2012
  */
1865
- constructor(parent, injector) {
1866
- super(parent, injector);
2013
+ constructor(formLayout, injector, renderer, elementRef) {
2014
+ super(formLayout, injector, renderer, elementRef);
1867
2015
  }
1868
2016
  }
1869
- SacListboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1870
- SacListboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacListboxComponent, selector: "sac-listbox", providers: [
2017
+ SacDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2018
+ SacDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDropdownComponent, selector: "sac-dropdown", providers: [
1871
2019
  {
1872
2020
  provide: NG_VALUE_ACCESSOR,
1873
2021
  multi: true,
1874
- useExisting: SacListboxComponent,
2022
+ useExisting: SacDropdownComponent,
1875
2023
  },
1876
2024
  {
1877
2025
  provide: NG_VALIDATORS,
1878
2026
  multi: true,
1879
- useExisting: forwardRef(() => SacListboxComponent),
2027
+ useExisting: forwardRef(() => SacDropdownComponent),
1880
2028
  },
1881
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select form-select-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", directives: [{ type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }], pipes: { "async": i0.forwardRef(function () { return i2.AsyncPipe; }) }, viewProviders: [
1882
- { provide: ControlContainer, useExisting: SacFormDirective },
1883
- ] });
1884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxComponent, decorators: [{
2029
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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-select form-select-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", directives: [{ type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "toLabelWidthCss": i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), "toControlWidthCss": i0.forwardRef(function () { return SacToControlWidthCssPipe; }), "async": i0.forwardRef(function () { return i2.AsyncPipe; }) } });
2030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownComponent, decorators: [{
1885
2031
  type: Component,
1886
- args: [{ selector: 'sac-listbox', providers: [
2032
+ args: [{ selector: 'sac-dropdown', providers: [
1887
2033
  {
1888
2034
  provide: NG_VALUE_ACCESSOR,
1889
2035
  multi: true,
1890
- useExisting: SacListboxComponent,
2036
+ useExisting: SacDropdownComponent,
1891
2037
  },
1892
2038
  {
1893
2039
  provide: NG_VALIDATORS,
1894
2040
  multi: true,
1895
- useExisting: forwardRef(() => SacListboxComponent),
2041
+ useExisting: forwardRef(() => SacDropdownComponent),
1896
2042
  },
1897
- ], viewProviders: [
1898
- { provide: ControlContainer, useExisting: SacFormDirective },
1899
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select form-select-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" }]
1900
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2043
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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-select form-select-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" }]
2044
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1901
2045
  type: Host
1902
2046
  }, {
1903
2047
  type: Optional
1904
- }] }, { type: i0.Injector }]; } });
2048
+ }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
1905
2049
  /**
1906
- * Option Item in Listbox
2050
+ * Direktive für Dropdown Option List
1907
2051
  */
1908
- class SacListboxOptionDirective extends SacListboxOptionCommon {
2052
+ class SacDropdownOptionDirective extends SacDropdownOptionCommon {
2053
+ // #region Constructors
1909
2054
  /**
1910
2055
  * Konstruktor
1911
- * @param _elementRef Referenz auf DOM Element
1912
- * @param _renderer Angular Rendering Engine
1913
- * @param listbox Referenz auf Listbox Komponente
2056
+ * @param elementRef Referenz auf HTML DOM Element
2057
+ * @param renderer Angular Rendering Engine
2058
+ * @param dropdownList Referenz auf DropDown Komponente
1914
2059
  */
1915
- constructor(_elementRef, _renderer, listbox) {
1916
- super(_elementRef, _renderer, listbox);
2060
+ constructor(elementRef, renderer, dropdownList) {
2061
+ super(elementRef, renderer, dropdownList);
1917
2062
  }
1918
2063
  }
1919
- SacListboxOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacListboxComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1920
- SacListboxOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacListboxOptionDirective, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 });
1921
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxOptionDirective, decorators: [{
2064
+ SacDropdownOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacDropdownComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2065
+ SacDropdownOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacDropdownOptionDirective, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 });
2066
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownOptionDirective, decorators: [{
1922
2067
  type: Directive,
1923
2068
  args: [{ selector: '[sacOption],option' }]
1924
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacListboxComponent, decorators: [{
2069
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacDropdownComponent, decorators: [{
1925
2070
  type: Optional
1926
2071
  }, {
1927
2072
  type: Host
1928
2073
  }] }]; } });
1929
2074
 
1930
- class SACBootstrap5ListModule {
2075
+ class SACBootstrap5DropdownModule {
1931
2076
  }
1932
- SACBootstrap5ListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1933
- SACBootstrap5ListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, declarations: [SacListboxComponent, SacListboxOptionDirective], imports: [CommonModule], exports: [SacListboxComponent, SacListboxOptionDirective] });
1934
- SACBootstrap5ListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, imports: [[CommonModule]] });
1935
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, decorators: [{
2077
+ SACBootstrap5DropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2078
+ SACBootstrap5DropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, declarations: [SacDropdownComponent, SacDropdownOptionDirective], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacDropdownComponent, SacDropdownOptionDirective] });
2079
+ SACBootstrap5DropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
2080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, decorators: [{
1936
2081
  type: NgModule,
1937
2082
  args: [{
1938
- declarations: [SacListboxComponent, SacListboxOptionDirective],
1939
- imports: [CommonModule],
1940
- exports: [SacListboxComponent, SacListboxOptionDirective],
2083
+ declarations: [SacDropdownComponent, SacDropdownOptionDirective],
2084
+ imports: [CommonModule, SACBootstrap5LayoutModule],
2085
+ exports: [SacDropdownComponent, SacDropdownOptionDirective],
1941
2086
  }]
1942
2087
  }] });
1943
2088
 
2089
+ // #region Classes
1944
2090
  /**
1945
- * Dropdown Komponente
2091
+ * Listbox Komponente
1946
2092
  */
1947
- class SacDropdownComponent extends SacDropdownCommon {
2093
+ class SacListboxComponent extends SacListboxCommon {
2094
+ // #region Constructors
1948
2095
  /**
1949
- * Konstruktor
1950
- * @param parent Formular
1951
- * @param injector Dependency Injection Service
1952
- * @param _renderer Angular Rendering Engine
1953
- * @param _elementRef Referenz auf HTML DOM Element
2096
+ * Constructor
2097
+ * @param formLayout SacFormLayout to define scoped layout settings
2098
+ * @param injector Injector for injecting services
1954
2099
  */
1955
- constructor(parent, injector, _renderer, _elementRef) {
1956
- super(parent, injector, _renderer, _elementRef);
2100
+ constructor(formLayout, injector) {
2101
+ super(formLayout, injector);
1957
2102
  }
1958
2103
  }
1959
- SacDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1960
- SacDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDropdownComponent, selector: "sac-dropdown", providers: [
2104
+ SacListboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2105
+ SacListboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacListboxComponent, selector: "sac-listbox", providers: [
1961
2106
  {
1962
2107
  provide: NG_VALUE_ACCESSOR,
1963
2108
  multi: true,
1964
- useExisting: SacDropdownComponent,
2109
+ useExisting: SacListboxComponent,
1965
2110
  },
1966
2111
  {
1967
2112
  provide: NG_VALIDATORS,
1968
2113
  multi: true,
1969
- useExisting: forwardRef(() => SacDropdownComponent),
2114
+ useExisting: forwardRef(() => SacListboxComponent),
1970
2115
  },
1971
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select form-select-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", directives: [{ type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i0.forwardRef(function () { return i2.AsyncPipe; }) } });
1972
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownComponent, decorators: [{
2116
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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-select form-select-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", directives: [{ type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }], pipes: { "toLabelWidthCss": i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), "toControlWidthCss": i0.forwardRef(function () { return SacToControlWidthCssPipe; }), "async": i0.forwardRef(function () { return i2.AsyncPipe; }) } });
2117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxComponent, decorators: [{
1973
2118
  type: Component,
1974
- args: [{ selector: 'sac-dropdown', providers: [
2119
+ args: [{ selector: 'sac-listbox', providers: [
1975
2120
  {
1976
2121
  provide: NG_VALUE_ACCESSOR,
1977
2122
  multi: true,
1978
- useExisting: SacDropdownComponent,
2123
+ useExisting: SacListboxComponent,
1979
2124
  },
1980
2125
  {
1981
2126
  provide: NG_VALIDATORS,
1982
2127
  multi: true,
1983
- useExisting: forwardRef(() => SacDropdownComponent),
2128
+ useExisting: forwardRef(() => SacListboxComponent),
1984
2129
  },
1985
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-select form-select-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" }]
1986
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2130
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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-select form-select-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" }]
2131
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
1987
2132
  type: Host
1988
2133
  }, {
1989
2134
  type: Optional
1990
- }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
2135
+ }] }, { type: i0.Injector }]; } });
1991
2136
  /**
1992
- * Direktive für Dropdown Option List
2137
+ * Option Item in Listbox
1993
2138
  */
1994
- class SacDropdownOptionDirective extends SacDropdownOptionCommon {
2139
+ class SacListboxOptionDirective extends SacListboxOptionCommon {
2140
+ // #region Constructors
1995
2141
  /**
1996
2142
  * Konstruktor
1997
- * @param _elementRef Referenz auf HTML DOM Element
1998
- * @param _renderer Angular Rendering Engine
1999
- * @param dropdownList Referenz auf DropDown Komponente
2143
+ * @param elementRef Referenz auf DOM Element
2144
+ * @param renderer Angular Rendering Engine
2145
+ * @param listbox Referenz auf Listbox Komponente
2000
2146
  */
2001
- constructor(_elementRef, _renderer, dropdownList) {
2002
- super(_elementRef, _renderer, dropdownList);
2147
+ constructor(elementRef, renderer, listbox) {
2148
+ super(elementRef, renderer, listbox);
2003
2149
  }
2004
2150
  }
2005
- SacDropdownOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacDropdownComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2006
- SacDropdownOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacDropdownOptionDirective, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 });
2007
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropdownOptionDirective, decorators: [{
2151
+ SacListboxOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacListboxComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
2152
+ SacListboxOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacListboxOptionDirective, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 });
2153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacListboxOptionDirective, decorators: [{
2008
2154
  type: Directive,
2009
2155
  args: [{ selector: '[sacOption],option' }]
2010
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacDropdownComponent, decorators: [{
2156
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacListboxComponent, decorators: [{
2011
2157
  type: Optional
2012
2158
  }, {
2013
2159
  type: Host
2014
2160
  }] }]; } });
2015
2161
 
2016
- class SACBootstrap5DropdownModule {
2162
+ class SACBootstrap5ListModule {
2017
2163
  }
2018
- SACBootstrap5DropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2019
- SACBootstrap5DropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, declarations: [SacDropdownComponent,
2020
- SacDropdownOptionDirective], imports: [CommonModule], exports: [SacDropdownComponent,
2021
- SacDropdownOptionDirective] });
2022
- SACBootstrap5DropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, imports: [[CommonModule]] });
2023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5DropdownModule, decorators: [{
2164
+ SACBootstrap5ListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2165
+ SACBootstrap5ListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, declarations: [SacListboxComponent, SacListboxOptionDirective], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacListboxComponent, SacListboxOptionDirective] });
2166
+ SACBootstrap5ListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
2167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5ListModule, decorators: [{
2024
2168
  type: NgModule,
2025
2169
  args: [{
2026
- declarations: [
2027
- SacDropdownComponent,
2028
- SacDropdownOptionDirective,
2029
- ],
2030
- imports: [CommonModule],
2031
- exports: [
2032
- SacDropdownComponent,
2033
- SacDropdownOptionDirective,
2034
- ],
2170
+ declarations: [SacListboxComponent, SacListboxOptionDirective],
2171
+ imports: [CommonModule, SACBootstrap5LayoutModule],
2172
+ exports: [SacListboxComponent, SacListboxOptionDirective],
2035
2173
  }]
2036
2174
  }] });
2037
2175
 
@@ -2039,12 +2177,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2039
2177
  * Marker Komponente für Context Menü
2040
2178
  */
2041
2179
  class SacMultilanguagemenuContainerDirective extends SacContextMenuContrainerCommon {
2180
+ // #region Constructors
2042
2181
  /**
2043
2182
  * Konstruktor
2044
- * @param _elementRef Referenz auf DOM Element
2183
+ * @param elementRef Referenz auf DOM Element
2045
2184
  */
2046
- constructor(_elementRef) {
2047
- super(_elementRef);
2185
+ constructor(elementRef) {
2186
+ super(elementRef);
2048
2187
  }
2049
2188
  }
2050
2189
  SacMultilanguagemenuContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguagemenuContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
@@ -2071,12 +2210,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2071
2210
  * Anker Komponente für Context Menü. Wird zum positionieren des Context Menü in der Page benötigt.
2072
2211
  */
2073
2212
  class SacMultilanguagemenuAnchorDirective extends SacContextmenuAnchorCommon {
2213
+ // #region Constructors
2074
2214
  /**
2075
2215
  * Konstruktor
2076
- * @param _elementRef HTML DOM Referenz
2216
+ * @param elementRef HTML DOM Referenz
2077
2217
  */
2078
- constructor(_elementRef) {
2079
- super(_elementRef);
2218
+ constructor(elementRef) {
2219
+ super(elementRef);
2080
2220
  }
2081
2221
  }
2082
2222
  SacMultilanguagemenuAnchorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguagemenuAnchorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
@@ -2103,16 +2243,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2103
2243
  * Component für Contextmenü
2104
2244
  */
2105
2245
  class SacMultilanguagemenuComponent extends SacContextmenuCommon {
2246
+ // #endregion Properties
2247
+ // #region Constructors
2106
2248
  /**
2107
2249
  * Constructor
2108
- * @param _document Referenz auf HTML Document
2109
- * @param _ngZone Angular Zone Service
2110
- * @param _elementRef Referenz auf HTML Element der aktuellen Komponente
2111
- * @param _renderer Render Service von Angular
2112
- * @param _injector injector to resolve services in base component
2250
+ * @param document Referenz auf HTML Document
2251
+ * @param ngZone Angular Zone Service
2252
+ * @param elementRef Referenz auf HTML Element der aktuellen Komponente
2253
+ * @param renderer Render Service von Angular
2254
+ * @param injector injector to resolve services in base component
2113
2255
  */
2114
- constructor(_document, _ngZone, _elementRef, _renderer, _injector) {
2115
- super(_document, _ngZone, _elementRef, _renderer, _injector);
2256
+ constructor(document, ngZone, elementRef, renderer, injector) {
2257
+ super(document, ngZone, elementRef, renderer, injector);
2116
2258
  }
2117
2259
  }
2118
2260
  SacMultilanguagemenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguagemenuComponent, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
@@ -2162,20 +2304,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2162
2304
  * Componente für Mehrsprache Texte
2163
2305
  */
2164
2306
  class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
2307
+ // #endregion Properties
2308
+ // #region Constructors
2165
2309
  /**
2166
- * Konstruktor
2167
- * @param parent Formular Inject
2168
- * @param injector Default Injector
2310
+ * Constructor
2311
+ * @param formLayout SacFormLayout to define scoped layout settings
2312
+ * @param injector Injector for injecting services
2169
2313
  */
2170
- constructor(parent, injector) {
2171
- super(parent, injector);
2314
+ constructor(formLayout, injector) {
2315
+ super(formLayout, injector);
2316
+ // #region Properties
2172
2317
  /**
2173
2318
  * Enum für IconType in HTML Template
2174
2319
  */
2175
2320
  this.IconType = IconType;
2176
2321
  }
2177
2322
  }
2178
- SacMultilanguageInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2323
+ SacMultilanguageInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2179
2324
  SacMultilanguageInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacMultilanguageInputComponent, selector: "sac-multilanguageinput", providers: [
2180
2325
  {
2181
2326
  provide: NG_VALUE_ACCESSOR,
@@ -2187,9 +2332,7 @@ SacMultilanguageInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2187
2332
  multi: true,
2188
2333
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
2189
2334
  },
2190
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", components: [{ type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]", inputs: ["inputtemplate", "validationtemplate"] }, { type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
2191
- { provide: ControlContainer, useExisting: SacFormDirective },
2192
- ] });
2335
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", components: [{ type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]", inputs: ["inputtemplate", "validationtemplate"] }, { type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
2193
2336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputComponent, decorators: [{
2194
2337
  type: Component,
2195
2338
  args: [{ selector: 'sac-multilanguageinput', providers: [
@@ -2203,10 +2346,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2203
2346
  multi: true,
2204
2347
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
2205
2348
  },
2206
- ], viewProviders: [
2207
- { provide: ControlContainer, useExisting: SacFormDirective },
2208
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
2209
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2349
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
2350
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2210
2351
  type: Host
2211
2352
  }, {
2212
2353
  type: Optional
@@ -2216,20 +2357,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2216
2357
  * Componente für Mehrsprache Texte als mehrzeiliger Text
2217
2358
  */
2218
2359
  class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAreaCommon {
2360
+ // #endregion Properties
2361
+ // #region Constructors
2219
2362
  /**
2220
- * Konstruktor
2221
- * @param parent Formular Inject
2222
- * @param injector Default Injector
2363
+ * Constructor
2364
+ * @param formLayout SacFormLayout to define scoped layout settings
2365
+ * @param injector Injector for injecting services
2223
2366
  */
2224
- constructor(parent, injector) {
2225
- super(parent, injector);
2367
+ constructor(formLayout, injector) {
2368
+ super(formLayout, injector);
2369
+ // #region Properties
2226
2370
  /**
2227
2371
  * Enum für IconType in HTML Template
2228
2372
  */
2229
2373
  this.IconType = IconType;
2230
2374
  }
2231
2375
  }
2232
- SacMultilanguageInputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputAreaComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2376
+ SacMultilanguageInputAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputAreaComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2233
2377
  SacMultilanguageInputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacMultilanguageInputAreaComponent, selector: "sac-multilanguageinputarea", providers: [
2234
2378
  {
2235
2379
  provide: NG_VALUE_ACCESSOR,
@@ -2241,9 +2385,7 @@ SacMultilanguageInputAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersio
2241
2385
  multi: true,
2242
2386
  useExisting: forwardRef(() => SacMultilanguageInputAreaComponent),
2243
2387
  },
2244
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", components: [{ type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]", inputs: ["inputtemplate", "validationtemplate"] }, { type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
2245
- { provide: ControlContainer, useExisting: SacFormDirective },
2246
- ] });
2388
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", components: [{ type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]", inputs: ["inputtemplate", "validationtemplate"] }, { type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
2247
2389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacMultilanguageInputAreaComponent, decorators: [{
2248
2390
  type: Component,
2249
2391
  args: [{ selector: 'sac-multilanguageinputarea', providers: [
@@ -2257,10 +2399,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2257
2399
  multi: true,
2258
2400
  useExisting: forwardRef(() => SacMultilanguageInputAreaComponent),
2259
2401
  },
2260
- ], viewProviders: [
2261
- { provide: ControlContainer, useExisting: SacFormDirective },
2262
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
2263
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2402
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\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 placement=\"bottom-right\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n [inputtemplate]=\"menuInput\"\r\n [validationtemplate]=\"validationMessage\"\r\n #contextmenu\r\n >\r\n <ng-template #menuInput>\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 </ng-template>\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\r\n <ng-template #validationMessage>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div></ng-template\r\n >\r\n\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</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
2403
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2264
2404
  type: Host
2265
2405
  }, {
2266
2406
  type: Optional
@@ -2274,8 +2414,8 @@ SACBootstrap5MultilanguageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion:
2274
2414
  SacMultilanguagemenuComponent,
2275
2415
  SacMultilanguagemenuAnchorDirective,
2276
2416
  SacMultilanguagemenuContainerDirective,
2277
- SacMultilanguagemenuItemButtonComponent], imports: [CommonModule], exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent] });
2278
- SACBootstrap5MultilanguageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5MultilanguageModule, imports: [[CommonModule]] });
2417
+ SacMultilanguagemenuItemButtonComponent], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent] });
2418
+ SACBootstrap5MultilanguageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5MultilanguageModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
2279
2419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5MultilanguageModule, decorators: [{
2280
2420
  type: NgModule,
2281
2421
  args: [{
@@ -2287,109 +2427,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2287
2427
  SacMultilanguagemenuContainerDirective,
2288
2428
  SacMultilanguagemenuItemButtonComponent,
2289
2429
  ],
2290
- imports: [CommonModule],
2430
+ imports: [CommonModule, SACBootstrap5LayoutModule],
2291
2431
  exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
2292
2432
  }]
2293
2433
  }] });
2294
2434
 
2295
2435
  /**
2296
- * Komponente für statischen Text in einem Formular
2297
- */
2298
- class SacStaticLabelComponent extends SacStaticLabelCommon {
2436
+ * Component für einbindung eines beliebigen Controls in die Form Struktur
2437
+ *
2438
+ * @example
2439
+ * <ngStaticFormContainer name='myformcontainer' label="My Custom Form Control" [isrequired]='false'>
2440
+ * <input type="range" class="form-control form-control-sm" />
2441
+ * </ngStaticFormContainer>
2442
+ *
2443
+ * @example
2444
+ * <ngStaticFormContainer name='myformcintainer' label="My Custom Form Control" [isrequired]='false' tooltiptext="Dies ist ein Tooltip Text">
2445
+ * <input type="range" class="form-control form-control-sm" />
2446
+ * </ngStaticFormContainer>
2447
+ *
2448
+ **/
2449
+ class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
2450
+ // #region Constructors
2299
2451
  /**
2300
- * Konstruktor
2301
- * @param parent Formular
2302
- * @param injector Angular Dependency Injection Service
2452
+ * Constructor
2453
+ * @param formLayout SacFormLayout to define scoped layout settings
2454
+ * @param injector Injector for injecting services
2303
2455
  */
2304
- constructor(parent, injector) {
2305
- super(parent, injector);
2456
+ constructor(formLayout, injector) {
2457
+ super(formLayout, injector);
2306
2458
  }
2307
2459
  }
2308
- SacStaticLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticLabelComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2309
- SacStaticLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacStaticLabelComponent, selector: "sac-staticlabel", providers: [
2460
+ SacStaticFormContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticFormContainerComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2461
+ SacStaticFormContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacStaticFormContainerComponent, selector: "sac-staticformcontainer", providers: [
2310
2462
  {
2311
2463
  provide: NG_VALUE_ACCESSOR,
2312
2464
  multi: true,
2313
- useExisting: SacStaticLabelComponent,
2465
+ useExisting: SacStaticFormContainerComponent,
2314
2466
  },
2315
2467
  {
2316
2468
  provide: NG_VALIDATORS,
2317
2469
  multi: true,
2318
- useExisting: forwardRef(() => SacStaticLabelComponent),
2470
+ useExisting: forwardRef(() => SacStaticFormContainerComponent),
2319
2471
  },
2320
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticLabelComponent, decorators: [{
2472
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
2473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticFormContainerComponent, decorators: [{
2322
2474
  type: Component,
2323
- args: [{ selector: 'sac-staticlabel', providers: [
2475
+ args: [{ selector: 'sac-staticformcontainer', providers: [
2324
2476
  {
2325
2477
  provide: NG_VALUE_ACCESSOR,
2326
2478
  multi: true,
2327
- useExisting: SacStaticLabelComponent,
2479
+ useExisting: SacStaticFormContainerComponent,
2328
2480
  },
2329
2481
  {
2330
2482
  provide: NG_VALIDATORS,
2331
2483
  multi: true,
2332
- useExisting: forwardRef(() => SacStaticLabelComponent),
2484
+ useExisting: forwardRef(() => SacStaticFormContainerComponent),
2333
2485
  },
2334
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
2335
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2486
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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" }]
2487
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2336
2488
  type: Host
2337
2489
  }, {
2338
2490
  type: Optional
2339
2491
  }] }, { type: i0.Injector }]; } });
2340
2492
 
2341
2493
  /**
2342
- * Component für einbindung eines beliebigen Controls in die Form Struktur
2343
- *
2344
- * @example
2345
- * <ngStaticFormContainer name='myformcontainer' label="My Custom Form Control" [isrequired]='false'>
2346
- * <input type="range" class="form-control form-control-sm" />
2347
- * </ngStaticFormContainer>
2348
- *
2349
- * @example
2350
- * <ngStaticFormContainer name='myformcintainer' label="My Custom Form Control" [isrequired]='false' tooltiptext="Dies ist ein Tooltip Text">
2351
- * <input type="range" class="form-control form-control-sm" />
2352
- * </ngStaticFormContainer>
2353
- *
2354
- **/
2355
- class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
2494
+ * Komponente für statischen Text in einem Formular
2495
+ */
2496
+ class SacStaticLabelComponent extends SacStaticLabelCommon {
2497
+ // #region Constructors
2356
2498
  /**
2357
- * Konsturktor
2358
- * @param parent Parent SacFormular Instanz
2359
- * @param injector Injector Instanz
2499
+ * Constructor
2500
+ * @param formLayout SacFormLayout to define scoped layout settings
2501
+ * @param injector Injector for injecting services
2360
2502
  */
2361
- constructor(parent, injector) {
2362
- super(parent, injector);
2503
+ constructor(formLayout, injector) {
2504
+ super(formLayout, injector);
2363
2505
  }
2364
2506
  }
2365
- SacStaticFormContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticFormContainerComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2366
- SacStaticFormContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacStaticFormContainerComponent, selector: "sac-staticformcontainer", providers: [
2507
+ SacStaticLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticLabelComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2508
+ SacStaticLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacStaticLabelComponent, selector: "sac-staticlabel", providers: [
2367
2509
  {
2368
2510
  provide: NG_VALUE_ACCESSOR,
2369
2511
  multi: true,
2370
- useExisting: SacStaticFormContainerComponent,
2512
+ useExisting: SacStaticLabelComponent,
2371
2513
  },
2372
2514
  {
2373
2515
  provide: NG_VALIDATORS,
2374
2516
  multi: true,
2375
- useExisting: forwardRef(() => SacStaticFormContainerComponent),
2517
+ useExisting: forwardRef(() => SacStaticLabelComponent),
2376
2518
  },
2377
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isadaptivelabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe } });
2378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticFormContainerComponent, decorators: [{
2519
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe } });
2520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacStaticLabelComponent, decorators: [{
2379
2521
  type: Component,
2380
- args: [{ selector: 'sac-staticformcontainer', providers: [
2522
+ args: [{ selector: 'sac-staticlabel', providers: [
2381
2523
  {
2382
2524
  provide: NG_VALUE_ACCESSOR,
2383
2525
  multi: true,
2384
- useExisting: SacStaticFormContainerComponent,
2526
+ useExisting: SacStaticLabelComponent,
2385
2527
  },
2386
2528
  {
2387
2529
  provide: NG_VALIDATORS,
2388
2530
  multi: true,
2389
- useExisting: forwardRef(() => SacStaticFormContainerComponent),
2531
+ useExisting: forwardRef(() => SacStaticLabelComponent),
2390
2532
  },
2391
- ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isadaptivelabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label col-form-label-sm\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\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" }]
2392
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2533
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"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 col-form-label-sm\"\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" }]
2534
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2393
2535
  type: Host
2394
2536
  }, {
2395
2537
  type: Optional
@@ -2398,18 +2540,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2398
2540
  class SACBootstrap5StaticLabelModule {
2399
2541
  }
2400
2542
  SACBootstrap5StaticLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2401
- SACBootstrap5StaticLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent], imports: [CommonModule], exports: [SacStaticLabelComponent, SacStaticFormContainerComponent] });
2402
- SACBootstrap5StaticLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, imports: [[
2403
- CommonModule
2404
- ]] });
2543
+ SACBootstrap5StaticLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacStaticLabelComponent, SacStaticFormContainerComponent] });
2544
+ SACBootstrap5StaticLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
2405
2545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5StaticLabelModule, decorators: [{
2406
2546
  type: NgModule,
2407
2547
  args: [{
2408
2548
  declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2409
- imports: [
2410
- CommonModule
2411
- ],
2412
- exports: [SacStaticLabelComponent, SacStaticFormContainerComponent]
2549
+ imports: [CommonModule, SACBootstrap5LayoutModule],
2550
+ exports: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2413
2551
  }]
2414
2552
  }] });
2415
2553
 
@@ -2469,15 +2607,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2469
2607
  * TinyMCE Komponente
2470
2608
  */
2471
2609
  class SacTinyMceComponent extends SacTinyMceCommon {
2610
+ // #region Constructors
2472
2611
  /**
2473
- * Konstruktor
2474
- * @param parent Formular
2475
- * @param injector Angular Dependency Injection Service
2476
- * @param ngZone ngZone
2612
+ * Constructor
2613
+ * @param formLayout SacFormLayout to define scoped layout settings
2614
+ * @param injector Injector for injecting services
2615
+ * @param ngZone ngZone to manage external javascripts
2477
2616
  */
2478
- constructor(parent, injector, ngZone) {
2479
- super(parent, injector, ngZone);
2617
+ constructor(formLayout, injector, ngZone) {
2618
+ super(formLayout, injector, ngZone);
2480
2619
  }
2620
+ // #endregion Constructors
2621
+ // #region Public Methods
2481
2622
  /**
2482
2623
  * overwrite tinymce defaults
2483
2624
  * @returns boostrap4 has no overwrites
@@ -2486,7 +2627,7 @@ class SacTinyMceComponent extends SacTinyMceCommon {
2486
2627
  return {};
2487
2628
  }
2488
2629
  }
2489
- SacTinyMceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTinyMceComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2630
+ SacTinyMceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTinyMceComponent, deps: [{ token: SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2490
2631
  SacTinyMceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacTinyMceComponent, selector: "sac-tinymce", providers: [
2491
2632
  {
2492
2633
  provide: NG_VALUE_ACCESSOR,
@@ -2498,7 +2639,7 @@ SacTinyMceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
2498
2639
  useExisting: forwardRef(() => SacTinyMceComponent),
2499
2640
  multi: true,
2500
2641
  },
2501
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + labelsize : 'sr-only' ]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label col-form-label-sm\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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(--bs-form-invalid-border-color)}\n"], components: [{ type: i2$1.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { type: SacDialogComponent, selector: "sac-dialog" }, { type: SacBrowserComponent, selector: "sac-filebrowser" }, { type: SacButtonComponent, selector: "sac-button" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }] });
2642
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\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 col-form-label-sm\"\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 >\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(--bs-form-invalid-border-color)}\n"], components: [{ type: i2$1.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { type: SacDialogComponent, selector: "sac-dialog" }, { type: SacBrowserComponent, selector: "sac-filebrowser" }, { type: SacButtonComponent, selector: "sac-button" }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelWidthCss": SacToLabelWidthCssPipe, "toControlWidthCss": SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
2502
2643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTinyMceComponent, decorators: [{
2503
2644
  type: Component,
2504
2645
  args: [{ selector: 'sac-tinymce', providers: [
@@ -2512,8 +2653,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2512
2653
  useExisting: forwardRef(() => SacTinyMceComponent),
2513
2654
  multi: true,
2514
2655
  },
2515
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + labelsize : 'sr-only' ]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label col-form-label-sm\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"\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(--bs-form-invalid-border-color)}\n"] }]
2516
- }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2656
+ ], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\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 col-form-label-sm\"\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 >\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(--bs-form-invalid-border-color)}\n"] }]
2657
+ }], ctorParameters: function () { return [{ type: SacFormLayoutDirective, decorators: [{
2517
2658
  type: Host
2518
2659
  }, {
2519
2660
  type: Optional
@@ -2527,7 +2668,8 @@ SACBootstrap5TinyMceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
2527
2668
  EditorModule,
2528
2669
  SACBootstrap5ButtonModule,
2529
2670
  SACBootstrap5DialogModule,
2530
- SACBootstrap5BrowserModule], exports: [SacTinyMceComponent] });
2671
+ SACBootstrap5BrowserModule,
2672
+ SACBootstrap5LayoutModule], exports: [SacTinyMceComponent] });
2531
2673
  SACBootstrap5TinyMceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5TinyMceModule, imports: [[
2532
2674
  CommonModule,
2533
2675
  FormsModule,
@@ -2535,6 +2677,7 @@ SACBootstrap5TinyMceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.
2535
2677
  SACBootstrap5ButtonModule,
2536
2678
  SACBootstrap5DialogModule,
2537
2679
  SACBootstrap5BrowserModule,
2680
+ SACBootstrap5LayoutModule,
2538
2681
  ]] });
2539
2682
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5TinyMceModule, decorators: [{
2540
2683
  type: NgModule,
@@ -2547,6 +2690,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2547
2690
  SACBootstrap5ButtonModule,
2548
2691
  SACBootstrap5DialogModule,
2549
2692
  SACBootstrap5BrowserModule,
2693
+ SACBootstrap5LayoutModule,
2550
2694
  ],
2551
2695
  exports: [SacTinyMceComponent],
2552
2696
  }]
@@ -2556,13 +2700,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2556
2700
  * Validation Summary Kompontente
2557
2701
  */
2558
2702
  class SacValidationSummaryComponent extends SacValidationSummaryCommon {
2703
+ // #region Constructors
2559
2704
  /**
2560
- * Konstruktor
2561
- * @param parent Formular
2562
- * @param injector Angular Dependency Injection Service
2705
+ * Constructor
2706
+ * @param formControl Instance of Form Component to receive invalid form controls
2707
+ * @param injector Injector for injecting services
2563
2708
  */
2564
- constructor(parent, injector) {
2565
- super(parent, injector);
2709
+ constructor(formControl, injector) {
2710
+ super(formControl, injector);
2566
2711
  }
2567
2712
  }
2568
2713
  SacValidationSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacValidationSummaryComponent, deps: [{ token: SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
@@ -2572,9 +2717,7 @@ SacValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
2572
2717
  multi: true,
2573
2718
  useExisting: SacValidationSummaryComponent,
2574
2719
  },
2575
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [
2576
- { provide: ControlContainer, useExisting: SacFormDirective },
2577
- ] });
2720
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }] });
2578
2721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacValidationSummaryComponent, decorators: [{
2579
2722
  type: Component,
2580
2723
  args: [{ selector: 'sac-validationsummary', providers: [
@@ -2583,9 +2726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2583
2726
  multi: true,
2584
2727
  useExisting: SacValidationSummaryComponent,
2585
2728
  },
2586
- ], viewProviders: [
2587
- { provide: ControlContainer, useExisting: SacFormDirective },
2588
- ], template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n" }]
2729
+ ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\r\n <ul class=\"mb-0\">\r\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\r\n </ul>\r\n</div>\r\n" }]
2589
2730
  }], ctorParameters: function () { return [{ type: SacFormDirective, decorators: [{
2590
2731
  type: Host
2591
2732
  }, {
@@ -2651,18 +2792,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2651
2792
  class SACBootstrap5WizardModule {
2652
2793
  }
2653
2794
  SACBootstrap5WizardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2654
- SACBootstrap5WizardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, declarations: [SacWizardComponent, SacWizardItemComponent], imports: [CommonModule], exports: [SacWizardComponent, SacWizardItemComponent] });
2655
- SACBootstrap5WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, imports: [[
2656
- CommonModule
2657
- ]] });
2795
+ SACBootstrap5WizardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, declarations: [SacWizardComponent, SacWizardItemComponent], imports: [CommonModule, SACBootstrap5LayoutModule], exports: [SacWizardComponent, SacWizardItemComponent] });
2796
+ SACBootstrap5WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, imports: [[CommonModule, SACBootstrap5LayoutModule]] });
2658
2797
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5WizardModule, decorators: [{
2659
2798
  type: NgModule,
2660
2799
  args: [{
2661
2800
  declarations: [SacWizardComponent, SacWizardItemComponent],
2662
- imports: [
2663
- CommonModule
2664
- ],
2665
- exports: [SacWizardComponent, SacWizardItemComponent]
2801
+ imports: [CommonModule, SACBootstrap5LayoutModule],
2802
+ exports: [SacWizardComponent, SacWizardItemComponent],
2666
2803
  }]
2667
2804
  }] });
2668
2805
 
@@ -2674,5 +2811,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
2674
2811
  * Generated bundle index. Do not edit.
2675
2812
  */
2676
2813
 
2677
- export { NGFORM_FACTORY, SACBootstrap5BrowserModule, SACBootstrap5ButtonModule, SACBootstrap5CheckboxModule, SACBootstrap5ConfirmModule, SACBootstrap5ContextmenuModule, SACBootstrap5DateTimeModule, SACBootstrap5DialogModule, SACBootstrap5DropdownModule, SACBootstrap5FormModule, SACBootstrap5GridModule, SACBootstrap5InputModule, SACBootstrap5ListModule, SACBootstrap5MultilanguageModule, SACBootstrap5StaticLabelModule, SACBootstrap5TabsModule, SACBootstrap5TinyMceModule, SACBootstrap5UploadModule, SACBootstrap5ValidationSummaryModule, SACBootstrap5WizardModule, SACFORM_FACTORY, SacBrowserComponent, SacButtonComponent, SacCheckboxComponent, SacConfirmComponent, SacContextmenuAnchorDirective, SacContextmenuComponent, SacContextmenuItemButtonComponent, SacContextmenuItemSplitterComponent, SacDateComponent, SacDateSelectorComponent, SacDateTimeComponent, SacDialogComponent, SacDropdownComponent, SacDropdownOptionDirective, SacDropzoneMultipleComponent, SacDropzoneSingleComponent, SacFormDirective, 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, SacUploadComponent, SacUploadMultipleComponent, SacValidationSummaryComponent, SacWizardComponent, SacWizardItemComponent, ServiceConfirm };
2814
+ export { NGFORM_FACTORY, SACBootstrap5BrowserModule, SACBootstrap5ButtonModule, SACBootstrap5CheckboxModule, SACBootstrap5ConfirmModule, SACBootstrap5ContextmenuModule, SACBootstrap5DateTimeModule, SACBootstrap5DialogModule, SACBootstrap5DropdownModule, SACBootstrap5FormModule, SACBootstrap5GridModule, SACBootstrap5InputModule, SACBootstrap5LayoutModule, SACBootstrap5ListModule, SACBootstrap5MultilanguageModule, SACBootstrap5StaticLabelModule, SACBootstrap5TabsModule, SACBootstrap5TinyMceModule, SACBootstrap5UploadModule, SACBootstrap5ValidationSummaryModule, SACBootstrap5WizardModule, 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 };
2678
2815
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap5.mjs.map