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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js +176 -82
  2. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap4.umd.min.js.map +1 -1
  5. package/controls/grid/gridbutton.d.ts +1 -10
  6. package/controls/tooltip/tooltip.d.ts +34 -0
  7. package/controls/tooltip/tooltip.module.d.ts +2 -0
  8. package/controls/tooltip/tooltip.module.ngfactory.d.ts +3 -0
  9. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -0
  10. package/esm2015/controls/checkbox/checkbox.js +2 -2
  11. package/esm2015/controls/checkbox/checkbox.module.js +7 -2
  12. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  13. package/esm2015/controls/checkbox/radiobuttons.js +2 -2
  14. package/esm2015/controls/datetime/date.js +2 -2
  15. package/esm2015/controls/datetime/datetime.js +2 -2
  16. package/esm2015/controls/datetime/datetime.module.js +8 -2
  17. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  18. package/esm2015/controls/datetime/time.js +2 -2
  19. package/esm2015/controls/grid/grid.js +2 -2
  20. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  21. package/esm2015/controls/grid/gridbutton.js +3 -11
  22. package/esm2015/controls/input/input.js +2 -2
  23. package/esm2015/controls/input/input.module.js +7 -2
  24. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  25. package/esm2015/controls/input/inputarea.js +2 -2
  26. package/esm2015/controls/input/inputcurrency.js +2 -2
  27. package/esm2015/controls/input/inputdecimal.js +2 -2
  28. package/esm2015/controls/input/inputemail.js +2 -2
  29. package/esm2015/controls/input/inputinteger.js +2 -2
  30. package/esm2015/controls/input/inputpassword.js +2 -2
  31. package/esm2015/controls/input/inputsearch.js +2 -2
  32. package/esm2015/controls/list/dropdown.js +2 -2
  33. package/esm2015/controls/list/dropdown.module.js +7 -2
  34. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  35. package/esm2015/controls/list/list.module.js +7 -2
  36. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  37. package/esm2015/controls/list/listbox.js +2 -2
  38. package/esm2015/controls/multilanguage/multilanguage.module.js +7 -2
  39. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  40. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  41. package/esm2015/controls/multilanguage/multilanguageinputarea.js +2 -2
  42. package/esm2015/controls/static/formcontainer.js +2 -2
  43. package/esm2015/controls/static/staticlabel.js +2 -2
  44. package/esm2015/controls/static/staticlabel.module.js +7 -2
  45. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  46. package/esm2015/controls/tinymce/tinymce.js +2 -2
  47. package/esm2015/controls/tinymce/tinymce.module.js +3 -1
  48. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  49. package/esm2015/controls/tooltip/tooltip.js +52 -0
  50. package/esm2015/controls/tooltip/tooltip.module.js +13 -0
  51. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -0
  52. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -0
  53. package/esm2015/controls/upload/dropzonemultiple.js +2 -2
  54. package/esm2015/controls/upload/dropzonesingle.js +2 -2
  55. package/esm2015/controls/upload/upload.js +2 -2
  56. package/esm2015/controls/upload/upload.module.js +8 -2
  57. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  58. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  59. package/esm2015/public_api.js +2 -1
  60. package/esm2015/simpleangularcontrols-sac-bootstrap4.js +39 -38
  61. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js +132 -45
  62. package/fesm2015/simpleangularcontrols-sac-bootstrap4.js.map +1 -1
  63. package/package.json +3 -3
  64. package/public_api.d.ts +1 -0
  65. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.9.tgz +0 -0
  66. package/simpleangularcontrols-sac-bootstrap4.d.ts +38 -37
  67. package/simpleangularcontrols-sac-bootstrap4.metadata.json +1 -1
  68. package/simpleangularcontrols-sac-bootstrap4-10.0.0-rc.7.tgz +0 -0
@@ -2,7 +2,7 @@ import { CommonModule, DOCUMENT } from '@angular/common';
2
2
  import { HttpClient, HttpClientModule } from '@angular/common/http';
3
3
  import { Component, NgModule, ElementRef, ChangeDetectorRef, Injectable, ComponentFactoryResolver, Inject, ApplicationRef, Injector, forwardRef, NgZone, Renderer2, Directive, HostBinding, SkipSelf, Pipe, Host, Optional, ViewChild, ContentChild, TemplateRef, ContentChildren } from '@angular/core';
4
4
  import { NgForm, ControlContainer, FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
- import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacFormCommon, SacFormLayoutCommon, ControlHeight, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacPagingCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
5
+ import { SacButtonCommon, SacDialogCommon, SacConfirmCommon, ServiceConfirmCommon, isDefined, SacConfirmButton, SacContextmenuCommon, SacContextmenuItemButtonCommon, SacContextmenuItemCommon, SacContextmenuAnchorCommon, SacContextMenuContrainerCommon, SacFormCommon, SacFormLayoutCommon, ControlHeight, SacTooltipCommon, SacDropzoneMultipleCommon, SacDropzoneSingleCommon, SacUploadSingleCommon, SacUploadMultipleCommon, SacFileBrowserCommon, SacCheckboxCommon, SacRadiobuttonsCommon, SacRadiobuttonCommon, SacDateCommon, SacDateSelectorCommon, SacDateTimeCommon, SacTimeCommon, SacGridCommon, SacGridButtonCommon, SacGridColumnCommon, SacGridColumnBaseCommon, SacGridColumnActionCommon, SacGridImageCommon, SacPagingCommon, SacInputCommon, SacInputAreaCommon, SacInputCurrencyCommon, SacInputDecimalCommon, SacInputEmailCommon, SacInputIntegerCommon, SacInputPasswordCommon, SacInputSearchCommon, SacDropdownCommon, SacDropdownOptionCommon, SacListboxCommon, SacListboxOptionCommon, SacMultilanguageInputCommon, IconType, SacMultilanguageInputAreaCommon, SacStaticFormContainerCommon, SacStaticLabelCommon, SacTabItemCommon, SacTabCommon, SacTinyMceCommon, SacValidationSummaryCommon, SacWizardItemCommon, SacWizardCommon } from '@simpleangularcontrols/sac-common';
6
6
  import { forkJoin, Observable } from 'rxjs';
7
7
  import { take } from 'rxjs/operators';
8
8
  import { IMaskModule } from 'angular-imask';
@@ -637,6 +637,66 @@ SACBootstrap4LayoutModule.decorators = [
637
637
  },] }
638
638
  ];
639
639
 
640
+ /**
641
+ * Tooltip Komponente
642
+ *
643
+ * @example ToolTip Control
644
+ *
645
+ * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
646
+ * <i class="tooltip"></i>
647
+ * </ngTooltip>
648
+ *
649
+ * @example ToolTip Control im Inline Mode. Style auf Icon kann auch in Klasse ausgelagert werden.
650
+ *
651
+ * <div class="form-inline">
652
+ * <ngInputSearch iconname="Suchen"></ngInputSearch>
653
+ * <ngTooltip tooltiptext="Mein Tooltip" [inlinemode]="true">
654
+ * <i class="tooltip" style="position: relative; left: 0; top: 3px; display: inline-block; margin-right: 10px;"></i>
655
+ * </ngTooltip>
656
+ * </div>
657
+ *
658
+ */
659
+ class SacTooltipComponent extends SacTooltipCommon {
660
+ // #region Constructors
661
+ /**
662
+ * Konstrukor
663
+ * @param parent SacFormular Instanz
664
+ * @param injector Component Injector
665
+ */
666
+ constructor(cdRef, ref) {
667
+ super(cdRef, ref);
668
+ }
669
+ // #endregion Constructors
670
+ // #region Protected Methods
671
+ /**
672
+ * Padding Value for Bootstrap5 Tooltip Padding
673
+ * @returns Static Padding Value for BS5
674
+ */
675
+ getTooltipOffset() {
676
+ return 2;
677
+ }
678
+ }
679
+ SacTooltipComponent.decorators = [
680
+ { type: Component, args: [{
681
+ selector: 'sac-tooltip',
682
+ template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div\r\n #container\r\n (mouseenter)=\"ShowTooltip()\"\r\n (mouseleave)=\"HideTooltip()\"\r\n [style.display]=\"inlinemode ? 'inline' : null\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n <div #tooltip *ngIf=\"IsTooltipVisible()\">\r\n <div\r\n [class.show]=\"IsTooltipContentVisible\"\r\n class=\"tooltip bs-tooltip-auto fade\"\r\n style=\"position: absolute\"\r\n [style.left.px]=\"LeftPos\"\r\n [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\"\r\n [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\"\r\n [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\"\r\n [attr.x-placement]=\"GetTooltipPosition() == TooltipPosition.right ? 'right' : GetTooltipPosition() == TooltipPosition.left ? 'left' : GetTooltipPosition() == TooltipPosition.top ? 'top' :GetTooltipPosition() == TooltipPosition.bottom ? 'bottom' : null\"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"position: absolute\"\r\n [style.top.px]=\"GetTooltipPosition() === TooltipPosition.left || GetTooltipPosition() === TooltipPosition.right ? (getToolTipHeight() / 2) - 6.5 : null\"\r\n [style.left.px]=\"GetTooltipPosition() === TooltipPosition.bottom || GetTooltipPosition() === TooltipPosition.top ? (getToolTipWidth() / 2) - 6.5 : null\"\r\n ></div>\r\n <div class=\"tooltip-inner\">{{tooltiptext}}</div>\r\n </div>\r\n </div>\r\n</div>\r\n"
683
+ },] }
684
+ ];
685
+ SacTooltipComponent.ctorParameters = () => [
686
+ { type: ChangeDetectorRef },
687
+ { type: ElementRef }
688
+ ];
689
+
690
+ class SACBootstrap4TooltipModule {
691
+ }
692
+ SACBootstrap4TooltipModule.decorators = [
693
+ { type: NgModule, args: [{
694
+ declarations: [SacTooltipComponent],
695
+ imports: [CommonModule],
696
+ exports: [SacTooltipComponent],
697
+ },] }
698
+ ];
699
+
640
700
  /**
641
701
  * Dropzone Komponente für mehrere Uploads
642
702
  * @see https://github.com/kukhariev/ngx-uploadx/
@@ -665,7 +725,7 @@ class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
665
725
  SacDropzoneMultipleComponent.decorators = [
666
726
  { type: Component, args: [{
667
727
  selector: 'sac-dropzonemultiple',
668
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
728
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
669
729
  providers: [
670
730
  {
671
731
  provide: NG_VALUE_ACCESSOR,
@@ -716,7 +776,7 @@ class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
716
776
  SacDropzoneSingleComponent.decorators = [
717
777
  { type: Component, args: [{
718
778
  selector: 'sac-dropzonesingle',
719
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
779
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"align-self-center progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
720
780
  providers: [
721
781
  {
722
782
  provide: NG_VALUE_ACCESSOR,
@@ -759,7 +819,7 @@ class SacUploadComponent extends SacUploadSingleCommon {
759
819
  SacUploadComponent.decorators = [
760
820
  { type: Component, args: [{
761
821
  selector: 'sac-upload',
762
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
822
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pr-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <input type=\"textimage-preview-filename\" class=\"form-control image-preview-filename\" disabled=\"disabled\"> --><!-- don't give a name === doesn't send on POST/GET -->\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
763
823
  providers: [
764
824
  {
765
825
  provide: NG_VALUE_ACCESSOR,
@@ -802,7 +862,7 @@ class SacUploadMultipleComponent extends SacUploadMultipleCommon {
802
862
  SacUploadMultipleComponent.decorators = [
803
863
  { type: Component, args: [{
804
864
  selector: 'sac-uploadmultiple',
805
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pr-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
865
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pr-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-append\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pr-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
806
866
  providers: [
807
867
  {
808
868
  provide: NG_VALUE_ACCESSOR,
@@ -835,7 +895,12 @@ SACBootstrap4UploadModule.decorators = [
835
895
  SacDropzoneSingleComponent,
836
896
  SacDropzoneMultipleComponent,
837
897
  ],
838
- imports: [CommonModule, FormsModule, SACBootstrap4LayoutModule],
898
+ imports: [
899
+ CommonModule,
900
+ FormsModule,
901
+ SACBootstrap4LayoutModule,
902
+ SACBootstrap4TooltipModule,
903
+ ],
839
904
  exports: [
840
905
  SacUploadComponent,
841
906
  SacUploadMultipleComponent,
@@ -984,7 +1049,7 @@ class SacCheckboxComponent extends SacCheckboxCommon {
984
1049
  SacCheckboxComponent.decorators = [
985
1050
  { type: Component, args: [{
986
1051
  selector: 'sac-checkbox',
987
- template: "<div\r\n class=\"row\"\r\n [class.no-gutters]=\"disablelabel\"\r\n [class.form-group]=\"!stacked\"\r\n>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"align-self-center col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n",
1052
+ template: "<div\r\n class=\"row\"\r\n [class.no-gutters]=\"disablelabel\"\r\n [class.form-group]=\"!stacked\"\r\n>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n *ngIf=\"!disablelabel && !stacked\"\r\n for=\"{{name}}\"\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span\r\n [ngClass]=\"HelptextTooltipIcon\"\r\n class=\"ml-1\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n </div>\r\n <div\r\n class=\"align-self-center col-12\"\r\n [ngClass]=\"[!disablelabel && !stacked ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"form-check\"\r\n [class.form-check-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n [class.form-check-input-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-input-lg]=\"componentHeight === ControlHeight.Large\"\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue($event.target.checked)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-check-label\"\r\n [class.form-check-label-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.form-check-label-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
988
1053
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
989
1054
  providers: [
990
1055
  {
@@ -1023,7 +1088,7 @@ class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
1023
1088
  SacRadiobuttonsComponent.decorators = [
1024
1089
  { type: Component, args: [{
1025
1090
  selector: 'sac-radiobuttons',
1026
- template: "<div class=\"row form-group\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n *ngIf=\"!disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.pt-1]=\"componentHeight === ControlHeight.Small\"\r\n [class.pt-2]=\"componentHeight !== ControlHeight.Small\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n",
1091
+ template: "<div class=\"row form-group\">\r\n <div\r\n *ngIf=\"disablelabel === false\"\r\n class=\"col-12 pt-0\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n >\r\n <label\r\n class=\"col-form-label\"\r\n [ngClass]=\"componentHeight | toLabelHeight\"\r\n *ngIf=\"!disablelabel\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span\r\n [ngClass]=\"HelptextTooltipIcon\"\r\n class=\"ml-1\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.pt-1]=\"componentHeight === ControlHeight.Small\"\r\n [class.pt-2]=\"componentHeight !== ControlHeight.Small\"\r\n >\r\n <ng-content></ng-content>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
1027
1092
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1028
1093
  providers: [
1029
1094
  {
@@ -1076,7 +1141,11 @@ SACBootstrap4CheckboxModule.decorators = [
1076
1141
  SacRadiobuttonComponent,
1077
1142
  SacRadiobuttonsComponent,
1078
1143
  ],
1079
- imports: [CommonModule, SACBootstrap4LayoutModule],
1144
+ imports: [
1145
+ CommonModule,
1146
+ SACBootstrap4LayoutModule,
1147
+ SACBootstrap4TooltipModule,
1148
+ ],
1080
1149
  exports: [
1081
1150
  SacCheckboxComponent,
1082
1151
  SacRadiobuttonComponent,
@@ -1107,7 +1176,7 @@ class SacDateComponent extends SacDateCommon {
1107
1176
  SacDateComponent.decorators = [
1108
1177
  { type: Component, args: [{
1109
1178
  selector: 'sac-date',
1110
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1179
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1111
1180
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1112
1181
  providers: [
1113
1182
  {
@@ -1159,7 +1228,7 @@ class SacDateTimeComponent extends SacDateTimeCommon {
1159
1228
  SacDateTimeComponent.decorators = [
1160
1229
  { type: Component, args: [{
1161
1230
  selector: 'sac-datetime',
1162
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1231
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showDateSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"dateselect($event)\"\r\n dateselection=\"true\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1163
1232
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1164
1233
  providers: [
1165
1234
  {
@@ -1199,7 +1268,7 @@ class SacTimeComponent extends SacTimeCommon {
1199
1268
  SacTimeComponent.decorators = [
1200
1269
  { type: Component, args: [{
1201
1270
  selector: 'sac-time',
1202
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showTimeSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"timeselect($event)\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1271
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-secondary\"\r\n type=\"button\"\r\n (click)=\"showTimeSelector()\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"popover fade bs-popover-bottom show\"\r\n role=\"tooltip\"\r\n *ngIf=\"_showselector\"\r\n style=\"\r\n display: block;\r\n left: unset;\r\n right: 0px;\r\n top: unset;\r\n max-width: 325px;\r\n \"\r\n >\r\n <div\r\n class=\"arrow\"\r\n style=\"left: unset\"\r\n [style.right.rem]=\"componentHeight === ControlHeight.Small ? 1.1 : componentHeight === ControlHeight.Large ? 1.8 : 1.4\"\r\n ></div>\r\n <h3 class=\"popover-header\" style=\"display: none\"></h3>\r\n <div class=\"popover-body\">\r\n <sac-dateselector\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"timeselect($event)\"\r\n timeselection=\"true\"\r\n ></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1203
1272
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1204
1273
  providers: [
1205
1274
  {
@@ -1231,7 +1300,12 @@ SACBootstrap4DateTimeModule.decorators = [
1231
1300
  SacTimeComponent,
1232
1301
  SacDateSelectorComponent,
1233
1302
  ],
1234
- imports: [CommonModule, IMaskModule, SACBootstrap4LayoutModule],
1303
+ imports: [
1304
+ CommonModule,
1305
+ IMaskModule,
1306
+ SACBootstrap4LayoutModule,
1307
+ SACBootstrap4TooltipModule,
1308
+ ],
1235
1309
  exports: [
1236
1310
  SacDateComponent,
1237
1311
  SacDateTimeComponent,
@@ -1262,7 +1336,7 @@ class SacGridComponent extends SacGridCommon {
1262
1336
  SacGridComponent.decorators = [
1263
1337
  { type: Component, args: [{
1264
1338
  selector: 'sac-grid',
1265
- template: "<div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover\" id={{name}}>\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\">\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\">\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"value === undefined || value === null || value.length===0\">\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n <tr>\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging name=\"{{name}}Paging\" (paging)=\"pageChange($event)\" [pagerdata]=\"pagerdata\" [pagesizes]=\"pagesizes\" [pagingtext]=\"pagingtext\" [pagesizetext]=\"pagesizetext\" [pagesizedisabled]=\"pagesizedisabled\"></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
1339
+ template: "<div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover\" id=\"{{name}}\">\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { row: {}, type: 'header'}\"\r\n >\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let item of value; let i=index\">\r\n <tr>\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { row: item, type: 'body'}\"\r\n >\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"value === undefined || value === null || value.length===0\">\r\n <td [attr.colspan]=\"ColumnCount\">{{emptytext}}</td>\r\n </tr>\r\n <tr *ngIf=\"pagerdata\">\r\n <td [attr.colspan]=\"ColumnCount\">\r\n <div class=\"container-fluid\">\r\n <sac-paging\r\n name=\"{{name}}Paging\"\r\n (paging)=\"pageChange($event)\"\r\n [pagerdata]=\"pagerdata\"\r\n [pagesizes]=\"pagesizes\"\r\n [pagingtext]=\"pagingtext\"\r\n [pagesizetext]=\"pagesizetext\"\r\n [pagesizedisabled]=\"pagesizedisabled\"\r\n ></sac-paging>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
1266
1340
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1267
1341
  providers: [
1268
1342
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacGridComponent },
@@ -1284,19 +1358,11 @@ SacGridComponent.propDecorators = {
1284
1358
 
1285
1359
  /**
1286
1360
  * Grid Action Button
1287
- *
1288
- * @example Standard Action
1289
- *
1290
- * <ngGridButton icon="edit" (clicked)="action('edit')" [isdisabled]="true"></ngGridButton>
1291
- *
1292
- * @example Custom Action
1293
- *
1294
- * <ngGridButton iconstyle="sprite" icon="icon-sprite-base-main_info" (clicked)="action("info")"></ngGridButton>
1295
- *
1296
1361
  */
1297
1362
  class SacGridButtonComponent extends SacGridButtonCommon {
1363
+ // #region Public Methods
1298
1364
  /**
1299
- * Gibt das Icon für den Button zurück
1365
+ * Returns the icon for the button
1300
1366
  */
1301
1367
  getIconClass() {
1302
1368
  let iconset = this.iconstyle;
@@ -1476,7 +1542,7 @@ class SacInputComponent extends SacInputCommon {
1476
1542
  SacInputComponent.decorators = [
1477
1543
  { type: Component, args: [{
1478
1544
  selector: 'sac-input',
1479
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1545
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1480
1546
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1481
1547
  providers: [
1482
1548
  { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacInputComponent },
@@ -1510,7 +1576,7 @@ class SacInputAreaComponent extends SacInputAreaCommon {
1510
1576
  SacInputAreaComponent.decorators = [
1511
1577
  { type: Component, args: [{
1512
1578
  selector: 'sac-inputarea',
1513
- template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.rows]=\"rows\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [attr.maxlength]=\"maxlength\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1579
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [attr.rows]=\"rows\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [attr.maxlength]=\"maxlength\"\r\n [readonly]=\"readonly\"\r\n ></textarea>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1514
1580
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1515
1581
  providers: [
1516
1582
  {
@@ -1548,7 +1614,7 @@ class SacInputCurrencyComponent extends SacInputCurrencyCommon {
1548
1614
  SacInputCurrencyComponent.decorators = [
1549
1615
  { type: Component, args: [{
1550
1616
  selector: 'sac-inputcurrency',
1551
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\">{{currency}}</span>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1617
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\">{{currency}}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
1552
1618
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1553
1619
  providers: [
1554
1620
  {
@@ -1586,7 +1652,7 @@ class SacInputDecimalComponent extends SacInputDecimalCommon {
1586
1652
  SacInputDecimalComponent.decorators = [
1587
1653
  { type: Component, args: [{
1588
1654
  selector: 'sac-inputdecimal',
1589
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1655
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1590
1656
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1591
1657
  providers: [
1592
1658
  {
@@ -1624,7 +1690,7 @@ class SacInputEmailComponent extends SacInputEmailCommon {
1624
1690
  SacInputEmailComponent.decorators = [
1625
1691
  { type: Component, args: [{
1626
1692
  selector: 'sac-inputemail',
1627
- template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\">@</span>\r\n </div>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"email\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1693
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\">@</span>\r\n </div>\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"email\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
1628
1694
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1629
1695
  providers: [
1630
1696
  {
@@ -1662,7 +1728,7 @@ class SacInputIntegerComponent extends SacInputIntegerCommon {
1662
1728
  SacInputIntegerComponent.decorators = [
1663
1729
  { type: Component, args: [{
1664
1730
  selector: 'sac-inputinteger',
1665
- template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1731
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.placeholder]=\"placeholder\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n />\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1666
1732
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1667
1733
  providers: [
1668
1734
  {
@@ -1700,7 +1766,7 @@ class SacInputPasswordComponent extends SacInputPasswordCommon {
1700
1766
  SacInputPasswordComponent.decorators = [
1701
1767
  { type: Component, args: [{
1702
1768
  selector: 'sac-inputpassword',
1703
- template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"new-password\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1769
+ template: "<div class=\"form-group row\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"new-password\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1704
1770
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1705
1771
  providers: [
1706
1772
  {
@@ -1738,7 +1804,7 @@ class SacInputSearchComponent extends SacInputSearchCommon {
1738
1804
  SacInputSearchComponent.decorators = [
1739
1805
  { type: Component, args: [{
1740
1806
  selector: 'sac-inputsearch',
1741
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div class=\"input-group-append\">\r\n <input\r\n type=\"submit\"\r\n class=\"btn btn-secondary\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n [value]=\"buttontext\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1807
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"setValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n [readonly]=\"readonly\"\r\n />\r\n <div class=\"input-group-append\">\r\n <input\r\n type=\"submit\"\r\n class=\"btn btn-secondary\"\r\n id=\"{{name}}_search\"\r\n (click)=\"searchClick()\"\r\n [value]=\"buttontext\"\r\n />\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n",
1742
1808
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1743
1809
  providers: [
1744
1810
  {
@@ -1773,7 +1839,11 @@ SACBootstrap4InputModule.decorators = [
1773
1839
  SacInputPasswordComponent,
1774
1840
  SacInputSearchComponent,
1775
1841
  ],
1776
- imports: [CommonModule, SACBootstrap4LayoutModule],
1842
+ imports: [
1843
+ CommonModule,
1844
+ SACBootstrap4LayoutModule,
1845
+ SACBootstrap4TooltipModule,
1846
+ ],
1777
1847
  exports: [
1778
1848
  SacInputComponent,
1779
1849
  SacInputAreaComponent,
@@ -1807,7 +1877,7 @@ class SacDropdownComponent extends SacDropdownCommon {
1807
1877
  SacDropdownComponent.decorators = [
1808
1878
  { type: Component, args: [{
1809
1879
  selector: 'sac-dropdown',
1810
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n",
1880
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n",
1811
1881
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1812
1882
  providers: [
1813
1883
  {
@@ -1859,7 +1929,11 @@ class SACBootstrap4DropdownModule {
1859
1929
  SACBootstrap4DropdownModule.decorators = [
1860
1930
  { type: NgModule, args: [{
1861
1931
  declarations: [SacDropdownComponent, SacDropdownOptionDirective],
1862
- imports: [CommonModule, SACBootstrap4LayoutModule],
1932
+ imports: [
1933
+ CommonModule,
1934
+ SACBootstrap4LayoutModule,
1935
+ SACBootstrap4TooltipModule,
1936
+ ],
1863
1937
  exports: [SacDropdownComponent, SacDropdownOptionDirective],
1864
1938
  },] }
1865
1939
  ];
@@ -1882,7 +1956,7 @@ class SacListboxComponent extends SacListboxCommon {
1882
1956
  SacListboxComponent.decorators = [
1883
1957
  { type: Component, args: [{
1884
1958
  selector: 'sac-listbox',
1885
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [size]=\"rowsize\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1959
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control\"\r\n [size]=\"rowsize\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
1886
1960
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1887
1961
  providers: [
1888
1962
  {
@@ -1932,7 +2006,11 @@ class SACBootstrap4ListModule {
1932
2006
  SACBootstrap4ListModule.decorators = [
1933
2007
  { type: NgModule, args: [{
1934
2008
  declarations: [SacListboxComponent, SacListboxOptionDirective],
1935
- imports: [CommonModule, SACBootstrap4LayoutModule],
2009
+ imports: [
2010
+ CommonModule,
2011
+ SACBootstrap4LayoutModule,
2012
+ SACBootstrap4TooltipModule,
2013
+ ],
1936
2014
  exports: [SacListboxComponent, SacListboxOptionDirective],
1937
2015
  },] }
1938
2016
  ];
@@ -1960,7 +2038,7 @@ class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
1960
2038
  SacMultilanguageInputComponent.decorators = [
1961
2039
  { type: Component, args: [{
1962
2040
  selector: 'sac-multilanguageinput',
1963
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
2041
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
1964
2042
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
1965
2043
  providers: [
1966
2044
  {
@@ -2004,7 +2082,7 @@ class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAreaCommon
2004
2082
  SacMultilanguageInputAreaComponent.decorators = [
2005
2083
  { type: Component, args: [{
2006
2084
  selector: 'sac-multilanguageinputarea',
2007
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n style=\"height: auto\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.rows]=\"rows\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n ></textarea>\r\n\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <i\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></i>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
2085
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <textarea\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n style=\"height: auto\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.rows]=\"rows\"\r\n [attr.maxlength]=\"maxlength\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [disabled]=\"isdisabled\"\r\n ></textarea>\r\n\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <i\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></i>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n",
2008
2086
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2009
2087
  providers: [
2010
2088
  {
@@ -2152,7 +2230,11 @@ SACBootstrap4MultilanguageModule.decorators = [
2152
2230
  SacMultilanguagemenuContainerDirective,
2153
2231
  SacMultilanguagemenuItemButtonComponent,
2154
2232
  ],
2155
- imports: [CommonModule, SACBootstrap4LayoutModule],
2233
+ imports: [
2234
+ CommonModule,
2235
+ SACBootstrap4LayoutModule,
2236
+ SACBootstrap4TooltipModule,
2237
+ ],
2156
2238
  exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
2157
2239
  },] }
2158
2240
  ];
@@ -2185,7 +2267,7 @@ class SacStaticFormContainerComponent extends SacStaticFormContainerCommon {
2185
2267
  SacStaticFormContainerComponent.decorators = [
2186
2268
  { type: Component, args: [{
2187
2269
  selector: 'sac-staticformcontainer',
2188
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <ng-content></ng-content>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-label-adaptive form-label-fixed\"\r\n [ngClass]=\"{ 'required': isrequired }\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
2270
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <ng-content></ng-content>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"form-label-adaptive form-label-fixed\"\r\n [ngClass]=\"{ 'required': isrequired }\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
2189
2271
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2190
2272
  providers: [
2191
2273
  {
@@ -2223,7 +2305,7 @@ class SacStaticLabelComponent extends SacStaticLabelCommon {
2223
2305
  SacStaticLabelComponent.decorators = [
2224
2306
  { type: Component, args: [{
2225
2307
  selector: 'sac-staticlabel',
2226
- template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n [id]=\"name\"\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n",
2308
+ template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span [ngClass]=\"HelptextTooltipIcon\" class=\"ml-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n [id]=\"name\"\r\n class=\"form-control-plaintext\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [innerHTML]=\"value\"\r\n ></div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-left control-label\"\r\n *ngIf=\"isAdaptiveLabel && !disablelabel\"\r\n >{{label}}</label\r\n >\r\n </div>\r\n</div>\r\n",
2227
2309
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2228
2310
  providers: [
2229
2311
  {
@@ -2249,7 +2331,11 @@ class SACBootstrap4StaticLabelModule {
2249
2331
  SACBootstrap4StaticLabelModule.decorators = [
2250
2332
  { type: NgModule, args: [{
2251
2333
  declarations: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2252
- imports: [CommonModule, SACBootstrap4LayoutModule],
2334
+ imports: [
2335
+ CommonModule,
2336
+ SACBootstrap4LayoutModule,
2337
+ SACBootstrap4TooltipModule,
2338
+ ],
2253
2339
  exports: [SacStaticLabelComponent, SacStaticFormContainerComponent],
2254
2340
  },] }
2255
2341
  ];
@@ -2327,7 +2413,7 @@ class SacTinyMceComponent extends SacTinyMceCommon {
2327
2413
  SacTinyMceComponent.decorators = [
2328
2414
  { type: Component, args: [{
2329
2415
  selector: 'sac-tinymce',
2330
- template: "<div class=\"form-row form-group\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label\">{{label}}</label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <editor\r\n [id]=\"name + '_tinymce'\"\r\n [init]=\"_config\"\r\n [initialValue]=\"value\"\r\n ngModel\r\n [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"setValue($event)\"\r\n (onSaveContent)=\"save($event.event.content)\"\r\n [disabled]=\"disabled\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n ></editor>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]=\"filebrowserapiurl\"\r\n (file)=\"selectDialogSettings.value = $event\"\r\n [allowfoldercreate]=\"allowfoldercreate\"\r\n [allowfolderrename]=\"allowfolderrename\"\r\n [allowfolderdelete]=\"allowfolderdelete\"\r\n [allowfileupload]=\"allowfileupload\"\r\n [allowfilerename]=\"allowfilerename\"\r\n [allowfiledelete]=\"allowfiledelete\"\r\n [selectedfile]=\"selectDialogSettings.value\"\r\n [allowedtypes]=\"selectDialogSettings.allowedtypes\"\r\n ></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
2416
+ template: "<div class=\"form-row form-group\">\r\n <div\r\n class=\"col\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\r\n >\r\n <label for=\"{{name}}\" class=\"form-control-label\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n ><span\r\n [ngClass]=\"HelptextTooltipIcon\"\r\n class=\"ml-1\"\r\n ></span> </sac-tooltip\r\n ></label>\r\n </div>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <editor\r\n [id]=\"name + '_tinymce'\"\r\n [init]=\"_config\"\r\n [initialValue]=\"value\"\r\n ngModel\r\n [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"setValue($event)\"\r\n (onSaveContent)=\"save($event.event.content)\"\r\n [disabled]=\"disabled\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n ></editor>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\"\r\n class=\"form-text text-muted\"\r\n >\r\n {{helptext}}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<sac-dialog\r\n *ngIf=\"selectdialogvisible\"\r\n [allowesc]=\"false\"\r\n [backdrop]=\"true\"\r\n [(isvisible)]=\"selectdialogvisible\"\r\n title=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectDialogtitle) | async }}\"\r\n size=\"large\"\r\n height=\"500px\"\r\n>\r\n <ng-container dialogbody>\r\n <sac-filebrowser\r\n [apiurl]=\"filebrowserapiurl\"\r\n (file)=\"selectDialogSettings.value = $event\"\r\n [allowfoldercreate]=\"allowfoldercreate\"\r\n [allowfolderrename]=\"allowfolderrename\"\r\n [allowfolderdelete]=\"allowfolderdelete\"\r\n [allowfileupload]=\"allowfileupload\"\r\n [allowfilerename]=\"allowfilerename\"\r\n [allowfiledelete]=\"allowfiledelete\"\r\n [selectedfile]=\"selectDialogSettings.value\"\r\n [allowedtypes]=\"selectDialogSettings.allowedtypes\"\r\n ></sac-filebrowser>\r\n </ng-container>\r\n <ng-container dialogfooter>\r\n <sac-button\r\n role=\"primary\"\r\n [name]=\"name + '_modalOk'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectOk) | async }}\"\r\n (clicked)=\"setSelectDialogResult()\"\r\n ></sac-button>\r\n <sac-button\r\n [name]=\"name + '_modalClose'\"\r\n text=\"{{ lngResourceService.GetString(validationKeyService.TinyMceFileselectCancel) | async }}\"\r\n (clicked)=\"closeSelectDialog()\"\r\n ></sac-button>\r\n </ng-container>\r\n</sac-dialog>\r\n",
2331
2417
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
2332
2418
  providers: [
2333
2419
  {
@@ -2363,6 +2449,7 @@ SACBootstrap4TinyMceModule.decorators = [
2363
2449
  SACBootstrap4ButtonModule,
2364
2450
  SACBootstrap4DialogModule,
2365
2451
  SACBootstrap4BrowserModule,
2452
+ SACBootstrap4TooltipModule,
2366
2453
  ],
2367
2454
  exports: [SacTinyMceComponent],
2368
2455
  },] }
@@ -2471,5 +2558,5 @@ SACBootstrap4WizardModule.decorators = [
2471
2558
  * Generated bundle index. Do not edit.
2472
2559
  */
2473
2560
 
2474
- export { NGFORM_FACTORY, SACBootstrap4BrowserModule, SACBootstrap4ButtonModule, SACBootstrap4CheckboxModule, SACBootstrap4ConfirmModule, SACBootstrap4ContextmenuModule, SACBootstrap4DateTimeModule, SACBootstrap4DialogModule, SACBootstrap4DropdownModule, SACBootstrap4FormModule, SACBootstrap4GridModule, SACBootstrap4InputModule, SACBootstrap4LayoutModule, SACBootstrap4ListModule, SACBootstrap4MultilanguageModule, SACBootstrap4StaticLabelModule, SACBootstrap4TabsModule, SACBootstrap4TinyMceModule, SACBootstrap4UploadModule, SACBootstrap4ValidationSummaryModule, SACBootstrap4WizardModule, SACFORM_FACTORY, SacFormDirective, SacInheritFormDirective, ServiceConfirm, SacBrowserComponent as ɵa, SacDropzoneMultipleComponent as ɵb, SacGridColumnComponent as ɵba, SacGridColumnActionComponent as ɵbb, SacPagingComponent as ɵbc, SacGridButtonComponent as ɵbd, SacGridImageComponent as ɵbe, SacInputComponent as ɵbf, SacInputAreaComponent as ɵbg, SacInputCurrencyComponent as ɵbh, SacInputDecimalComponent as ɵbi, SacInputEmailComponent as ɵbj, SacInputIntegerComponent as ɵbk, SacInputPasswordComponent as ɵbl, SacInputSearchComponent as ɵbm, SacDropdownComponent as ɵbn, SacDropdownOptionDirective as ɵbo, SacListboxComponent as ɵbp, SacListboxOptionDirective as ɵbq, SacMultilanguageInputComponent as ɵbr, SacMultilanguageInputAreaComponent as ɵbs, SacMultilanguagemenuComponent as ɵbt, SacMultilanguagemenuAnchorDirective as ɵbu, SacMultilanguagemenuContainerDirective as ɵbv, SacMultilanguagemenuItemButtonComponent as ɵbw, SacStaticLabelComponent as ɵbx, SacStaticFormContainerComponent as ɵby, SacTabComponent as ɵbz, SacFormLayoutDirective as ɵc, SacTabItemComponent as ɵca, SacTinyMceComponent as ɵcb, SacValidationSummaryComponent as ɵcc, SacWizardComponent as ɵcd, SacWizardItemComponent as ɵce, SacConfirmComponent as ɵd, SacDialogComponent as ɵe, SacButtonComponent as ɵf, SacContextmenuComponent as ɵg, SacContextmenuItemButtonComponent as ɵh, SacContextmenuItemSplitterComponent as ɵi, SacContextmenuAnchorDirective as ɵj, SacContextmenuContainerDirective as ɵk, SacUploadComponent as ɵl, SacUploadMultipleComponent as ɵm, SacDropzoneSingleComponent as ɵn, SacToControlHeightPipe as ɵo, SacToControlWidthCssPipe as ɵp, SacToLabelHeightPipe as ɵq, SacToLabelWidthCssPipe as ɵr, SacCheckboxComponent as ɵs, SacRadiobuttonComponent as ɵt, SacRadiobuttonsComponent as ɵu, SacDateComponent as ɵv, SacDateTimeComponent as ɵw, SacTimeComponent as ɵx, SacDateSelectorComponent as ɵy, SacGridComponent as ɵz };
2561
+ export { NGFORM_FACTORY, SACBootstrap4BrowserModule, SACBootstrap4ButtonModule, SACBootstrap4CheckboxModule, SACBootstrap4ConfirmModule, SACBootstrap4ContextmenuModule, SACBootstrap4DateTimeModule, SACBootstrap4DialogModule, SACBootstrap4DropdownModule, SACBootstrap4FormModule, SACBootstrap4GridModule, SACBootstrap4InputModule, SACBootstrap4LayoutModule, SACBootstrap4ListModule, SACBootstrap4MultilanguageModule, SACBootstrap4StaticLabelModule, SACBootstrap4TabsModule, SACBootstrap4TinyMceModule, SACBootstrap4TooltipModule, SACBootstrap4UploadModule, SACBootstrap4ValidationSummaryModule, SACBootstrap4WizardModule, SACFORM_FACTORY, SacFormDirective, SacInheritFormDirective, ServiceConfirm, SacBrowserComponent as ɵa, SacDropzoneMultipleComponent as ɵb, SacGridComponent as ɵba, SacGridColumnComponent as ɵbb, SacGridColumnActionComponent as ɵbc, SacPagingComponent as ɵbd, SacGridButtonComponent as ɵbe, SacGridImageComponent as ɵbf, SacInputComponent as ɵbg, SacInputAreaComponent as ɵbh, SacInputCurrencyComponent as ɵbi, SacInputDecimalComponent as ɵbj, SacInputEmailComponent as ɵbk, SacInputIntegerComponent as ɵbl, SacInputPasswordComponent as ɵbm, SacInputSearchComponent as ɵbn, SacDropdownComponent as ɵbo, SacDropdownOptionDirective as ɵbp, SacListboxComponent as ɵbq, SacListboxOptionDirective as ɵbr, SacMultilanguageInputComponent as ɵbs, SacMultilanguageInputAreaComponent as ɵbt, SacMultilanguagemenuComponent as ɵbu, SacMultilanguagemenuAnchorDirective as ɵbv, SacMultilanguagemenuContainerDirective as ɵbw, SacMultilanguagemenuItemButtonComponent as ɵbx, SacStaticLabelComponent as ɵby, SacStaticFormContainerComponent as ɵbz, SacFormLayoutDirective as ɵc, SacTabComponent as ɵca, SacTabItemComponent as ɵcb, SacTinyMceComponent as ɵcc, SacValidationSummaryComponent as ɵcd, SacWizardComponent as ɵce, SacWizardItemComponent as ɵcf, SacConfirmComponent as ɵd, SacDialogComponent as ɵe, SacButtonComponent as ɵf, SacContextmenuComponent as ɵg, SacContextmenuItemButtonComponent as ɵh, SacContextmenuItemSplitterComponent as ɵi, SacContextmenuAnchorDirective as ɵj, SacContextmenuContainerDirective as ɵk, SacUploadComponent as ɵl, SacUploadMultipleComponent as ɵm, SacDropzoneSingleComponent as ɵn, SacToControlHeightPipe as ɵo, SacToControlWidthCssPipe as ɵp, SacToLabelHeightPipe as ɵq, SacToLabelWidthCssPipe as ɵr, SacTooltipComponent as ɵs, SacCheckboxComponent as ɵt, SacRadiobuttonComponent as ɵu, SacRadiobuttonsComponent as ɵv, SacDateComponent as ɵw, SacDateTimeComponent as ɵx, SacTimeComponent as ɵy, SacDateSelectorComponent as ɵz };
2475
2562
  //# sourceMappingURL=simpleangularcontrols-sac-bootstrap4.js.map