@simpleangularcontrols/sac-bootstrap3 10.0.0-rc.1 → 10.0.0-rc.11

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 (60) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js +206 -190
  2. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js.map +1 -1
  5. package/controls/form/inheritform.directive.d.ts +14 -37
  6. package/controls/grid/gridbutton.d.ts +1 -10
  7. package/controls/tooltip/tooltip.d.ts +6 -1
  8. package/esm2015/controls/buttons/button.js +5 -3
  9. package/esm2015/controls/buttons/button.module.ngfactory.js +1 -1
  10. package/esm2015/controls/checkbox/checkbox.js +2 -2
  11. package/esm2015/controls/checkbox/checkbox.module.js +7 -2
  12. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  13. package/esm2015/controls/checkbox/radiobuttons.js +2 -2
  14. package/esm2015/controls/confirm/confirm.js +2 -2
  15. package/esm2015/controls/confirm/confirm.module.ngfactory.js +1 -1
  16. package/esm2015/controls/datetime/date.js +2 -2
  17. package/esm2015/controls/datetime/datetime.js +2 -2
  18. package/esm2015/controls/datetime/datetime.module.js +8 -2
  19. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  20. package/esm2015/controls/datetime/time.js +2 -2
  21. package/esm2015/controls/form/inheritform.directive.js +42 -56
  22. package/esm2015/controls/grid/grid.js +2 -2
  23. package/esm2015/controls/grid/grid.module.js +21 -8
  24. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  25. package/esm2015/controls/grid/gridbutton.js +3 -11
  26. package/esm2015/controls/grid/gridcolumn.js +2 -2
  27. package/esm2015/controls/grid/paging.js +2 -2
  28. package/esm2015/controls/input/input.js +2 -2
  29. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  30. package/esm2015/controls/input/inputarea.js +2 -2
  31. package/esm2015/controls/input/inputcurrency.js +2 -2
  32. package/esm2015/controls/input/inputdecimal.js +2 -2
  33. package/esm2015/controls/input/inputemail.js +2 -2
  34. package/esm2015/controls/input/inputinteger.js +2 -2
  35. package/esm2015/controls/input/inputpassword.js +2 -2
  36. package/esm2015/controls/input/inputsearch.js +2 -2
  37. package/esm2015/controls/list/dropdown.js +2 -2
  38. package/esm2015/controls/list/list.module.js +3 -1
  39. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  40. package/esm2015/controls/list/listbox.js +2 -2
  41. package/esm2015/controls/static/formcontainer.js +2 -2
  42. package/esm2015/controls/static/staticlabel.js +2 -2
  43. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  44. package/esm2015/controls/tabs/tab.js +2 -2
  45. package/esm2015/controls/tabs/tabs.module.ngfactory.js +1 -1
  46. package/esm2015/controls/tinymce/tinymce.js +2 -2
  47. package/esm2015/controls/tinymce/tinymce.module.js +3 -1
  48. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  49. package/esm2015/controls/tooltip/tooltip.js +13 -3
  50. package/esm2015/controls/tooltip/tooltip.module.js +3 -5
  51. package/esm2015/controls/upload/upload.js +2 -2
  52. package/esm2015/controls/upload/upload.module.js +8 -2
  53. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  54. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  55. package/fesm2015/simpleangularcontrols-sac-bootstrap3.js +194 -177
  56. package/fesm2015/simpleangularcontrols-sac-bootstrap3.js.map +1 -1
  57. package/package.json +5 -5
  58. package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.11.tgz +0 -0
  59. package/simpleangularcontrols-sac-bootstrap3.metadata.json +1 -1
  60. package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.1.tgz +0 -0
@@ -1,5 +1,5 @@
1
- import { Component, NgModule, Directive, Pipe, forwardRef, Host, Optional, Injector, ElementRef, ChangeDetectorRef, Input, Injectable, ComponentFactoryResolver, Inject, ApplicationRef, ContentChild, TemplateRef, Renderer2, ContentChildren, NgZone, HostBinding, SkipSelf } from '@angular/core';
2
- import { SacButtonCommon, SacFormLayoutCommon, ControlHeight, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridButtonCommon, SacPagingCommon, SacGridColumnActionCommon, SacGridImageCommon, SacTooltipCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SACCommonListboxOptionModule, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacTreeViewCommon, SacTreeViewChildCommon, SacTreeItemActionCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFormCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
1
+ import { Component, ViewEncapsulation, NgModule, Directive, Pipe, ChangeDetectorRef, ElementRef, forwardRef, Host, Optional, Injector, Input, Injectable, ComponentFactoryResolver, Inject, ApplicationRef, ContentChild, TemplateRef, Renderer2, ContentChildren, NgZone, HostBinding, SkipSelf } from '@angular/core';
2
+ import { SacButtonCommon, SacFormLayoutCommon, ControlHeight, SacTooltipCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacPagingCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SACCommonListboxOptionModule, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacTreeViewCommon, SacTreeViewChildCommon, SacTreeItemActionCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFormCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, NgForm, ControlContainer } from '@angular/forms';
5
5
  import { forkJoin } from 'rxjs';
@@ -13,7 +13,9 @@ class SacButtonComponent extends SacButtonCommon {
13
13
  SacButtonComponent.decorators = [
14
14
  { type: Component, args: [{
15
15
  selector: 'sac-button',
16
- template: "<a\r\n [id]=\"name\"\r\n class=\"btn\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary'\"\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-default]=\"role === 'default'\"\r\n [class.btn-link]=\"role === 'link'\"\r\n [attr.disabled]=\"_isdisabled ? 'disabled' : null\"\r\n (click)=\"buttonClick()\"\r\n>\r\n <i\r\n *ngIf=\"icon !== ''\"\r\n [ngClass]=\"icon\"\r\n [ngStyle]=\"{ 'margin-right': text ? '0.5rem': null}\"\r\n ></i>\r\n {{text}}\r\n</a>\r\n"
16
+ template: "<a\r\n [id]=\"name\"\r\n class=\"btn\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary'\"\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-default]=\"role === 'default'\"\r\n [class.btn-link]=\"role === 'link'\"\r\n [attr.disabled]=\"_isdisabled ? 'disabled' : null\"\r\n (click)=\"buttonClick()\"\r\n>\r\n <i\r\n *ngIf=\"isloading\"\r\n class=\"\"\r\n role=\"status\"\r\n aria-hidden=\"true\"\r\n class=\"glyphicon glyphicon-repeat spin\"\r\n [ngStyle]=\"{ 'margin-right': text ? '0.5rem': null}\"\r\n ></i>\r\n <i\r\n *ngIf=\"!isloading && icon !== ''\"\r\n [ngClass]=\"icon\"\r\n [ngStyle]=\"{ 'margin-right': text ? '0.5rem': null}\"\r\n ></i>\r\n {{text}}\r\n</a>\r\n",
17
+ encapsulation: ViewEncapsulation.None,
18
+ styles: ['sac-button+sac-button {margin-left: 5px}', '.spin { animation: spin 1.5s infinite; } @keyframes spin { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }']
17
19
  },] }
18
20
  ];
19
21
 
@@ -189,6 +191,66 @@ SACBootstrap3LayoutModule.decorators = [
189
191
  },] }
190
192
  ];
191
193
 
194
+ /**
195
+ * Tooltip Komponente
196
+ *
197
+ * @example ToolTip Control
198
+ *
199
+ * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
200
+ * <i class="tooltip"></i>
201
+ * </ngTooltip>
202
+ *
203
+ * @example ToolTip Control im Inline Mode. Style auf Icon kann auch in Klasse ausgelagert werden.
204
+ *
205
+ * <div class="form-inline">
206
+ * <ngInputSearch iconname="Suchen"></ngInputSearch>
207
+ * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
208
+ * <i class="tooltip" style="position: relative; left: 0; top: 3px; display: inline-block; margin-right: 10px;"></i>
209
+ * </ngTooltip>
210
+ * </div>
211
+ *
212
+ */
213
+ class SacTooltipComponent extends SacTooltipCommon {
214
+ // #region Constructors
215
+ /**
216
+ * Konstrukor
217
+ * @param parent SacFormular Instanz
218
+ * @param injector Component Injector
219
+ */
220
+ constructor(cdRef, ref) {
221
+ super(cdRef, ref);
222
+ }
223
+ // #endregion Constructors
224
+ // #region Protected Methods
225
+ /**
226
+ * Padding for Tooltip
227
+ * @returns Always 0. BS3 not require Padding
228
+ */
229
+ getTooltipOffset() {
230
+ return 0;
231
+ }
232
+ }
233
+ SacTooltipComponent.decorators = [
234
+ { type: Component, args: [{
235
+ selector: 'sac-tooltip',
236
+ template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div\r\n #container\r\n (mouseenter)=\"ShowTooltip()\"\r\n (mouseleave)=\"HideTooltip()\"\r\n [style.display]=\"inlinemode ? 'inline' : null\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"IsTooltipVisible()\" #tooltip>\r\n <div\r\n [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\"\r\n class=\"tooltip in\"\r\n style=\"display: block\"\r\n [style.left.px]=\"LeftPos\"\r\n [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\"\r\n [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\"\r\n [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\"\r\n >\r\n <div class=\"tooltip-arrow\"></div>\r\n <div class=\"tooltip-inner\">{{tooltiptext}}</div>\r\n </div>\r\n </div>\r\n</div>\r\n"
237
+ },] }
238
+ ];
239
+ SacTooltipComponent.ctorParameters = () => [
240
+ { type: ChangeDetectorRef },
241
+ { type: ElementRef }
242
+ ];
243
+
244
+ class SACBootstrap3TooltipModule {
245
+ }
246
+ SACBootstrap3TooltipModule.decorators = [
247
+ { type: NgModule, args: [{
248
+ declarations: [SacTooltipComponent],
249
+ imports: [CommonModule],
250
+ exports: [SacTooltipComponent],
251
+ },] }
252
+ ];
253
+
192
254
  class SacCheckboxComponent extends SacCheckboxCommon {
193
255
  // #region Constructors
194
256
  /**
@@ -203,7 +265,7 @@ class SacCheckboxComponent extends SacCheckboxCommon {
203
265
  SacCheckboxComponent.decorators = [
204
266
  { type: Component, args: [{
205
267
  selector: 'sac-checkbox',
206
- template: "<div\r\n class=\"row\"\r\n [class.form-group]=\"!stacked\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"checkbox\"\r\n [class.checkbox-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.checkbox-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <label>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n class=\"visible-checkbox\"\r\n [checked]=\"value\"\r\n [disabled]=\"isdisabled\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n />\r\n <ng-container *ngIf=\"checkboxtext\"\r\n >&nbsp;<span>{{checkboxtext}}</span></ng-container\r\n >\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n",
268
+ template: "<div\r\n class=\"row\"\r\n [class.form-group]=\"!stacked\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"checkbox\"\r\n [class.checkbox-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.checkbox-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <label for=\"{{name}}\">\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n class=\"visible-checkbox\"\r\n [checked]=\"value\"\r\n [disabled]=\"isdisabled\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n />\r\n <ng-container *ngIf=\"checkboxtext\"\r\n >&nbsp;<span>{{checkboxtext}}</span></ng-container\r\n >\r\n </label>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n </div>\r\n</div>\r\n",
207
269
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
208
270
  providers: [
209
271
  {
@@ -239,7 +301,7 @@ class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
239
301
  SacRadiobuttonsComponent.decorators = [
240
302
  { type: Component, args: [{
241
303
  selector: 'sac-radiobuttons',
242
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n",
304
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n </div>\r\n</div>\r\n",
243
305
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
244
306
  providers: [
245
307
  {
@@ -285,7 +347,11 @@ SACBootstrap3CheckboxModule.decorators = [
285
347
  SacRadiobuttonComponent,
286
348
  SacRadiobuttonsComponent,
287
349
  ],
288
- imports: [CommonModule, SACBootstrap3LayoutModule],
350
+ imports: [
351
+ CommonModule,
352
+ SACBootstrap3LayoutModule,
353
+ SACBootstrap3TooltipModule,
354
+ ],
289
355
  exports: [
290
356
  SacCheckboxComponent,
291
357
  SacRadiobuttonComponent,
@@ -360,7 +426,7 @@ class SacConfirmComponent extends SacConfirmCommon {
360
426
  SacConfirmComponent.decorators = [
361
427
  { type: Component, args: [{
362
428
  selector: 'sac-confirm',
363
- template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <div class=\"media-left media-middle\" *ngIf=\"hasImage()\">\r\n <img [attr.src]=\"image\" />\r\n </div>\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <div dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n style=\"margin-left: 15px\"\r\n ></sac-button>\r\n </ng-container>\r\n </div>\r\n</sac-dialog>\r\n"
429
+ template: "<sac-dialog\r\n name=\"confirmDialog\"\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <div class=\"media-left media-middle\" *ngIf=\"hasImage()\">\r\n <img [attr.src]=\"image\" />\r\n </div>\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <div dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n [role]=\"button.role || 'default'\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </div>\r\n</sac-dialog>\r\n"
364
430
  },] }
365
431
  ];
366
432
 
@@ -501,7 +567,7 @@ class SacDateComponent extends SacDateCommon {
501
567
  SacDateComponent.decorators = [
502
568
  { type: Component, args: [{
503
569
  selector: 'sac-date',
504
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 180 : 140\"\r\n >\r\n <div\r\n id=\"{{name}}\"\r\n class=\"datetime-textbox input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- this class comes in the div above when disabled [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\" -->\r\n <input\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control date-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [imask]=\"imaskDate\"\r\n placeholder=\"dd.mm.yyyy\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n maxlength=\"10\"\r\n size=\"10\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n (click)=\"showDateSelector()\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.px]=\"componentHeight === ControlHeight.Small ? 4 : componentHeight === ControlHeight.Large ? 14 : 10\"\r\n ></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
570
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 180 : 140\"\r\n >\r\n <div\r\n id=\"{{name}}\"\r\n class=\"datetime-textbox input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- this class comes in the div above when disabled [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\" -->\r\n <input\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control date-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [imask]=\"imaskDate\"\r\n placeholder=\"dd.mm.yyyy\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n maxlength=\"10\"\r\n size=\"10\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n (click)=\"showDateSelector()\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"display: block; left: 0px; right: unset; max-width: 325px\"\r\n [style.top.px]=\"componentHeight === ControlHeight.Large ? 46 : 34\"\r\n >\r\n <div\r\n class=\"arrow\"\r\n [style.left.px]=\"componentHeight === ControlHeight.Small ? 102 : componentHeight === ControlHeight.Large ? 155 : 120\"\r\n style=\"right: unset\"\r\n ></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
505
571
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
506
572
  providers: [
507
573
  {
@@ -547,7 +613,7 @@ class SacDateTimeComponent extends SacDateTimeCommon {
547
613
  SacDateTimeComponent.decorators = [
548
614
  { type: Component, args: [{
549
615
  selector: 'sac-datetime',
550
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 160 : componentHeight === ControlHeight.Large ? 230 : 180\"\r\n >\r\n <div\r\n id=\"{{name}}\"\r\n class=\"datetime-textbox input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n (click)=\"showDateSelector()\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 10px\"></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
616
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 160 : componentHeight === ControlHeight.Large ? 230 : 180\"\r\n >\r\n <div\r\n id=\"{{name}}\"\r\n class=\"datetime-textbox input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n (click)=\"showDateSelector()\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"display: block; left: 0px; right: unset; max-width: 325px\"\r\n [style.top.px]=\"componentHeight === ControlHeight.Large ? 46 : 34\"\r\n >\r\n <div\r\n class=\"arrow\"\r\n [style.left.px]=\"componentHeight === ControlHeight.Small ? 140 : componentHeight === ControlHeight.Large ? 205 : 160\"\r\n style=\"right: unset\"\r\n ></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
551
617
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
552
618
  providers: [
553
619
  {
@@ -584,7 +650,7 @@ class SacTimeComponent extends SacTimeCommon {
584
650
  SacTimeComponent.decorators = [
585
651
  { type: Component, args: [{
586
652
  selector: 'sac-time',
587
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 160 : 140\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n [value]=\"valuestring\"\r\n maxlength=\"6\"\r\n [imask]=\"imaskDate\"\r\n size=\"6\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n data-error-msg=\"ctl00_cphContent_ctl00_ucPublicationDetail_dtpValidFrom_timeTextBoxTypeValidator\"\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 <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: 34px;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div class=\"arrow\" style=\"left: unset; right: 10px\"></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
653
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 160 : 140\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n [value]=\"valuestring\"\r\n maxlength=\"6\"\r\n [imask]=\"imaskDate\"\r\n size=\"6\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n data-error-msg=\"ctl00_cphContent_ctl00_ucPublicationDetail_dtpValidFrom_timeTextBoxTypeValidator\"\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 <span class=\"input-group-btn\">\r\n <button\r\n class=\"btn btn-default\"\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 </span>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div\r\n class=\"popover bottom in\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"display: block; left: 0px; right: unset; max-width: 325px\"\r\n [style.top.px]=\"componentHeight === ControlHeight.Large ? 46 : 34\"\r\n >\r\n <div\r\n class=\"arrow\"\r\n [style.left.px]=\"componentHeight === ControlHeight.Small ? 102 : componentHeight === ControlHeight.Large ? 135 : 120\"\r\n style=\"right: unset\"\r\n ></div>\r\n <h3 class=\"popover-title\" style=\"display: none\"></h3>\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\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</div>\r\n",
588
654
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
589
655
  providers: [
590
656
  {
@@ -616,7 +682,12 @@ SACBootstrap3DateTimeModule.decorators = [
616
682
  SacTimeComponent,
617
683
  SacDateSelectorComponent,
618
684
  ],
619
- imports: [CommonModule, IMaskModule, SACBootstrap3LayoutModule],
685
+ imports: [
686
+ CommonModule,
687
+ IMaskModule,
688
+ SACBootstrap3LayoutModule,
689
+ SACBootstrap3TooltipModule,
690
+ ],
620
691
  exports: [
621
692
  SacDateComponent,
622
693
  SacDateTimeComponent,
@@ -635,7 +706,7 @@ class SacGridComponent extends SacGridCommon {
635
706
  SacGridComponent.decorators = [
636
707
  { type: Component, args: [{
637
708
  selector: 'sac-grid',
638
- template: "<table class=\"table table-striped table-condensed table-hover\" id={{name}}>\r\n <thead>\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\">\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\">\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"value === undefined || value === null || value.length === 0\">\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n <tr>\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging name=\"{{name}}Paging\" (paging)=\"pageChange($event)\" [pagerdata]=\"pagerdata\" [pagingtext]=\"pagingtext\" [pagesizetext]=\"pagesizetext\"></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n",
709
+ template: "<table class=\"table table-striped table-condensed table-hover\" id=\"{{name}}\">\r\n <thead>\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\"\r\n >\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\"\r\n >\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr\r\n *ngIf=\"value === undefined || value === null || value.length === 0\"\r\n data-e2e=\"emptyrow\"\r\n >\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n </tbody>\r\n <tfoot *ngIf=\"pagerdata\">\r\n <tr>\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging\r\n name=\"{{name}}Paging\"\r\n (paging)=\"pageChange($event)\"\r\n [pagerdata]=\"pagerdata\"\r\n [pagingtext]=\"pagingtext\"\r\n [pagesizetext]=\"pagesizetext\"\r\n ></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n",
639
710
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
640
711
  providers: [
641
712
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacGridComponent },
@@ -647,44 +718,13 @@ SacGridComponent.propDecorators = {
647
718
  template: [{ type: ContentChild, args: [TemplateRef, { static: true },] }]
648
719
  };
649
720
 
650
- class SacGridColumnComponent extends SacGridColumnCommon {
651
- constructor(grid, injector, el) {
652
- super(grid, injector, el);
653
- }
654
- }
655
- SacGridColumnComponent.decorators = [
656
- { type: Component, args: [{
657
- selector: 'sac-gridcolumn',
658
- template: "<th\r\n scope=\"col\"\r\n *ngIf=\"IsHeader()\"\r\n [style.width]=\"width\"\r\n (click)=\"SortByColumn()\"\r\n>\r\n <span>{{header}}</span>\r\n <span\r\n [class]=\"IconSortUp\"\r\n style=\"padding-left: 0.5rem\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='asc'\"\r\n ></span>\r\n <span\r\n [class]=\"IconSortDown\"\r\n style=\"padding-left: 0.5rem\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='desc'\"\r\n ></span>\r\n</th>\r\n<td\r\n scope=\"col\"\r\n *ngIf=\"IsBody()\"\r\n [style.width]=\"width\"\r\n [class.ellipsis]=\"IsEllipsis()\"\r\n>\r\n <span [attr.title]=\"IsEllipsis() ? value : null\"> {{value}} </span>\r\n</td>\r\n",
659
- providers: [
660
- {
661
- provide: SacGridColumnBaseCommon,
662
- useExisting: forwardRef(() => SacGridColumnComponent),
663
- },
664
- ]
665
- },] }
666
- ];
667
- SacGridColumnComponent.ctorParameters = () => [
668
- { type: SacGridComponent },
669
- { type: Injector },
670
- { type: ElementRef }
671
- ];
672
-
673
721
  /**
674
722
  * Grid Action Button
675
- *
676
- * @example Standard Action
677
- *
678
- * <ngGridButton icon="edit" (clicked)="action('edit')" [isdisabled]="true"></ngGridButton>
679
- *
680
- * @example Custom Action
681
- *
682
- * <ngGridButton iconstyle="sprite" icon="icon-sprite-base-main_info" (clicked)="action('info')"></ngGridButton>
683
- *
684
723
  */
685
724
  class SacGridButtonComponent extends SacGridButtonCommon {
725
+ // #region Public Methods
686
726
  /**
687
- * Gibt das Icon für den Button zurück
727
+ * Returns the icon for the button
688
728
  */
689
729
  getIconClass() {
690
730
  let iconset = this.iconstyle;
@@ -715,25 +755,27 @@ SacGridButtonComponent.decorators = [
715
755
  },] }
716
756
  ];
717
757
 
718
- class SacPagingComponent extends SacPagingCommon {
719
- /**
720
- * Konstruktor
721
- */
722
- constructor(injector) { super(injector); }
758
+ class SacGridColumnComponent extends SacGridColumnCommon {
759
+ constructor(grid, injector, el) {
760
+ super(grid, injector, el);
761
+ }
723
762
  }
724
- SacPagingComponent.decorators = [
763
+ SacGridColumnComponent.decorators = [
725
764
  { type: Component, args: [{
726
- selector: 'sac-paging',
727
- template: "<div class=\"row\">\r\n <div class=\"pager-nav col-sm-9\" id=\"{{name}}\">\r\n <ul class=\"pagination\" style=\"margin: 10px 0\">\r\n <li\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === firstPageIndex}\"\r\n >\r\n <a (click)=\"firstPage()\">\u00AB</a>\r\n </li>\r\n <li\r\n *ngFor=\"let page of paginators; let i = index\"\r\n [ngClass]=\"{'active': page === activePageIndex}\"\r\n >\r\n <a (click)=\"changePage(page)\">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === lastPageIndex}\"\r\n >\r\n <a (click)=\"lastPage()\">\u00BB</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-sm-3 text-right\" style=\"margin: 20px 0\">\r\n Seite {{getCurrentPageNumber()}} von {{getTotalPageNumber()}}\r\n </div>\r\n</div>\r\n",
728
- // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
765
+ selector: 'sac-gridcolumn',
766
+ template: "<th\r\n scope=\"col\"\r\n *ngIf=\"IsHeader()\"\r\n [style.width]=\"width\"\r\n (click)=\"SortByColumn()\"\r\n>\r\n <span>{{header}}</span>\r\n <span\r\n [class]=\"IconSortUp\"\r\n style=\"padding-left: 0.5rem\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='asc'\"\r\n ></span>\r\n <span\r\n [class]=\"IconSortDown\"\r\n style=\"padding-left: 0.5rem\"\r\n *ngIf=\"IsSortedColumn() && GetSortDirection() ==='desc'\"\r\n ></span>\r\n</th>\r\n<td\r\n scope=\"col\"\r\n *ngIf=\"IsBody()\"\r\n [style.width]=\"width\"\r\n [class.ellipsis]=\"IsEllipsis()\"\r\n (click)=\"ColumnClick()\"\r\n>\r\n <span [attr.title]=\"IsEllipsis() ? value : null\"> {{value}} </span>\r\n</td>\r\n",
729
767
  providers: [
730
- { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacPagingComponent },
731
- { provide: NG_VALIDATORS, multi: true, useExisting: forwardRef(() => SacPagingComponent) }
768
+ {
769
+ provide: SacGridColumnBaseCommon,
770
+ useExisting: forwardRef(() => SacGridColumnComponent),
771
+ },
732
772
  ]
733
773
  },] }
734
774
  ];
735
- SacPagingComponent.ctorParameters = () => [
736
- { type: Injector }
775
+ SacGridColumnComponent.ctorParameters = () => [
776
+ { type: SacGridComponent },
777
+ { type: Injector },
778
+ { type: ElementRef }
737
779
  ];
738
780
 
739
781
  class SacGridColumnActionComponent extends SacGridColumnActionCommon {
@@ -779,67 +821,48 @@ SacGridImageComponent.decorators = [
779
821
  },] }
780
822
  ];
781
823
 
782
- class SACBootstrap3GridModule {
783
- }
784
- SACBootstrap3GridModule.decorators = [
785
- { type: NgModule, args: [{
786
- declarations: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent],
787
- imports: [
788
- CommonModule
789
- ],
790
- exports: [SacGridComponent, SacGridColumnComponent, SacGridColumnActionComponent, SacPagingComponent, SacGridButtonComponent, SacGridImageComponent]
791
- },] }
792
- ];
793
-
794
- /**
795
- * Tooltip Komponente
796
- *
797
- * @example ToolTip Control
798
- *
799
- * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
800
- * <i class="tooltip"></i>
801
- * </ngTooltip>
802
- *
803
- * @example ToolTip Control im Inline Mode. Style auf Icon kann auch in Klasse ausgelagert werden.
804
- *
805
- * <div class="form-inline">
806
- * <ngInputSearch iconname="Suchen"></ngInputSearch>
807
- * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
808
- * <i class="tooltip" style="position: relative; left: 0; top: 3px; display: inline-block; margin-right: 10px;"></i>
809
- * </ngTooltip>
810
- * </div>
811
- *
812
- */
813
- class SacTooltipComponent extends SacTooltipCommon {
824
+ class SacPagingComponent extends SacPagingCommon {
814
825
  /**
815
- * Konstrukor
816
- * @param parent SacFormular Instanz
817
- * @param injector Component Injector
826
+ * Konstruktor
818
827
  */
819
- constructor(cdRef, ref) {
820
- super(cdRef, ref);
821
- }
828
+ constructor(injector) { super(injector); }
822
829
  }
823
- SacTooltipComponent.decorators = [
830
+ SacPagingComponent.decorators = [
824
831
  { type: Component, args: [{
825
- selector: 'sac-tooltip',
826
- template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div #container (mouseenter)=\"ShowTooltip()\" (mouseleave)=\"HideTooltip()\" [style.display]=\"inlinemode ? 'inline' : null\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"IsTooltipVisible()\" [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\" #tooltip class=\"tooltip in\" style=\"display: block;\"\r\n [style.left.px]=\"LeftPos\" [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\" [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\" [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\">\r\n <div class=\"tooltip-arrow\" style=\"top: 50%;\"></div>\r\n <div class=\"tooltip-inner\">\r\n {{tooltiptext}}\r\n </div>\r\n </div>\r\n</div>\r\n"
832
+ selector: 'sac-paging',
833
+ template: "<div class=\"row\">\r\n <div class=\"pager-nav col-sm-4\" id=\"{{name}}\">\r\n <ul class=\"pagination\" style=\"margin: 10px 0\">\r\n <li\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === firstPageIndex}\"\r\n >\r\n <a (click)=\"firstPage()\">\u00AB</a>\r\n </li>\r\n <li\r\n *ngFor=\"let page of paginators; let i = index\"\r\n [ngClass]=\"{'active': page === activePageIndex}\"\r\n >\r\n <a (click)=\"changePage(page)\">{{page + 1 }}</a>\r\n </li>\r\n <li\r\n [ngClass]=\"{'aspNetDisabled disabled': activePageIndex === lastPageIndex}\"\r\n >\r\n <a (click)=\"lastPage()\">\u00BB</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-sm-4 text-center\" style=\"margin: 20px 0\">\r\n Seite {{getCurrentPageNumber()}} von {{getTotalPageNumber()}}\r\n </div>\r\n <div\r\n class=\"col-sm-4 text-right\"\r\n *ngIf=\"!pagesizedisabled\"\r\n style=\"margin: 12px 0\"\r\n >\r\n <div class=\"form-inline\">\r\n <div class=\"form-group\" id=\"{{name}}_size\">\r\n <select\r\n class=\"form-control form-control-sm\"\r\n style=\"width: 85px\"\r\n [ngModel]=\"pageSize\"\r\n (ngModelChange)=\"changePageSize($event)\"\r\n >\r\n <option [ngValue]=\"size\" *ngFor=\"let size of getPageSizes\">\r\n {{size}}\r\n </option>\r\n </select>\r\n <span style=\"margin-left: 5px\">{{ PageSizeText | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
834
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
835
+ providers: [
836
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacPagingComponent },
837
+ { provide: NG_VALIDATORS, multi: true, useExisting: forwardRef(() => SacPagingComponent) }
838
+ ]
827
839
  },] }
828
840
  ];
829
- SacTooltipComponent.ctorParameters = () => [
830
- { type: ChangeDetectorRef },
831
- { type: ElementRef }
841
+ SacPagingComponent.ctorParameters = () => [
842
+ { type: Injector }
832
843
  ];
833
844
 
834
- class SACBootstrap3TooltipModule {
845
+ class SACBootstrap3GridModule {
835
846
  }
836
- SACBootstrap3TooltipModule.decorators = [
847
+ SACBootstrap3GridModule.decorators = [
837
848
  { type: NgModule, args: [{
838
- declarations: [SacTooltipComponent],
839
- imports: [
840
- CommonModule, CommonModule
849
+ declarations: [
850
+ SacGridComponent,
851
+ SacGridColumnComponent,
852
+ SacGridColumnActionComponent,
853
+ SacPagingComponent,
854
+ SacGridButtonComponent,
855
+ SacGridImageComponent,
856
+ ],
857
+ imports: [CommonModule, FormsModule],
858
+ exports: [
859
+ SacGridComponent,
860
+ SacGridColumnComponent,
861
+ SacGridColumnActionComponent,
862
+ SacPagingComponent,
863
+ SacGridButtonComponent,
864
+ SacGridImageComponent,
841
865
  ],
842
- exports: [SacTooltipComponent]
843
866
  },] }
844
867
  ];
845
868
 
@@ -857,7 +880,7 @@ class SacInputComponent extends SacInputCommon {
857
880
  SacInputComponent.decorators = [
858
881
  { type: Component, args: [{
859
882
  selector: 'sac-input',
860
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
883
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
861
884
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
862
885
  providers: [
863
886
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacInputComponent },
@@ -900,7 +923,7 @@ class SacInputAreaComponent extends SacInputAreaCommon {
900
923
  SacInputAreaComponent.decorators = [
901
924
  { type: Component, args: [{
902
925
  selector: 'sac-inputarea',
903
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.validation-error]=\"invalid && (dirty || touched)\"\r\n [class.required]=\"isrequired\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
926
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.validation-error]=\"invalid && (dirty || touched)\"\r\n [class.required]=\"isrequired\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
904
927
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
905
928
  providers: [
906
929
  {
@@ -935,7 +958,7 @@ class SacInputCurrencyComponent extends SacInputCurrencyCommon {
935
958
  SacInputCurrencyComponent.decorators = [
936
959
  { type: Component, args: [{
937
960
  selector: 'sac-inputcurrency',
938
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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 class=\"input-group-addon\">{{currency}}</div>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
961
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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 class=\"input-group-addon\">{{currency}}</div>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
939
962
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
940
963
  providers: [
941
964
  {
@@ -970,7 +993,7 @@ class SacInputDecimalComponent extends SacInputDecimalCommon {
970
993
  SacInputDecimalComponent.decorators = [
971
994
  { type: Component, args: [{
972
995
  selector: 'sac-inputdecimal',
973
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
996
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
974
997
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
975
998
  providers: [
976
999
  {
@@ -1005,7 +1028,7 @@ class SacInputEmailComponent extends SacInputEmailCommon {
1005
1028
  SacInputEmailComponent.decorators = [
1006
1029
  { type: Component, args: [{
1007
1030
  selector: 'sac-inputemail',
1008
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"input-group-addon\">@</div>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n autocomplete=\"email\"\r\n [attr.maxlength]=\"maxlength\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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 <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1031
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"input-group-addon\">@</div>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n autocomplete=\"email\"\r\n [attr.maxlength]=\"maxlength\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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 <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1009
1032
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1010
1033
  providers: [
1011
1034
  {
@@ -1040,7 +1063,7 @@ class SacInputIntegerComponent extends SacInputIntegerCommon {
1040
1063
  SacInputIntegerComponent.decorators = [
1041
1064
  { type: Component, args: [{
1042
1065
  selector: 'sac-inputinteger',
1043
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1066
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1044
1067
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1045
1068
  providers: [
1046
1069
  {
@@ -1075,7 +1098,7 @@ class SacInputPasswordComponent extends SacInputPasswordCommon {
1075
1098
  SacInputPasswordComponent.decorators = [
1076
1099
  { type: Component, args: [{
1077
1100
  selector: 'sac-inputpassword',
1078
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n type=\"password\"\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 autocomplete=\"new-password\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1101
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n type=\"password\"\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 autocomplete=\"new-password\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1079
1102
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1080
1103
  providers: [
1081
1104
  {
@@ -1110,7 +1133,7 @@ class SacInputSearchComponent extends SacInputSearchCommon {
1110
1133
  SacInputSearchComponent.decorators = [
1111
1134
  { type: Component, args: [{
1112
1135
  selector: 'sac-inputsearch',
1113
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <input\r\n type=\"submit\"\r\n class=\"btn btn-default\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n [value]=\"buttontext\"\r\n />\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n",
1136
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\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 [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <span class=\"input-group-btn\">\r\n <button\r\n type=\"submit\"\r\n class=\"btn btn-default\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n >\r\n <i\r\n *ngIf=\"buttonmode === 'icon' || buttonmode === 'mixed'\"\r\n [class]=\"iconname\"\r\n [style.margin-right.px]=\"buttonmode === 'mixed' ? 7 : null\"\r\n ></i>\r\n <ng-container *ngIf=\"buttonmode === 'text' || buttonmode === 'mixed'\"\r\n >{{buttontext}}</ng-container\r\n >\r\n </button>\r\n </span>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n </div>\r\n</div>\r\n",
1114
1137
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1115
1138
  providers: [
1116
1139
  {
@@ -1182,7 +1205,7 @@ class SacDropdownComponent extends SacDropdownCommon {
1182
1205
  SacDropdownComponent.decorators = [
1183
1206
  { type: Component, args: [{
1184
1207
  selector: 'sac-dropdown',
1185
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"help-block help-block-error\"\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",
1208
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\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",
1186
1209
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1187
1210
  providers: [
1188
1211
  {
@@ -1240,7 +1263,7 @@ class SacListboxComponent extends SacListboxCommon {
1240
1263
  SacListboxComponent.decorators = [
1241
1264
  { type: Component, args: [{
1242
1265
  selector: 'sac-listbox',
1243
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [size]=\"rowsize\"\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 <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: option[optionlabel] }\"\r\n >\r\n </ng-template>\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 <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel] }\"\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=\"help-block help-block-error\"\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",
1266
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [size]=\"rowsize\"\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 <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: option[optionlabel] }\"\r\n >\r\n </ng-template>\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 <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel] }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\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",
1244
1267
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1245
1268
  providers: [
1246
1269
  {
@@ -1273,6 +1296,7 @@ SACBootstrap3ListModule.decorators = [
1273
1296
  imports: [
1274
1297
  CommonModule,
1275
1298
  SACCommonListboxOptionModule,
1299
+ SACBootstrap3TooltipModule,
1276
1300
  FormsModule,
1277
1301
  SACBootstrap3LayoutModule,
1278
1302
  ],
@@ -1312,7 +1336,7 @@ class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
1312
1336
  SacStaticFormContainerComponent.decorators = [
1313
1337
  { type: Component, args: [{
1314
1338
  selector: 'sac-staticformcontainer',
1315
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1339
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [class]=\"HelptextTooltipIcon\" style=\"margin-left: 5px\"></span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <ng-content></ng-content>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n\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=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1316
1340
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1317
1341
  providers: [
1318
1342
  {
@@ -1347,7 +1371,7 @@ class SacStaticLabelComponent extends SacStaticLabelCommon {
1347
1371
  SacStaticLabelComponent.decorators = [
1348
1372
  { type: Component, args: [{
1349
1373
  selector: 'sac-staticlabel',
1350
- template: "<div class=\"row form-group\" [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-control-static\"\r\n [style.padding-left.px]=\"0\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n",
1374
+ template: "<div class=\"row form-group\" [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [class]=\"HelptextTooltipIcon\" style=\"margin-left: 5px\"></span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n [id]=\"name\"\r\n class=\"form-control-static\"\r\n [style.padding-left.px]=\"0\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\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",
1351
1375
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1352
1376
  providers: [
1353
1377
  {
@@ -1399,7 +1423,7 @@ class SacTabComponent extends SacTabCommon {
1399
1423
  SacTabComponent.decorators = [
1400
1424
  { type: Component, args: [{
1401
1425
  selector: 'sac-tab',
1402
- template: "<!-- Nav tabs -->\r\n<div [id]=\"name\" class=\"content-nav-tabs\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li\r\n *ngFor=\"let item of _tabItems\"\r\n [ngClass]=\"{ 'active show': item.active, 'disabled': item.disabled }\"\r\n (click)=\"selectTab(item)\"\r\n [ngStyle]=\"{'cursor': item._disabled ? 'not-allowed' : 'pointer'}\"\r\n >\r\n <a [id]=\"GetTabItemButtonId(item._id)\" role=\"tab\">\r\n <ng-template\r\n *ngTemplateOutlet=\"tablabeltemplate || defaultTabLabelTemplate;context:{ label: item.label }\"\r\n >\r\n </ng-template>\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<!-- Tab panes -->\r\n<div class=\"tab-content\" style=\"margin-top: 15px\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #defaultTabLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n"
1426
+ template: "<!-- Nav tabs -->\r\n<div [id]=\"name\" class=\"content-nav-tabs\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li\r\n *ngFor=\"let item of _tabItems\"\r\n [ngClass]=\"{ 'active show': item.active, 'disabled': item.disabled }\"\r\n (click)=\"selectTab(item)\"\r\n [ngStyle]=\"{'cursor': item._disabled ? 'not-allowed' : 'pointer'}\"\r\n >\r\n <a [id]=\"GetTabItemButtonId(item.id)\" role=\"tab\">\r\n <ng-template\r\n *ngTemplateOutlet=\"tablabeltemplate || defaultTabLabelTemplate;context:{ label: item.label }\"\r\n >\r\n </ng-template>\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<!-- Tab panes -->\r\n<div class=\"tab-content\" style=\"margin-top: 15px\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #defaultTabLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n"
1403
1427
  },] }
1404
1428
  ];
1405
1429
  SacTabComponent.propDecorators = {
@@ -1442,7 +1466,7 @@ class SacTinyMceComponent extends SacTinyMceCommon {
1442
1466
  SacTinyMceComponent.decorators = [
1443
1467
  { type: Component, args: [{
1444
1468
  selector: 'sac-tinymce',
1445
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n {{label}}\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\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=\"help-block\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody> </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
1469
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >\r\n {{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [class]=\"HelptextTooltipIcon\" style=\"margin-left: 5px\"></span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\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 <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody> </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
1446
1470
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1447
1471
  providers: [
1448
1472
  {
@@ -1476,6 +1500,7 @@ SACBootstrap3TinyMceModule.decorators = [
1476
1500
  SACBootstrap3ButtonModule,
1477
1501
  SACBootstrap3DialogModule,
1478
1502
  SACBootstrap3LayoutModule,
1503
+ SACBootstrap3TooltipModule,
1479
1504
  ],
1480
1505
  exports: [SacTinyMceComponent],
1481
1506
  },] }
@@ -1543,7 +1568,7 @@ class SacUploadComponent extends SacUploadSingleCommon {
1543
1568
  SacUploadComponent.decorators = [
1544
1569
  { type: Component, args: [{
1545
1570
  selector: 'sac-upload',
1546
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"input-group-btn\">\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1571
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"input-group-btn\">\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1547
1572
  providers: [
1548
1573
  {
1549
1574
  provide: NG_VALUE_ACCESSOR,
@@ -1583,7 +1608,7 @@ class SacUploadMultipleComponent extends SacUploadMultipleCommon {
1583
1608
  SacUploadMultipleComponent.decorators = [
1584
1609
  { type: Component, args: [{
1585
1610
  selector: 'sac-uploadmultiple',
1586
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-xs-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-xs-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1611
+ template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n>\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}label\"\r\n for=\"{{name}}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-xs-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-xs-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\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-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <p *ngIf=\"helptextmode === 'text' && helptext\" class=\"help-block\">\r\n {{helptext}}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1587
1612
  providers: [
1588
1613
  {
1589
1614
  provide: NG_VALUE_ACCESSOR,
@@ -1611,7 +1636,12 @@ class SACBootstrap3UploadModule {
1611
1636
  SACBootstrap3UploadModule.decorators = [
1612
1637
  { type: NgModule, args: [{
1613
1638
  declarations: [SacUploadComponent, SacUploadMultipleComponent],
1614
- imports: [CommonModule, FormsModule, SACBootstrap3LayoutModule],
1639
+ imports: [
1640
+ CommonModule,
1641
+ FormsModule,
1642
+ SACBootstrap3LayoutModule,
1643
+ SACBootstrap3TooltipModule,
1644
+ ],
1615
1645
  exports: [SacUploadComponent, SacUploadMultipleComponent],
1616
1646
  },] }
1617
1647
  ];
@@ -1744,71 +1774,58 @@ SACBootstrap3WizardModule.decorators = [
1744
1774
  },] }
1745
1775
  ];
1746
1776
 
1777
+ // #region Classes
1747
1778
  /**
1748
- * Factory Methode für SacForm
1749
- * @param form NgFormular
1750
- */
1751
- function SACFORM_FACTORY(form) {
1752
- return form;
1753
- }
1754
- /**
1755
- * Factory Methode für NgForm
1756
- * @param form NgForm
1757
- */
1758
- function NGFORM_FACTORY(form) {
1759
- return form;
1760
- }
1761
- /**
1762
- * Directive zum erben eines NgForm/NgFormular einer übergeordneten Komponente
1763
- *
1764
- * @example Implementation in Markup
1765
- *
1766
- * <div sacInheritForm>
1767
- * </div>
1768
- *
1769
- * @example Model an Sub-Komponente übergeben
1770
- *
1771
- * <div sacInheritForm>
1772
- * <div>SubForm</div>
1773
- * <div>
1774
- * <ngInput [(ngModel)]="mymodel.fieldarea2" name="subformField3" label="field 3" [isrequired]="true"></ngInput>
1775
- * </div>
1776
- * </div>
1777
- *
1778
- *
1779
- * (at)Component({
1780
- * selector: 'sacInheritForm',
1781
- * templateUrl: './subform.component.html'
1782
- * })
1783
- * export class SubFormComponent implements DoCheck {
1784
- *
1785
- * (at)Input() mymodel;
1786
- * (at)Output() mymodelChange = new EventEmitter();
1787
- *
1788
- * ngDoCheck() {
1789
- * this.mymodelChange.next(this.mymodel);
1790
- * }
1791
- *}
1792
- *
1779
+ * Directive to inherit an NgForm/NgForm from a parent component
1793
1780
  */
1794
- class SacInheritFormDirective {
1781
+ class SacInheritFormDirective extends SacFormCommon {
1782
+ // #region Constructors
1783
+ /**
1784
+ * Construtor
1785
+ * @param injector: injector to receive the NgForm instance
1786
+ */
1787
+ constructor(injector) {
1788
+ super(injector.get(NgForm));
1789
+ }
1795
1790
  }
1796
1791
  SacInheritFormDirective.decorators = [
1797
1792
  { type: Directive, args: [{
1798
1793
  selector: '[sacInheritForm]',
1794
+ exportAs: 'sacinheritform',
1799
1795
  providers: [
1800
1796
  {
1801
1797
  provide: SacFormDirective,
1802
1798
  useFactory: SACFORM_FACTORY,
1803
- deps: [[new SkipSelf(), SacFormDirective]]
1804
- }, {
1799
+ deps: [[new SkipSelf(), SacFormDirective]],
1800
+ },
1801
+ {
1805
1802
  provide: ControlContainer,
1806
1803
  useFactory: NGFORM_FACTORY,
1807
- deps: [NgForm]
1808
- }
1809
- ]
1804
+ deps: [NgForm],
1805
+ },
1806
+ ],
1810
1807
  },] }
1811
- ];
1808
+ ];
1809
+ SacInheritFormDirective.ctorParameters = () => [
1810
+ { type: Injector }
1811
+ ];
1812
+ // #endregion Classes
1813
+ // #region Functions
1814
+ /**
1815
+ * Factory Methode für NgForm
1816
+ * @param form NgForm
1817
+ */
1818
+ function NGFORM_FACTORY(form) {
1819
+ return form;
1820
+ }
1821
+ /**
1822
+ * Factory Methode für SacForm
1823
+ * @param form NgFormular
1824
+ */
1825
+ function SACFORM_FACTORY(form) {
1826
+ return form;
1827
+ }
1828
+ // #endregion Functions
1812
1829
 
1813
1830
  class SACBootstrap3FormModule {
1814
1831
  }