ng-tailwind 4.3.34 → 4.4.35

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 (38) hide show
  1. package/components/ngt-action/ngt-action.component.d.ts +12 -9
  2. package/components/ngt-button/ngt-button.component.d.ts +11 -4
  3. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +9 -7
  4. package/components/ngt-date/ngt-date.component.d.ts +10 -4
  5. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +11 -3
  6. package/components/ngt-form/ngt-form.component.d.ts +11 -9
  7. package/components/ngt-input/ngt-input.component.d.ts +17 -9
  8. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +10 -3
  9. package/components/ngt-modal/ngt-modal.component.d.ts +9 -5
  10. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +10 -4
  11. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +10 -9
  12. package/components/ngt-section/ngt-section.component.d.ts +11 -7
  13. package/components/ngt-select/ngt-select.component.d.ts +10 -6
  14. package/esm2020/components/ngt-action/ngt-action.component.mjs +31 -39
  15. package/esm2020/components/ngt-button/ngt-button.component.mjs +37 -23
  16. package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +24 -36
  17. package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +3 -3
  18. package/esm2020/components/ngt-datatable/ngt-th/ngt-th.component.mjs +3 -3
  19. package/esm2020/components/ngt-date/ngt-date.component.mjs +41 -21
  20. package/esm2020/components/ngt-dropzone/ngt-dropzone.component.mjs +41 -15
  21. package/esm2020/components/ngt-form/ngt-form.component.mjs +24 -20
  22. package/esm2020/components/ngt-input/ngt-input.component.mjs +94 -66
  23. package/esm2020/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +21 -6
  24. package/esm2020/components/ngt-modal/ngt-modal.component.mjs +21 -9
  25. package/esm2020/components/ngt-multi-select/ngt-multi-select.component.mjs +50 -30
  26. package/esm2020/components/ngt-pagination/ngt-pagination.component.mjs +3 -3
  27. package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +33 -47
  28. package/esm2020/components/ngt-section/ngt-section.component.mjs +29 -16
  29. package/esm2020/components/ngt-select/ngt-select.component.mjs +39 -44
  30. package/esm2020/public-api.mjs +3 -1
  31. package/esm2020/services/validation/ngt-ability-validation.service.mjs +3 -0
  32. package/fesm2015/ng-tailwind.mjs +660 -561
  33. package/fesm2015/ng-tailwind.mjs.map +1 -1
  34. package/fesm2020/ng-tailwind.mjs +650 -554
  35. package/fesm2020/ng-tailwind.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/public-api.d.ts +1 -0
  38. package/services/validation/ngt-ability-validation.service.d.ts +5 -0
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { Directive, Input, NgModule, ElementRef, Component, ViewEncapsulation, ViewChild, Optional, EventEmitter, Host, Output, SkipSelf, Self, forwardRef, TemplateRef, ContentChild, HostBinding, HostListener } from '@angular/core';
5
5
  import * as i2$1 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, ControlContainer, NgForm, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import * as i2$2 from '@angular/router';
7
+ import * as i1$1 from '@angular/router';
8
8
  import { RouterModule } from '@angular/router';
9
9
  import { HttpClientModule } from '@angular/common/http';
10
10
  import * as i1 from 'angular-svg-icon';
@@ -12,18 +12,18 @@ import { SvgIconComponent, AngularSvgIconModule } from 'angular-svg-icon';
12
12
  import { Observable, zip, Subject, forkJoin } from 'rxjs';
13
13
  import { trigger, state, style, transition, animate } from '@angular/animations';
14
14
  import Inputmask from 'inputmask/dist/inputmask.es6.js';
15
- import * as i8 from '@ng-select/ng-select';
15
+ import * as i9 from '@ng-select/ng-select';
16
16
  import { NgSelectComponent, NgSelectModule } from '@ng-select/ng-select';
17
- import * as i5 from 'ng2-flatpickr';
17
+ import * as i7 from 'ng2-flatpickr';
18
18
  import { Ng2FlatpickrModule } from 'ng2-flatpickr';
19
19
  import { english } from 'flatpickr/dist/l10n/default.js';
20
20
  import { Portuguese } from 'flatpickr/dist/l10n/pt.js';
21
21
  import moment from 'moment';
22
22
  import * as i3 from 'eloverde-doc-viewer';
23
23
  import { EloverdeDocViewerComponent, EloverdeDocViewerModule } from 'eloverde-doc-viewer';
24
- import * as i5$1 from 'ngx-dropzone';
24
+ import * as i8 from 'ngx-dropzone';
25
25
  import { NgxDropzonePreviewComponent, NgxDropzoneComponent, NgxDropzoneModule } from 'ngx-dropzone';
26
- import * as i1$1 from '@angular/platform-browser';
26
+ import * as i1$2 from '@angular/platform-browser';
27
27
  import { map } from 'rxjs/operators';
28
28
  import Viewer from 'viewerjs';
29
29
 
@@ -39,6 +39,9 @@ class NgtHttpValidationService {
39
39
  class NgtHttpResourceService {
40
40
  }
41
41
 
42
+ class NgtAbilityValidationService {
43
+ }
44
+
42
45
  class NgtStylizableService {
43
46
  get color() {
44
47
  return this._color;
@@ -730,13 +733,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
730
733
  type: Input
731
734
  }] } });
732
735
 
736
+ ;
733
737
  class NgtFormComponent {
734
- constructor(formContainer, ngForm, router, route, ngtHttpFormService) {
735
- this.formContainer = formContainer;
736
- this.ngForm = ngForm;
738
+ constructor(router, route, formContainer, ngForm, changeDetector, ngtHttpFormService, ngtAbilityValidationService) {
737
739
  this.router = router;
738
740
  this.route = route;
741
+ this.formContainer = formContainer;
742
+ this.ngForm = ngForm;
743
+ this.changeDetector = changeDetector;
739
744
  this.ngtHttpFormService = ngtHttpFormService;
745
+ this.ngtAbilityValidationService = ngtAbilityValidationService;
740
746
  this.guessFormState = true;
741
747
  this.message = '';
742
748
  this.routeIdentifier = 'id';
@@ -744,7 +750,6 @@ class NgtFormComponent {
744
750
  this.onEditing = new EventEmitter;
745
751
  this.onLoadingChange = new EventEmitter;
746
752
  this.onShiningChange = new EventEmitter;
747
- this.onIsDisabledChange = new EventEmitter;
748
753
  this.setupComponent = new EventEmitter;
749
754
  this.onResourceLoadingError = new EventEmitter;
750
755
  this.subscriptions = [];
@@ -764,9 +769,10 @@ class NgtFormComponent {
764
769
  }
765
770
  }));
766
771
  }
767
- ngOnChanges(changes) {
768
- if (changes.isDisabled) {
769
- this.onIsDisabledChange.emit(changes.isDisabled.currentValue);
772
+ async ngAfterViewInit() {
773
+ if (this.isDisabled === undefined && this.ngtAbilityValidationService) {
774
+ this.isDisabled = !(await this.ngtAbilityValidationService.hasManagePermission());
775
+ this.changeDetector.detectChanges();
770
776
  }
771
777
  }
772
778
  ngOnDestroy() {
@@ -876,12 +882,12 @@ class NgtFormComponent {
876
882
  }
877
883
  }
878
884
  NgtFormComponent.onSubmitInvalidForm = new EventEmitter;
879
- NgtFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtFormComponent, deps: [{ token: i2$1.ControlContainer, host: true, optional: true }, { token: i2$1.NgForm, host: true, optional: true }, { token: i2$2.Router }, { token: i2$2.ActivatedRoute }, { token: NgtHttpFormService }], target: i0.ɵɵFactoryTarget.Component });
880
- NgtFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtFormComponent, selector: "ngt-form", inputs: { guessFormState: "guessFormState", message: "message", routeIdentifier: "routeIdentifier", resource: "resource", customLayout: "customLayout", isDisabled: "isDisabled" }, outputs: { onCreating: "onCreating", onEditing: "onEditing", onLoadingChange: "onLoadingChange", onShiningChange: "onShiningChange", onIsDisabledChange: "onIsDisabledChange", setupComponent: "setupComponent", onResourceLoadingError: "onResourceLoadingError" }, usesOnChanges: true, ngImport: i0, template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtFormValidationMessageComponent, selector: "ngt-form-validation-message", inputs: ["canShowValidationMessage", "message"] }] });
885
+ NgtFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtFormComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: i2$1.NgForm, host: true, optional: true }, { token: i0.ChangeDetectorRef }, { token: NgtHttpFormService }, { token: NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
886
+ NgtFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtFormComponent, selector: "ngt-form", inputs: { guessFormState: "guessFormState", message: "message", routeIdentifier: "routeIdentifier", resource: "resource", customLayout: "customLayout", isDisabled: "isDisabled" }, outputs: { onCreating: "onCreating", onEditing: "onEditing", onLoadingChange: "onLoadingChange", onShiningChange: "onShiningChange", setupComponent: "setupComponent", onResourceLoadingError: "onResourceLoadingError" }, ngImport: i0, template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtFormValidationMessageComponent, selector: "ngt-form-validation-message", inputs: ["canShowValidationMessage", "message"] }] });
881
887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtFormComponent, decorators: [{
882
888
  type: Component,
883
- args: [{ selector: 'ngt-form', template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>" }]
884
- }], ctorParameters: function () { return [{ type: i2$1.ControlContainer, decorators: [{
889
+ args: [{ selector: 'ngt-form', template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>" }]
890
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i2$1.ControlContainer, decorators: [{
885
891
  type: Optional
886
892
  }, {
887
893
  type: Host
@@ -889,7 +895,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
889
895
  type: Optional
890
896
  }, {
891
897
  type: Host
892
- }] }, { type: i2$2.Router }, { type: i2$2.ActivatedRoute }, { type: NgtHttpFormService }]; }, propDecorators: { guessFormState: [{
898
+ }] }, { type: i0.ChangeDetectorRef }, { type: NgtHttpFormService }, { type: NgtAbilityValidationService, decorators: [{
899
+ type: Optional
900
+ }] }]; }, propDecorators: { guessFormState: [{
893
901
  type: Input
894
902
  }], message: [{
895
903
  type: Input
@@ -909,8 +917,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
909
917
  type: Output
910
918
  }], onShiningChange: [{
911
919
  type: Output
912
- }], onIsDisabledChange: [{
913
- type: Output
914
920
  }], setupComponent: [{
915
921
  type: Output
916
922
  }], onResourceLoadingError: [{
@@ -1214,14 +1220,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1214
1220
  type: Input
1215
1221
  }] } });
1216
1222
 
1223
+ ;
1217
1224
  class NgtSectionComponent {
1218
- constructor(injector, ngtStylizableDirective) {
1225
+ constructor(injector, changeDetector, ngtStylizableDirective, ngtAbilityValidationService) {
1219
1226
  this.injector = injector;
1227
+ this.changeDetector = changeDetector;
1220
1228
  this.ngtStylizableDirective = ngtStylizableDirective;
1229
+ this.ngtAbilityValidationService = ngtAbilityValidationService;
1221
1230
  this.showSection = true;
1222
1231
  this.onRemove = new EventEmitter();
1223
1232
  this.onToggleSection = new EventEmitter();
1224
- this.onIsDisabledChange = new EventEmitter;
1225
1233
  this.ngtCaptionStyle = new NgtStylizableService();
1226
1234
  this.ngtSubtitleStyle = new NgtStylizableService();
1227
1235
  if (this.ngtStylizableDirective) {
@@ -1262,10 +1270,18 @@ class NgtSectionComponent {
1262
1270
  }
1263
1271
  });
1264
1272
  }
1265
- ngOnChanges(changes) {
1266
- if (changes.isDisabled) {
1267
- this.onIsDisabledChange.emit(changes.isDisabled.currentValue);
1273
+ async ngAfterViewInit() {
1274
+ if (!this.ngtAbilityValidationService || !this.name) {
1275
+ this.canDisplay = true;
1276
+ this.changeDetector.detectChanges();
1268
1277
  }
1278
+ if (this.ngtAbilityValidationService && this.name) {
1279
+ if (this.isDisabled === undefined) {
1280
+ this.isDisabled = !(await this.ngtAbilityValidationService.isSectionEnabled(this.name));
1281
+ }
1282
+ this.canDisplay = !(await this.ngtAbilityValidationService.isSectionHidden(this.name));
1283
+ }
1284
+ this.changeDetector.detectChanges();
1269
1285
  }
1270
1286
  open() {
1271
1287
  this.showSection = true;
@@ -1284,8 +1300,8 @@ class NgtSectionComponent {
1284
1300
  this.onRemove.emit();
1285
1301
  }
1286
1302
  }
1287
- NgtSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSectionComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
1288
- NgtSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSectionComponent, selector: "ngt-section", inputs: { icon: "icon", caption: "caption", subtitle: "subtitle", accordion: "accordion", showSection: "showSection", removable: "removable", helpTitle: "helpTitle", helpText: "helpText", helpIconColor: "helpIconColor", isDisabled: "isDisabled" }, outputs: { onRemove: "onRemove", onToggleSection: "onToggleSection", onIsDisabledChange: "onIsDisabledChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], animations: [
1303
+ NgtSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSectionComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1304
+ NgtSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSectionComponent, selector: "ngt-section", inputs: { name: "name", icon: "icon", caption: "caption", subtitle: "subtitle", accordion: "accordion", showSection: "showSection", removable: "removable", helpTitle: "helpTitle", helpText: "helpText", helpIconColor: "helpIconColor", isDisabled: "isDisabled" }, outputs: { onRemove: "onRemove", onToggleSection: "onToggleSection" }, ngImport: i0, template: "<div *ngIf=\"canDisplay\" class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], animations: [
1289
1305
  trigger('enterAnimation', [
1290
1306
  state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),
1291
1307
  transition(':enter', [
@@ -1302,12 +1318,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1302
1318
  animate(400)
1303
1319
  ])
1304
1320
  ]),
1305
- ], template: "<div class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>" }]
1306
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
1321
+ ], template: "<div *ngIf=\"canDisplay\" class=\"flex mb-6\">\n <ngt-svg *ngIf=\"icon\" [src]='icon'\n class=\"hidden md:block {{ ngtSectionStyle.compile(['color.text', 'h', 'w', 'my', 'pr']) }}\">\n </ngt-svg>\n\n <div\n class=\"w-full pb-4 md:pb-0 border-b-4 md:border-b-0 border-dashed md:border-solid md:border-l {{ accordion && !showSection ? 'flex' : '' }}\">\n <div *ngIf=\"!accordion && caption\" class=\"flex\">\n <span class=\"pl-5 {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n class=\"self-center {{ ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml']) }}\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1 hover:opacity-100 opacity-100\"\n [iconColor]=\"helpIconColor\">\n {{ helpText }}\n </ngt-helper>\n </div>\n\n <ng-container *ngIf=\"accordion\">\n <div class=\"flex flex-wrap items-center px-5 cursor-pointer {{ helpText ? '' : 'hover:opacity-75' }} {{ accordion && showSection ? ngtCaptionStyle.compile(['pb']) : ngtCaptionStyle.compile(['py']) }}\"\n (click)='toggle()' style=\"max-width: fit-content;\">\n <div *ngIf=\"!showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 4.59l9.18 9.16 9.18 -9.16 2.82 2.82 -12 12 -12 -12 2.82 -2.82z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showSection\"\n class=\"flex {{ ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font']) }}\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M2.82 19.41l9.18 -9.16 9.18 9.16 2.82 -2.82 -12 -12 -12 12 2.82 2.82z\" />\n </svg>\n </div>\n\n <span [class]=\"ngtCaptionStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ caption }}\n </span>\n\n <span *ngIf=\"subtitle\"\n [class]=\"ngtSubtitleStyle.compile(['color.text', 'color.border', 'text', 'border', 'font', 'ml'])\">\n {{ subtitle }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" class=\"ml-1\" [iconColor]=\"helpIconColor\"\n class=\"ml-1 hover:opacity-100 opacity-100\">\n {{ helpText }}\n </ngt-helper>\n\n <div *ngIf=\"removable\"\n class=\"flex items-center justify-center h-8 w-8 ml-2 rounded-full hover:bg-red-500 hover:text-white text-gray-600 text-xl\"\n (click)='remove($event)'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M4 21.33c0,1.47 1.2,2.67 2.67,2.67l10.66 0c1.47,0 2.67,-1.2 2.67,-2.67l0 -16 -16 0 0 16zm17.33 -20l-4.66 0 -1.34 -1.33 -6.66 0 -1.34 1.33 -4.66 0 0 2.67 18.66 0 0 -2.67z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf='showSection' class=\"{{ ngtSectionStyle.compile(['px']) }}\" [@enterAnimation]='!showSection'>\n <fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n </fieldset>\n </div>\n </div>\n</div>" }]
1322
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: NgtStylizableDirective, decorators: [{
1307
1323
  type: Self
1308
1324
  }, {
1309
1325
  type: Optional
1310
- }] }]; }, propDecorators: { icon: [{
1326
+ }] }, { type: NgtAbilityValidationService, decorators: [{
1327
+ type: Optional
1328
+ }] }]; }, propDecorators: { name: [{
1329
+ type: Input
1330
+ }], icon: [{
1311
1331
  type: Input
1312
1332
  }], caption: [{
1313
1333
  type: Input
@@ -1331,17 +1351,191 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1331
1351
  type: Output
1332
1352
  }], onToggleSection: [{
1333
1353
  type: Output
1334
- }], onIsDisabledChange: [{
1354
+ }] } });
1355
+
1356
+ class NgtModalHeaderComponent {
1357
+ constructor(injector, tailStylizableDirective) {
1358
+ this.injector = injector;
1359
+ this.tailStylizableDirective = tailStylizableDirective;
1360
+ if (this.tailStylizableDirective) {
1361
+ this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
1362
+ }
1363
+ else {
1364
+ this.ngtStyle = new NgtStylizableService();
1365
+ }
1366
+ this.ngtStyle.load(this.injector, 'NgtModalHeader', {
1367
+ pb: 'pb-3',
1368
+ color: {}
1369
+ });
1370
+ }
1371
+ emitOnCloseEvent() {
1372
+ NgtModalHeaderComponent.onCloseModalByHeader.emit();
1373
+ }
1374
+ }
1375
+ NgtModalHeaderComponent.onCloseModalByHeader = new EventEmitter();
1376
+ NgtModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
1377
+ NgtModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: { disableDefaultCloses: "disableDefaultCloses" }, ngImport: i0, template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, decorators: [{
1379
+ type: Component,
1380
+ args: [{ selector: 'ngt-modal-header', template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>" }]
1381
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
1382
+ type: Self
1383
+ }, {
1384
+ type: Optional
1385
+ }] }]; }, propDecorators: { disableDefaultCloses: [{
1386
+ type: Input
1387
+ }] } });
1388
+
1389
+ class NgtModalBodyComponent {
1390
+ constructor(changeDetector, ngtAbilityValidationService) {
1391
+ this.changeDetector = changeDetector;
1392
+ this.ngtAbilityValidationService = ngtAbilityValidationService;
1393
+ }
1394
+ async ngAfterViewInit() {
1395
+ if (this.isDisabled === undefined && this.ngtAbilityValidationService) {
1396
+ this.isDisabled = !(await this.ngtAbilityValidationService.hasManagePermission());
1397
+ this.changeDetector.detectChanges();
1398
+ }
1399
+ }
1400
+ }
1401
+ NgtModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1402
+ NgtModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalBodyComponent, selector: "ngt-modal-body", inputs: { isDisabled: "isDisabled" }, ngImport: i0, template: "<fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>" });
1403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, decorators: [{
1404
+ type: Component,
1405
+ args: [{ selector: 'ngt-modal-body', template: "<fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ng-content></ng-content>\n</fieldset>" }]
1406
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NgtAbilityValidationService, decorators: [{
1407
+ type: Optional
1408
+ }] }]; }, propDecorators: { isDisabled: [{
1409
+ type: Input
1410
+ }] } });
1411
+
1412
+ class NgtModalFooterComponent {
1413
+ }
1414
+ NgtModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1415
+ NgtModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalFooterComponent, selector: "ngt-modal-footer", ngImport: i0, template: "<div class=\"flex w-full py-1\">\n <ng-content></ng-content>\n</div>" });
1416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalFooterComponent, decorators: [{
1417
+ type: Component,
1418
+ args: [{ selector: 'ngt-modal-footer', template: "<div class=\"flex w-full py-1\">\n <ng-content></ng-content>\n</div>" }]
1419
+ }] });
1420
+
1421
+ class NgtModalComponent {
1422
+ constructor(changeDetectorRef, injector, tailStylizableDirective, ngtAbilityValidationService) {
1423
+ this.changeDetectorRef = changeDetectorRef;
1424
+ this.injector = injector;
1425
+ this.tailStylizableDirective = tailStylizableDirective;
1426
+ this.ngtAbilityValidationService = ngtAbilityValidationService;
1427
+ this.customLayout = false;
1428
+ this.disableDefaultCloses = false;
1429
+ this.onCloseModal = new EventEmitter();
1430
+ this.onOpenModal = new EventEmitter();
1431
+ this.isOpen = false;
1432
+ this.viewMode = false;
1433
+ this.keydownEventWasAdded = false;
1434
+ this.subscriptions = [];
1435
+ if (this.tailStylizableDirective) {
1436
+ this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
1437
+ }
1438
+ else {
1439
+ this.ngtStyle = new NgtStylizableService();
1440
+ }
1441
+ this.ngtStyle.load(this.injector, 'NgtModal', {
1442
+ w: 'md:max-w-md',
1443
+ py: 'py-4',
1444
+ px: 'px-6',
1445
+ overflow: 'overflow-visible',
1446
+ color: {}
1447
+ });
1448
+ }
1449
+ async ngAfterViewInit() {
1450
+ if (this.isDisabled === undefined && this.ngtAbilityValidationService) {
1451
+ this.isDisabled = !(await this.ngtAbilityValidationService.hasManagePermission());
1452
+ this.changeDetectorRef.detectChanges();
1453
+ }
1454
+ }
1455
+ close() {
1456
+ this.isOpen = false;
1457
+ this.changeDetectorRef.detectChanges();
1458
+ this.destroySubscriptions();
1459
+ this.onCloseModal.emit();
1460
+ }
1461
+ open() {
1462
+ this.isOpen = true;
1463
+ this.changeDetectorRef.detectChanges();
1464
+ this.addKeydownEventListener();
1465
+ this.bindOnCloseModalByHeaderSubscription();
1466
+ this.onOpenModal.emit();
1467
+ }
1468
+ addKeydownEventListener() {
1469
+ if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {
1470
+ this.keydownEventWasAdded = true;
1471
+ window.addEventListener('keydown', (event) => {
1472
+ if (event.keyCode == 27) {
1473
+ if (this.viewMode) {
1474
+ this.closeViewMode();
1475
+ event.stopPropagation();
1476
+ }
1477
+ }
1478
+ }, true);
1479
+ }
1480
+ }
1481
+ bindOnCloseModalByHeaderSubscription() {
1482
+ this.subscriptions.push(NgtModalHeaderComponent.onCloseModalByHeader.subscribe(() => this.close()));
1483
+ }
1484
+ destroySubscriptions() {
1485
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
1486
+ this.subscriptions = [];
1487
+ }
1488
+ closeViewMode() {
1489
+ this.viewMode = false;
1490
+ }
1491
+ }
1492
+ NgtModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1493
+ NgtModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalComponent, selector: "ngt-modal", inputs: { customLayout: "customLayout", disableDefaultCloses: "disableDefaultCloses", isDisabled: "isDisabled", ngtStyle: "ngtStyle" }, outputs: { onCloseModal: "onCloseModal", onOpenModal: "onOpenModal" }, ngImport: i0, template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow']) }} relative border border-teal-500 bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ngt-modal-body [isDisabled]=\"isDisabled\">\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </fieldset>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["isDisabled"] }, { kind: "component", type: NgtModalFooterComponent, selector: "ngt-modal-footer" }], animations: [
1494
+ trigger('fade', [
1495
+ state('void', style({ opacity: 0 })),
1496
+ transition(':enter, :leave', [
1497
+ animate(300)
1498
+ ])
1499
+ ])
1500
+ ] });
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalComponent, decorators: [{
1502
+ type: Component,
1503
+ args: [{ selector: 'ngt-modal', animations: [
1504
+ trigger('fade', [
1505
+ state('void', style({ opacity: 0 })),
1506
+ transition(':enter, :leave', [
1507
+ animate(300)
1508
+ ])
1509
+ ])
1510
+ ], template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow']) }} relative border border-teal-500 bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <fieldset class=\"w-full\" [disabled]=\"isDisabled\">\n <ngt-modal-body [isDisabled]=\"isDisabled\">\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </fieldset>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>" }]
1511
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
1512
+ type: Self
1513
+ }, {
1514
+ type: Optional
1515
+ }] }, { type: NgtAbilityValidationService, decorators: [{
1516
+ type: Optional
1517
+ }] }]; }, propDecorators: { customLayout: [{
1518
+ type: Input
1519
+ }], disableDefaultCloses: [{
1520
+ type: Input
1521
+ }], isDisabled: [{
1522
+ type: Input
1523
+ }], ngtStyle: [{
1524
+ type: Input
1525
+ }], onCloseModal: [{
1526
+ type: Output
1527
+ }], onOpenModal: [{
1335
1528
  type: Output
1336
1529
  }] } });
1337
1530
 
1338
1531
  class NgtActionComponent {
1339
- constructor(injector, changeDetector, ngtStylizableDirective, ngtForm, ngtSection) {
1532
+ constructor(injector, ngtStylizableDirective, ngtForm, ngtSection, ngtModal, ngtModalBody) {
1340
1533
  this.injector = injector;
1341
- this.changeDetector = changeDetector;
1342
1534
  this.ngtStylizableDirective = ngtStylizableDirective;
1343
1535
  this.ngtForm = ngtForm;
1344
1536
  this.ngtSection = ngtSection;
1537
+ this.ngtModal = ngtModal;
1538
+ this.ngtModalBody = ngtModalBody;
1345
1539
  this.subscriptions = [];
1346
1540
  if (this.ngtStylizableDirective) {
1347
1541
  this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
@@ -1361,54 +1555,33 @@ class NgtActionComponent {
1361
1555
  border: 'border-0',
1362
1556
  });
1363
1557
  }
1364
- ngAfterViewInit() {
1365
- this.bindSubscriptions();
1366
- }
1367
- ngOnChanges(changes) {
1368
- if (changes.isDisabled && !changes.isDisabled.currentValue) {
1369
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
1370
- }
1371
- }
1372
1558
  ngOnDestroy() {
1373
1559
  this.destroySubscriptions();
1374
1560
  }
1375
1561
  onClick(event) {
1376
- if (this.isDisabled) {
1562
+ if (this.disabled()) {
1377
1563
  event.stopPropagation();
1378
1564
  }
1379
1565
  }
1380
- bindSubscriptions() {
1381
- this.changeDetector.detectChanges();
1382
- if (!this.isDisabled) {
1383
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
1384
- }
1385
- if (this.ngtForm) {
1386
- this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
1387
- if (!this.isDisabled) {
1388
- this.isDisabled = isDisabled || this.ngtSection?.isDisabled;
1389
- }
1390
- }));
1391
- }
1392
- if (this.ngtSection) {
1393
- this.subscriptions.push(this.ngtSection.onIsDisabledChange.subscribe((isDisabled) => {
1394
- if (!this.isDisabled) {
1395
- this.isDisabled = isDisabled || this.ngtForm?.isDisabled;
1396
- }
1397
- }));
1398
- }
1399
- this.changeDetector.detectChanges();
1566
+ disabled() {
1567
+ return !this.forceEnable && (this.isDisabled || this.isDisabledByParent());
1568
+ }
1569
+ isDisabledByParent() {
1570
+ return this.ngtForm?.isDisabled
1571
+ || this.ngtSection?.isDisabled
1572
+ || this.ngtModal?.isDisabled;
1400
1573
  }
1401
1574
  destroySubscriptions() {
1402
1575
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
1403
1576
  this.subscriptions = [];
1404
1577
  }
1405
1578
  }
1406
- NgtActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtActionComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
1407
- NgtActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtActionComponent, selector: "ngt-action", inputs: { href: "href", icon: "icon", ngtStyle: "ngtStyle", isDisabled: "isDisabled" }, usesOnChanges: true, ngImport: i0, template: "<a *ngIf=\"href\"\n [class]=\"isDisabled ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n [routerLink]=\"href\" (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\">\n </ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n\n<a *ngIf=\"!href\"\n [class]=\"isDisabled ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text', 'border', 'color.border']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\"></ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }] });
1579
+ NgtActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtActionComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }, { token: NgtModalBodyComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
1580
+ NgtActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtActionComponent, selector: "ngt-action", inputs: { href: "href", icon: "icon", ngtStyle: "ngtStyle", isDisabled: "isDisabled", forceEnable: "forceEnable" }, ngImport: i0, template: "<a *ngIf=\"href\"\n [class]=\"disabled() ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n [routerLink]=\"href\" (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\">\n </ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n\n<a *ngIf=\"!href\"\n [class]=\"disabled() ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text', 'border', 'color.border']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\"></ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }] });
1408
1581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtActionComponent, decorators: [{
1409
1582
  type: Component,
1410
- args: [{ selector: 'ngt-action', template: "<a *ngIf=\"href\"\n [class]=\"isDisabled ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n [routerLink]=\"href\" (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\">\n </ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n\n<a *ngIf=\"!href\"\n [class]=\"isDisabled ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text', 'border', 'color.border']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\"></ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n" }]
1411
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: NgtStylizableDirective, decorators: [{
1583
+ args: [{ selector: 'ngt-action', template: "<a *ngIf=\"href\"\n [class]=\"disabled() ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n [routerLink]=\"href\" (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\">\n </ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>\n\n<a *ngIf=\"!href\"\n [class]=\"disabled() ? 'block rounded-full cursor-not-allowed text-gray-600 bg-gray-400 hover:bg-gray-400 opacity-50' : 'cursor-pointer'\"\n (click)='onClick($event)'>\n <div\n class=\"flex justify-center rounded-full {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py', 'shadow', 'text', 'border', 'color.border']) }}\">\n <ngt-svg [src]=\"icon\" class='self-center' *ngIf=\"icon\"></ngt-svg>\n <div class=\"self-center\">\n <ng-content></ng-content>\n </div>\n </div>\n</a>" }]
1584
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
1412
1585
  type: Self
1413
1586
  }, {
1414
1587
  type: Optional
@@ -1420,6 +1593,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1420
1593
  type: Optional
1421
1594
  }, {
1422
1595
  type: SkipSelf
1596
+ }] }, { type: NgtModalComponent, decorators: [{
1597
+ type: Optional
1598
+ }, {
1599
+ type: SkipSelf
1600
+ }] }, { type: NgtModalBodyComponent, decorators: [{
1601
+ type: Optional
1602
+ }, {
1603
+ type: SkipSelf
1423
1604
  }] }]; }, propDecorators: { href: [{
1424
1605
  type: Input
1425
1606
  }], icon: [{
@@ -1428,6 +1609,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1428
1609
  type: Input
1429
1610
  }], isDisabled: [{
1430
1611
  type: Input
1612
+ }], forceEnable: [{
1613
+ type: Input
1431
1614
  }] } });
1432
1615
 
1433
1616
  class NgtActionModule {
@@ -1631,15 +1814,15 @@ function NgtMakeProvider(type) {
1631
1814
  }
1632
1815
 
1633
1816
  class NgtCheckboxComponent extends NgtBaseNgModel {
1634
- constructor(changeDetector, injector, formContainer, renderer, ngtStylizableDirective, ngtForm, ngtSection) {
1817
+ constructor(injector, renderer, formContainer, ngtStylizableDirective, ngtForm, ngtSection, ngtModal) {
1635
1818
  super();
1636
- this.changeDetector = changeDetector;
1637
1819
  this.injector = injector;
1638
- this.formContainer = formContainer;
1639
1820
  this.renderer = renderer;
1821
+ this.formContainer = formContainer;
1640
1822
  this.ngtStylizableDirective = ngtStylizableDirective;
1641
1823
  this.ngtForm = ngtForm;
1642
1824
  this.ngtSection = ngtSection;
1825
+ this.ngtModal = ngtModal;
1643
1826
  this.shining = false;
1644
1827
  this.isDisabled = false;
1645
1828
  this.isClickDisabled = false;
@@ -1669,15 +1852,11 @@ class NgtCheckboxComponent extends NgtBaseNgModel {
1669
1852
  this.renderer.listen(this.element.nativeElement, 'change', (value) => {
1670
1853
  this.onNativeChange(this.element.nativeElement.checked);
1671
1854
  });
1672
- this.bindSubscriptions();
1673
1855
  }
1674
1856
  ngOnChanges(changes) {
1675
1857
  if (changes.mode) {
1676
1858
  this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);
1677
1859
  }
1678
- if (changes.isDisabled && !changes.isDisabled.currentValue) {
1679
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
1680
- }
1681
1860
  }
1682
1861
  ngOnDestroy() {
1683
1862
  this.destroySubscriptions();
@@ -1707,36 +1886,23 @@ class NgtCheckboxComponent extends NgtBaseNgModel {
1707
1886
  isRadioMode() {
1708
1887
  return this.mode === NgtCheckboxMode.RADIO;
1709
1888
  }
1710
- bindSubscriptions() {
1711
- this.changeDetector.detectChanges();
1712
- if (!this.isDisabled) {
1713
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
1714
- }
1715
- if (this.ngtForm) {
1716
- this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
1717
- if (!this.isDisabled) {
1718
- this.isDisabled = isDisabled || this.ngtSection?.isDisabled;
1719
- }
1720
- }));
1721
- }
1722
- if (this.ngtSection) {
1723
- this.subscriptions.push(this.ngtSection.onIsDisabledChange.subscribe((isDisabled) => {
1724
- if (!this.isDisabled) {
1725
- this.isDisabled = isDisabled || this.ngtForm?.isDisabled;
1726
- }
1727
- }));
1728
- }
1729
- this.changeDetector.detectChanges();
1889
+ disabled() {
1890
+ return this.isDisabled || this.isDisabledByParent();
1891
+ }
1892
+ isDisabledByParent() {
1893
+ return this.ngtForm?.isDisabled
1894
+ || this.ngtSection?.isDisabled
1895
+ || this.ngtModal?.isDisabled;
1730
1896
  }
1731
1897
  destroySubscriptions() {
1732
1898
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
1733
1899
  this.subscriptions = [];
1734
1900
  }
1735
1901
  }
1736
- NgtCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
1902
+ NgtCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
1737
1903
  NgtCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", isClickDisabled: "isClickDisabled", name: "name", mode: "mode", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText", helperAutoXReverse: "helperAutoXReverse" }, providers: [
1738
1904
  NgtMakeProvider(NgtCheckboxComponent)
1739
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
1905
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"flex items-center {{ disabled() ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"disabled() || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
1740
1906
  { provide: ControlContainer, useExisting: NgForm }
1741
1907
  ], animations: [
1742
1908
  trigger('slideLeftToRight', [
@@ -1771,12 +1937,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1771
1937
  animate(200)
1772
1938
  ])
1773
1939
  ])
1774
- ], template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>" }]
1775
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i2$1.ControlContainer, decorators: [{
1940
+ ], template: "<label class=\"flex items-center {{ disabled() ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"disabled() || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>" }]
1941
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i2$1.ControlContainer, decorators: [{
1776
1942
  type: Optional
1777
1943
  }, {
1778
1944
  type: Host
1779
- }] }, { type: i0.Renderer2 }, { type: NgtStylizableDirective, decorators: [{
1945
+ }] }, { type: NgtStylizableDirective, decorators: [{
1780
1946
  type: Self
1781
1947
  }, {
1782
1948
  type: Optional
@@ -1788,6 +1954,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1788
1954
  type: Optional
1789
1955
  }, {
1790
1956
  type: SkipSelf
1957
+ }] }, { type: NgtModalComponent, decorators: [{
1958
+ type: Optional
1959
+ }, {
1960
+ type: SkipSelf
1791
1961
  }] }]; }, propDecorators: { element: [{
1792
1962
  type: ViewChild,
1793
1963
  args: ['element', { static: true }]
@@ -1928,16 +2098,19 @@ function removeInputMask(element) {
1928
2098
  }
1929
2099
 
1930
2100
  class NgtInputComponent extends NgtBaseNgModel {
1931
- constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent, renderer, ngtValidationService, ngtResourceService, changeDetector, ngtTranslateService) {
2101
+ constructor(injector, renderer, changeDetector, ngtStylizableDirective, formContainer, ngtFormComponent, ngtValidationService, ngtResourceService, ngtForm, ngtSection, ngtModal, ngtTranslateService) {
1932
2102
  super();
1933
2103
  this.injector = injector;
2104
+ this.renderer = renderer;
2105
+ this.changeDetector = changeDetector;
1934
2106
  this.ngtStylizableDirective = ngtStylizableDirective;
1935
2107
  this.formContainer = formContainer;
1936
2108
  this.ngtFormComponent = ngtFormComponent;
1937
- this.renderer = renderer;
1938
2109
  this.ngtValidationService = ngtValidationService;
1939
2110
  this.ngtResourceService = ngtResourceService;
1940
- this.changeDetector = changeDetector;
2111
+ this.ngtForm = ngtForm;
2112
+ this.ngtSection = ngtSection;
2113
+ this.ngtModal = ngtModal;
1941
2114
  this.ngtTranslateService = ngtTranslateService;
1942
2115
  this.placeholder = '';
1943
2116
  this.helpTextColor = 'text-green-500';
@@ -1975,22 +2148,25 @@ class NgtInputComponent extends NgtBaseNgModel {
1975
2148
  }
1976
2149
  });
1977
2150
  }
1978
- setFocus() {
1979
- setTimeout(() => {
1980
- this.element.nativeElement.focus();
1981
- }, 200);
1982
- }
1983
- hasFocus() {
1984
- return document.activeElement === this.element.nativeElement;
1985
- }
1986
- clearInput(event) {
1987
- if (event) {
1988
- event.stopPropagation();
2151
+ ngOnInit() {
2152
+ if (!this.formContainer) {
2153
+ console.error("The element must be inside a <form #form='ngForm'> tag!", this.element.nativeElement);
1989
2154
  }
1990
- this.element.nativeElement.value = '';
1991
- this.value = '';
1992
- this.markAsPristine();
1993
- }
2155
+ if (!this.name) {
2156
+ console.error("The element must contain a name attribute!", this.element.nativeElement);
2157
+ }
2158
+ else {
2159
+ setTimeout(() => {
2160
+ this.componentReady = true;
2161
+ setTimeout(() => {
2162
+ this.initComponent();
2163
+ if (!this.getElementTitle() || this.getElementTitle() === 'null') {
2164
+ this.element.nativeElement.parentElement.parentElement.title = '';
2165
+ }
2166
+ });
2167
+ }, 500);
2168
+ }
2169
+ }
1994
2170
  ngOnChanges(changes) {
1995
2171
  this.setupMasks(changes.mask ? changes.mask.previousValue : null);
1996
2172
  if (changes.match || changes.isRequired || changes.type || changes.mask || changes.minValue) {
@@ -2037,24 +2213,29 @@ class NgtInputComponent extends NgtBaseNgModel {
2037
2213
  this.searchExistingResource();
2038
2214
  }
2039
2215
  }
2040
- ngOnInit() {
2041
- if (!this.formContainer) {
2042
- console.error("The element must be inside a <form #form='ngForm'> tag!", this.element.nativeElement);
2043
- }
2044
- if (!this.name) {
2045
- console.error("The element must contain a name attribute!", this.element.nativeElement);
2046
- }
2047
- else {
2048
- setTimeout(() => {
2049
- this.componentReady = true;
2050
- setTimeout(() => {
2051
- this.initComponent();
2052
- if (!this.getElementTitle() || this.getElementTitle() === 'null') {
2053
- this.element.nativeElement.parentElement.parentElement.title = '';
2054
- }
2055
- });
2056
- }, 500);
2216
+ setFocus() {
2217
+ setTimeout(() => {
2218
+ this.element.nativeElement.focus();
2219
+ }, 200);
2220
+ }
2221
+ clearInput(event) {
2222
+ if (event) {
2223
+ event.stopPropagation();
2057
2224
  }
2225
+ this.element.nativeElement.value = '';
2226
+ this.value = '';
2227
+ this.markAsPristine();
2228
+ }
2229
+ restorePlaceholder() {
2230
+ setTimeout(() => this.element.nativeElement.placeholder = this.placeholder);
2231
+ }
2232
+ showPassword() {
2233
+ this.element.nativeElement.type = 'text';
2234
+ this.changeDetector.detectChanges();
2235
+ }
2236
+ hidePassword() {
2237
+ this.element.nativeElement.type = 'password';
2238
+ this.changeDetector.detectChanges();
2058
2239
  }
2059
2240
  getInputPaddings() {
2060
2241
  let paddingClass = '';
@@ -2074,14 +2255,6 @@ class NgtInputComponent extends NgtBaseNgModel {
2074
2255
  }
2075
2256
  return paddingClass;
2076
2257
  }
2077
- showPassword() {
2078
- this.element.nativeElement.type = 'text';
2079
- this.changeDetector.detectChanges();
2080
- }
2081
- hidePassword() {
2082
- this.element.nativeElement.type = 'password';
2083
- this.changeDetector.detectChanges();
2084
- }
2085
2258
  getRemainingCharacters() {
2086
2259
  if (this.element?.nativeElement?.value?.length) {
2087
2260
  if ((this.maxTotalCharsCount - this.element.nativeElement.value.length) > 0) {
@@ -2093,6 +2266,12 @@ class NgtInputComponent extends NgtBaseNgModel {
2093
2266
  }
2094
2267
  return this.maxTotalCharsCount;
2095
2268
  }
2269
+ hasFocus() {
2270
+ return document.activeElement === this.element.nativeElement;
2271
+ }
2272
+ disabled() {
2273
+ return this.isDisabled || this.isDisabledByParent();
2274
+ }
2096
2275
  initComponent() {
2097
2276
  if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {
2098
2277
  if (this.focus) {
@@ -2194,21 +2373,21 @@ class NgtInputComponent extends NgtBaseNgModel {
2194
2373
  let masks = {
2195
2374
  [InputMaskEnum.CPF]: {
2196
2375
  mask: ['999.999.999-99'],
2197
- clearMaskOnLostFocus: false
2376
+ showMaskOnHover: false
2198
2377
  },
2199
2378
  [InputMaskEnum.CNPJ]: {
2200
2379
  mask: ['99.999.999/9999-99'],
2201
- clearMaskOnLostFocus: false
2380
+ showMaskOnHover: false
2202
2381
  },
2203
2382
  [InputMaskEnum.CPF_CNPJ_RUT]: {
2204
2383
  mask: ['999.999.999-99', '999999999999', '99.999.999/9999-99'],
2205
2384
  keepStatic: true,
2206
- clearMaskOnLostFocus: false
2385
+ showMaskOnHover: false
2207
2386
  },
2208
2387
  [InputMaskEnum.CPF_CNPJ]: {
2209
2388
  mask: ['999.999.999-99', '99.999.999/9999-99'],
2210
2389
  keepStatic: true,
2211
- clearMaskOnLostFocus: false
2390
+ showMaskOnHover: false
2212
2391
  },
2213
2392
  [InputMaskEnum.DECIMAL]: {
2214
2393
  digits: this.decimalMaskPrecision,
@@ -2218,36 +2397,36 @@ class NgtInputComponent extends NgtBaseNgModel {
2218
2397
  repeat: 16,
2219
2398
  rightAlign: false,
2220
2399
  max: this.maxValue,
2221
- clearMaskOnLostFocus: false
2400
+ showMaskOnHover: false
2222
2401
  },
2223
2402
  [InputMaskEnum.CELLPHONE]: {
2224
2403
  mask: ['(99) 999-999', '(99) 9999-9999', '(99) 99999-9999'],
2225
2404
  keepStatic: true,
2226
- clearMaskOnLostFocus: false
2405
+ showMaskOnHover: false
2227
2406
  },
2228
2407
  [InputMaskEnum.INTERNATIONAL_PHONE]: {
2229
2408
  mask: ['+999 99 999-999', '+99 (99) 9999-9999', '+99 (99) 99999-9999', '+999 (99) 9999-9999', '+999 (99) 99999-9999'],
2230
2409
  keepStatic: true,
2231
- clearMaskOnLostFocus: false
2410
+ showMaskOnHover: false
2232
2411
  },
2233
2412
  [InputMaskEnum.PLATE]: {
2234
2413
  mask: ['AAA-9&99'],
2235
2414
  keepStatic: true,
2236
- clearMaskOnLostFocus: false
2415
+ showMaskOnHover: false
2237
2416
  },
2238
2417
  [InputMaskEnum.CEP]: {
2239
2418
  mask: ['99999-999'],
2240
- clearMaskOnLostFocus: false
2419
+ showMaskOnHover: false
2241
2420
  },
2242
2421
  [InputMaskEnum.INTEGER]: {
2243
2422
  max: this.maxValue,
2244
2423
  min: this.validateMinValueOnMask ? this.minValue : undefined,
2245
2424
  rightAlign: false,
2246
- clearMaskOnLostFocus: false
2425
+ showMaskOnHover: false
2247
2426
  },
2248
2427
  [InputMaskEnum.NUMERIC_STRING]: {
2249
2428
  regex: "[0-9]*",
2250
- clearMaskOnLostFocus: false
2429
+ showMaskOnHover: false
2251
2430
  },
2252
2431
  [InputMaskEnum.TIME]: '99:99',
2253
2432
  };
@@ -2564,15 +2743,20 @@ class NgtInputComponent extends NgtBaseNgModel {
2564
2743
  hasPasswordValidation() {
2565
2744
  return typeof this.ngtValidationService?.passwordValidation === 'function';
2566
2745
  }
2746
+ isDisabledByParent() {
2747
+ return this.ngtForm?.isDisabled
2748
+ || this.ngtSection?.isDisabled
2749
+ || this.ngtModal?.isDisabled;
2750
+ }
2567
2751
  destroySubscriptions() {
2568
2752
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
2569
2753
  this.subscriptions = [];
2570
2754
  }
2571
2755
  }
2572
- NgtInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: i0.Renderer2 }, { token: NgtHttpValidationService, optional: true, skipSelf: true }, { token: NgtHttpResourceService, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2756
+ NgtInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtHttpValidationService, optional: true, skipSelf: true }, { token: NgtHttpResourceService, optional: true, skipSelf: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2573
2757
  NgtInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtInputComponent, selector: "ngt-input", inputs: { label: "label", placeholder: "placeholder", shining: "shining", loading: "loading", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText", innerLeftIcon: "innerLeftIcon", innerLeftIconColor: "innerLeftIconColor", innerRightIcon: "innerRightIcon", innerRightIconColor: "innerRightIconColor", decimalMaskPrecision: "decimalMaskPrecision", showCharactersLength: "showCharactersLength", uppercase: "uppercase", isDisabled: "isDisabled", isReadonly: "isReadonly", showRoundedIcon: "showRoundedIcon", type: "type", name: "name", mask: "mask", focus: "focus", allowClear: "allowClear", jit: "jit", findExistingResource: "findExistingResource", allowPhoneValidation: "allowPhoneValidation", validatePassword: "validatePassword", passwordableId: "passwordableId", passwordPolicyId: "passwordPolicyId", isRequired: "isRequired", uniqueResource: "uniqueResource", minValue: "minValue", maxValue: "maxValue", maxLength: "maxLength", minLength: "minLength", match: "match", multipleOf: "multipleOf", validateMinValueOnMask: "validateMinValueOnMask", externalServerDependency: "externalServerDependency", helperReverseYPosition: "helperReverseYPosition", helperAutoXReverse: "helperAutoXReverse" }, outputs: { onClickLeftIcon: "onClickLeftIcon", onClickRightIcon: "onClickRightIcon", validatePhoneResult: "validatePhoneResult" }, providers: [
2574
2758
  NgtMakeProvider(NgtInputComponent),
2575
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label\" class=\"mb-2 flex {{ ngtStyle.compile(['color.text', 'text', 'fontCase']) }}\" [hidden]='shining'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n <span [innerHtml]=\"helpText\"></span>\n </ngt-helper>\n</label>\n\n<div class=\"{{ shining ? 'hidden' : 'flex relative'}}\">\n <input autocomplete=\"new-password\"\n class=\"flex border appearance-none focus:outline-none leading-tight w-full {{ getInputPaddings() }} {{ ngtStyle.compile(['h', 'text', 'color.border', 'color.bg', 'color.text', 'rounded', 'cursor']) }}\"\n [disabled]=\"isDisabled\" [readonly]=\"isReadonly || loading\" [placeholder]=\"placeholder\"\n [style]=\"uppercase ? 'text-transform: uppercase!important':''\"\n [ngClass]=\"{'input-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\n [attr.type]=\"inputProperties.htmlType\" #element>\n <span *ngIf=\"innerLeftIcon\"\n class=\"absolute self-center px-2 {{ innerLeftIconColor }} {{ onClickLeftIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickLeftIcon.emit()\">\n\n <ngt-svg *ngIf=\"!showRoundedIcon\" class=\"fill-current\" [src]='innerLeftIcon'></ngt-svg>\n <img *ngIf=\"showRoundedIcon\" class=\"rounded-full h-6\" [src]='innerLeftIcon'>\n </span>\n\n <div class=\"flex absolute h-full justify-end right-0 w-auto\">\n <span *ngIf=\"allowClear && value && !loading\" class=\"self-center right-0 px-2 text-red-400 cursor-pointer\"\n (click)='clearInput($event)'>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </span>\n\n <span *ngIf=\"loading\" class=\"self-center right-0 px-2 text-gray-500\">\n <div class=\"div-loader\"></div>\n </span>\n\n <span *ngIf=\"type == 'password' && value\" class=\"self-center px-2 cursor-pointer\">\n <svg *ngIf=\"element.type == 'password'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='showPassword()'>\n <path\n d=\"M.2 10a11 11 0 0 1 19.6 0A11 11 0 0 1 .2 10zm9.8 4a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n\n <svg *ngIf=\"element.type == 'text'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='hidePassword()'>\n <path\n d=\"M12.81 4.36l-1.77 1.78a4 4 0 0 0-4.9 4.9l-2.76 2.75C2.06 12.79.96 11.49.2 10a11 11 0 0 1 12.6-5.64zm3.8 1.85c1.33 1 2.43 2.3 3.2 3.79a11 11 0 0 1-12.62 5.64l1.77-1.78a4 4 0 0 0 4.9-4.9l2.76-2.75zm-.25-3.99l1.42 1.42L3.64 17.78l-1.42-1.42L16.36 2.22z\" />\n </svg>\n </span>\n\n <span *ngIf=\"innerRightIcon && type != 'password'\"\n class=\"self-center px-2 {{ innerRightIconColor }} {{ onClickRightIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickRightIcon.emit()\">\n <ngt-svg class=\"fill-current\" [src]='innerRightIcon'></ngt-svg>\n </span>\n </div>\n</div>\n\n<ng-container *ngIf=\"showCharactersLength && maxTotalCharsCount && !shining\">\n <p class=\"text-xs mt-1\">\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}:\n <span class=\"font-semibold\">{{ getRemainingCharacters() }}</span>\n </p>\n</ng-container>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\" [minValue]='minValue' [minLength]='minLength'>\n</ngt-validation>", styles: [".div-loader{width:20px;height:20px;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
2759
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label\" class=\"mb-2 flex {{ ngtStyle.compile(['color.text', 'text', 'fontCase']) }}\" [hidden]='shining'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n <span [innerHtml]=\"helpText\"></span>\n </ngt-helper>\n</label>\n\n<div class=\"{{ shining ? 'hidden' : 'flex relative'}}\">\n <input autocomplete=\"new-password\"\n class=\"flex border appearance-none focus:outline-none leading-tight w-full {{ getInputPaddings() }} {{ ngtStyle.compile(['h', 'text', 'color.border', 'color.bg', 'color.text', 'rounded', 'cursor']) }}\"\n [disabled]=\"disabled()\" [readonly]=\"isReadonly || loading\" [placeholder]=\"placeholder\"\n [style]=\"uppercase ? 'text-transform: uppercase!important':''\"\n [ngClass]=\"{'input-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\n [attr.type]=\"inputProperties.htmlType\" (mouseleave)=\"restorePlaceholder()\" (focusout)=\"restorePlaceholder()\"\n #element>\n <span *ngIf=\"innerLeftIcon\"\n class=\"absolute self-center px-2 {{ innerLeftIconColor }} {{ onClickLeftIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickLeftIcon.emit()\">\n\n <ngt-svg *ngIf=\"!showRoundedIcon\" class=\"fill-current\" [src]='innerLeftIcon'></ngt-svg>\n <img *ngIf=\"showRoundedIcon\" class=\"rounded-full h-6\" [src]='innerLeftIcon'>\n </span>\n\n <div class=\"flex absolute h-full justify-end right-0 w-auto\">\n <span *ngIf=\"!disabled() && allowClear && value && !loading\"\n class=\"self-center right-0 px-2 text-red-400 cursor-pointer\" (click)='clearInput($event)'>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </span>\n\n <span *ngIf=\"loading\" class=\"self-center right-0 px-2 text-gray-500\">\n <div class=\"div-loader\"></div>\n </span>\n\n <span *ngIf=\"type == 'password' && value\" class=\"self-center px-2 cursor-pointer\">\n <svg *ngIf=\"element.type == 'password'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='showPassword()'>\n <path\n d=\"M.2 10a11 11 0 0 1 19.6 0A11 11 0 0 1 .2 10zm9.8 4a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n\n <svg *ngIf=\"element.type == 'text'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='hidePassword()'>\n <path\n d=\"M12.81 4.36l-1.77 1.78a4 4 0 0 0-4.9 4.9l-2.76 2.75C2.06 12.79.96 11.49.2 10a11 11 0 0 1 12.6-5.64zm3.8 1.85c1.33 1 2.43 2.3 3.2 3.79a11 11 0 0 1-12.62 5.64l1.77-1.78a4 4 0 0 0 4.9-4.9l2.76-2.75zm-.25-3.99l1.42 1.42L3.64 17.78l-1.42-1.42L16.36 2.22z\" />\n </svg>\n </span>\n\n <span *ngIf=\"innerRightIcon && type != 'password'\"\n class=\"self-center px-2 {{ innerRightIconColor }} {{ onClickRightIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickRightIcon.emit()\">\n <ngt-svg class=\"fill-current\" [src]='innerRightIcon'></ngt-svg>\n </span>\n </div>\n</div>\n\n<ng-container *ngIf=\"showCharactersLength && maxTotalCharsCount && !shining\">\n <p class=\"text-xs mt-1\">\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}:\n <span class=\"font-semibold\">{{ getRemainingCharacters() }}</span>\n </p>\n</ng-container>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\" [minValue]='minValue' [minLength]='minLength'>\n</ngt-validation>", styles: [".div-loader{width:20px;height:20px;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
2576
2760
  { provide: ControlContainer, useExisting: NgForm }
2577
2761
  ] });
2578
2762
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputComponent, decorators: [{
@@ -2581,8 +2765,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2581
2765
  NgtMakeProvider(NgtInputComponent),
2582
2766
  ], viewProviders: [
2583
2767
  { provide: ControlContainer, useExisting: NgForm }
2584
- ], template: "<label *ngIf=\"label\" class=\"mb-2 flex {{ ngtStyle.compile(['color.text', 'text', 'fontCase']) }}\" [hidden]='shining'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n <span [innerHtml]=\"helpText\"></span>\n </ngt-helper>\n</label>\n\n<div class=\"{{ shining ? 'hidden' : 'flex relative'}}\">\n <input autocomplete=\"new-password\"\n class=\"flex border appearance-none focus:outline-none leading-tight w-full {{ getInputPaddings() }} {{ ngtStyle.compile(['h', 'text', 'color.border', 'color.bg', 'color.text', 'rounded', 'cursor']) }}\"\n [disabled]=\"isDisabled\" [readonly]=\"isReadonly || loading\" [placeholder]=\"placeholder\"\n [style]=\"uppercase ? 'text-transform: uppercase!important':''\"\n [ngClass]=\"{'input-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\n [attr.type]=\"inputProperties.htmlType\" #element>\n <span *ngIf=\"innerLeftIcon\"\n class=\"absolute self-center px-2 {{ innerLeftIconColor }} {{ onClickLeftIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickLeftIcon.emit()\">\n\n <ngt-svg *ngIf=\"!showRoundedIcon\" class=\"fill-current\" [src]='innerLeftIcon'></ngt-svg>\n <img *ngIf=\"showRoundedIcon\" class=\"rounded-full h-6\" [src]='innerLeftIcon'>\n </span>\n\n <div class=\"flex absolute h-full justify-end right-0 w-auto\">\n <span *ngIf=\"allowClear && value && !loading\" class=\"self-center right-0 px-2 text-red-400 cursor-pointer\"\n (click)='clearInput($event)'>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </span>\n\n <span *ngIf=\"loading\" class=\"self-center right-0 px-2 text-gray-500\">\n <div class=\"div-loader\"></div>\n </span>\n\n <span *ngIf=\"type == 'password' && value\" class=\"self-center px-2 cursor-pointer\">\n <svg *ngIf=\"element.type == 'password'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='showPassword()'>\n <path\n d=\"M.2 10a11 11 0 0 1 19.6 0A11 11 0 0 1 .2 10zm9.8 4a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n\n <svg *ngIf=\"element.type == 'text'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='hidePassword()'>\n <path\n d=\"M12.81 4.36l-1.77 1.78a4 4 0 0 0-4.9 4.9l-2.76 2.75C2.06 12.79.96 11.49.2 10a11 11 0 0 1 12.6-5.64zm3.8 1.85c1.33 1 2.43 2.3 3.2 3.79a11 11 0 0 1-12.62 5.64l1.77-1.78a4 4 0 0 0 4.9-4.9l2.76-2.75zm-.25-3.99l1.42 1.42L3.64 17.78l-1.42-1.42L16.36 2.22z\" />\n </svg>\n </span>\n\n <span *ngIf=\"innerRightIcon && type != 'password'\"\n class=\"self-center px-2 {{ innerRightIconColor }} {{ onClickRightIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickRightIcon.emit()\">\n <ngt-svg class=\"fill-current\" [src]='innerRightIcon'></ngt-svg>\n </span>\n </div>\n</div>\n\n<ng-container *ngIf=\"showCharactersLength && maxTotalCharsCount && !shining\">\n <p class=\"text-xs mt-1\">\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}:\n <span class=\"font-semibold\">{{ getRemainingCharacters() }}</span>\n </p>\n</ng-container>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\" [minValue]='minValue' [minLength]='minLength'>\n</ngt-validation>", styles: [".div-loader{width:20px;height:20px;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
2585
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
2768
+ ], template: "<label *ngIf=\"label\" class=\"mb-2 flex {{ ngtStyle.compile(['color.text', 'text', 'fontCase']) }}\" [hidden]='shining'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n <span [innerHtml]=\"helpText\"></span>\n </ngt-helper>\n</label>\n\n<div class=\"{{ shining ? 'hidden' : 'flex relative'}}\">\n <input autocomplete=\"new-password\"\n class=\"flex border appearance-none focus:outline-none leading-tight w-full {{ getInputPaddings() }} {{ ngtStyle.compile(['h', 'text', 'color.border', 'color.bg', 'color.text', 'rounded', 'cursor']) }}\"\n [disabled]=\"disabled()\" [readonly]=\"isReadonly || loading\" [placeholder]=\"placeholder\"\n [style]=\"uppercase ? 'text-transform: uppercase!important':''\"\n [ngClass]=\"{'input-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\n [attr.type]=\"inputProperties.htmlType\" (mouseleave)=\"restorePlaceholder()\" (focusout)=\"restorePlaceholder()\"\n #element>\n <span *ngIf=\"innerLeftIcon\"\n class=\"absolute self-center px-2 {{ innerLeftIconColor }} {{ onClickLeftIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickLeftIcon.emit()\">\n\n <ngt-svg *ngIf=\"!showRoundedIcon\" class=\"fill-current\" [src]='innerLeftIcon'></ngt-svg>\n <img *ngIf=\"showRoundedIcon\" class=\"rounded-full h-6\" [src]='innerLeftIcon'>\n </span>\n\n <div class=\"flex absolute h-full justify-end right-0 w-auto\">\n <span *ngIf=\"!disabled() && allowClear && value && !loading\"\n class=\"self-center right-0 px-2 text-red-400 cursor-pointer\" (click)='clearInput($event)'>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </span>\n\n <span *ngIf=\"loading\" class=\"self-center right-0 px-2 text-gray-500\">\n <div class=\"div-loader\"></div>\n </span>\n\n <span *ngIf=\"type == 'password' && value\" class=\"self-center px-2 cursor-pointer\">\n <svg *ngIf=\"element.type == 'password'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='showPassword()'>\n <path\n d=\"M.2 10a11 11 0 0 1 19.6 0A11 11 0 0 1 .2 10zm9.8 4a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n\n <svg *ngIf=\"element.type == 'text'\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" (click)='hidePassword()'>\n <path\n d=\"M12.81 4.36l-1.77 1.78a4 4 0 0 0-4.9 4.9l-2.76 2.75C2.06 12.79.96 11.49.2 10a11 11 0 0 1 12.6-5.64zm3.8 1.85c1.33 1 2.43 2.3 3.2 3.79a11 11 0 0 1-12.62 5.64l1.77-1.78a4 4 0 0 0 4.9-4.9l2.76-2.75zm-.25-3.99l1.42 1.42L3.64 17.78l-1.42-1.42L16.36 2.22z\" />\n </svg>\n </span>\n\n <span *ngIf=\"innerRightIcon && type != 'password'\"\n class=\"self-center px-2 {{ innerRightIconColor }} {{ onClickRightIcon ? 'cursor-pointer' : '' }}\"\n (click)=\"onClickRightIcon.emit()\">\n <ngt-svg class=\"fill-current\" [src]='innerRightIcon'></ngt-svg>\n </span>\n </div>\n</div>\n\n<ng-container *ngIf=\"showCharactersLength && maxTotalCharsCount && !shining\">\n <p class=\"text-xs mt-1\">\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}:\n <span class=\"font-semibold\">{{ getRemainingCharacters() }}</span>\n </p>\n</ng-container>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\" [minValue]='minValue' [minLength]='minLength'>\n</ngt-validation>", styles: [".div-loader{width:20px;height:20px;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
2769
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: NgtStylizableDirective, decorators: [{
2586
2770
  type: Self
2587
2771
  }, {
2588
2772
  type: Optional
@@ -2594,7 +2778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2594
2778
  type: Optional
2595
2779
  }, {
2596
2780
  type: SkipSelf
2597
- }] }, { type: i0.Renderer2 }, { type: NgtHttpValidationService, decorators: [{
2781
+ }] }, { type: NgtHttpValidationService, decorators: [{
2598
2782
  type: Optional
2599
2783
  }, {
2600
2784
  type: SkipSelf
@@ -2602,7 +2786,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2602
2786
  type: Optional
2603
2787
  }, {
2604
2788
  type: SkipSelf
2605
- }] }, { type: i0.ChangeDetectorRef }, { type: NgtTranslateService, decorators: [{
2789
+ }] }, { type: NgtFormComponent, decorators: [{
2790
+ type: Optional
2791
+ }, {
2792
+ type: SkipSelf
2793
+ }] }, { type: NgtSectionComponent, decorators: [{
2794
+ type: Optional
2795
+ }, {
2796
+ type: SkipSelf
2797
+ }] }, { type: NgtModalComponent, decorators: [{
2798
+ type: Optional
2799
+ }, {
2800
+ type: SkipSelf
2801
+ }] }, { type: NgtTranslateService, decorators: [{
2606
2802
  type: Optional
2607
2803
  }] }]; }, propDecorators: { element: [{
2608
2804
  type: ViewChild,
@@ -2615,273 +2811,123 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2615
2811
  type: Input
2616
2812
  }], loading: [{
2617
2813
  type: Input
2618
- }], helpTitle: [{
2619
- type: Input
2620
- }], helpTextColor: [{
2621
- type: Input
2622
- }], helpText: [{
2623
- type: Input
2624
- }], innerLeftIcon: [{
2625
- type: Input
2626
- }], innerLeftIconColor: [{
2627
- type: Input
2628
- }], innerRightIcon: [{
2629
- type: Input
2630
- }], innerRightIconColor: [{
2631
- type: Input
2632
- }], decimalMaskPrecision: [{
2633
- type: Input
2634
- }], showCharactersLength: [{
2635
- type: Input
2636
- }], uppercase: [{
2637
- type: Input
2638
- }], isDisabled: [{
2639
- type: Input
2640
- }], isReadonly: [{
2641
- type: Input
2642
- }], showRoundedIcon: [{
2643
- type: Input
2644
- }], type: [{
2645
- type: Input
2646
- }], name: [{
2647
- type: Input
2648
- }], mask: [{
2649
- type: Input
2650
- }], focus: [{
2651
- type: Input
2652
- }], allowClear: [{
2653
- type: Input
2654
- }], jit: [{
2655
- type: Input
2656
- }], findExistingResource: [{
2657
- type: Input
2658
- }], allowPhoneValidation: [{
2659
- type: Input
2660
- }], validatePassword: [{
2661
- type: Input
2662
- }], passwordableId: [{
2663
- type: Input
2664
- }], passwordPolicyId: [{
2665
- type: Input
2666
- }], isRequired: [{
2667
- type: Input
2668
- }], uniqueResource: [{
2669
- type: Input
2670
- }], minValue: [{
2671
- type: Input
2672
- }], maxValue: [{
2673
- type: Input
2674
- }], maxLength: [{
2675
- type: Input
2676
- }], minLength: [{
2677
- type: Input
2678
- }], match: [{
2679
- type: Input
2680
- }], multipleOf: [{
2681
- type: Input
2682
- }], validateMinValueOnMask: [{
2683
- type: Input
2684
- }], externalServerDependency: [{
2685
- type: Input
2686
- }], helperReverseYPosition: [{
2687
- type: Input
2688
- }], helperAutoXReverse: [{
2689
- type: Input
2690
- }], onClickLeftIcon: [{
2691
- type: Output
2692
- }], onClickRightIcon: [{
2693
- type: Output
2694
- }], validatePhoneResult: [{
2695
- type: Output
2696
- }] } });
2697
-
2698
- class NgtInputModule {
2699
- }
2700
- NgtInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2701
- NgtInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, declarations: [NgtInputComponent], imports: [CommonModule,
2702
- FormsModule,
2703
- ReactiveFormsModule,
2704
- NgtValidationModule,
2705
- NgtShiningModule,
2706
- NgtSvgModule,
2707
- NgtFormModule,
2708
- NgtHelperModule], exports: [NgtInputComponent] });
2709
- NgtInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, imports: [CommonModule,
2710
- FormsModule,
2711
- ReactiveFormsModule,
2712
- NgtValidationModule,
2713
- NgtShiningModule,
2714
- NgtSvgModule,
2715
- NgtFormModule,
2716
- NgtHelperModule] });
2717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, decorators: [{
2718
- type: NgModule,
2719
- args: [{
2720
- declarations: [NgtInputComponent],
2721
- exports: [NgtInputComponent],
2722
- imports: [
2723
- CommonModule,
2724
- FormsModule,
2725
- ReactiveFormsModule,
2726
- NgtValidationModule,
2727
- NgtShiningModule,
2728
- NgtSvgModule,
2729
- NgtFormModule,
2730
- NgtHelperModule
2731
- ]
2732
- }]
2733
- }] });
2734
-
2735
- class NgtModalBodyComponent {
2736
- }
2737
- NgtModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2738
- NgtModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalBodyComponent, selector: "ngt-modal-body", ngImport: i0, template: "<ng-content></ng-content>" });
2739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, decorators: [{
2740
- type: Component,
2741
- args: [{ selector: 'ngt-modal-body', template: "<ng-content></ng-content>" }]
2742
- }] });
2743
-
2744
- class NgtModalFooterComponent {
2745
- }
2746
- NgtModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2747
- NgtModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalFooterComponent, selector: "ngt-modal-footer", ngImport: i0, template: "<div class=\"flex w-full py-1\">\n <ng-content></ng-content>\n</div>" });
2748
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalFooterComponent, decorators: [{
2749
- type: Component,
2750
- args: [{ selector: 'ngt-modal-footer', template: "<div class=\"flex w-full py-1\">\n <ng-content></ng-content>\n</div>" }]
2751
- }] });
2752
-
2753
- class NgtModalHeaderComponent {
2754
- constructor(injector, tailStylizableDirective) {
2755
- this.injector = injector;
2756
- this.tailStylizableDirective = tailStylizableDirective;
2757
- if (this.tailStylizableDirective) {
2758
- this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
2759
- }
2760
- else {
2761
- this.ngtStyle = new NgtStylizableService();
2762
- }
2763
- this.ngtStyle.load(this.injector, 'NgtModalHeader', {
2764
- pb: 'pb-3',
2765
- color: {}
2766
- });
2767
- }
2768
- emitOnCloseEvent() {
2769
- NgtModalHeaderComponent.onCloseModalByHeader.emit();
2770
- }
2771
- }
2772
- NgtModalHeaderComponent.onCloseModalByHeader = new EventEmitter();
2773
- NgtModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
2774
- NgtModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: { disableDefaultCloses: "disableDefaultCloses" }, ngImport: i0, template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2775
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, decorators: [{
2776
- type: Component,
2777
- args: [{ selector: 'ngt-modal-header', template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>" }]
2778
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
2779
- type: Self
2780
- }, {
2781
- type: Optional
2782
- }] }]; }, propDecorators: { disableDefaultCloses: [{
2783
- type: Input
2784
- }] } });
2785
-
2786
- class NgtModalComponent {
2787
- constructor(changeDetectorRef, injector, tailStylizableDirective) {
2788
- this.changeDetectorRef = changeDetectorRef;
2789
- this.injector = injector;
2790
- this.tailStylizableDirective = tailStylizableDirective;
2791
- this.customLayout = false;
2792
- this.disableDefaultCloses = false;
2793
- this.onCloseModal = new EventEmitter();
2794
- this.onOpenModal = new EventEmitter();
2795
- this.isOpen = false;
2796
- this.viewMode = false;
2797
- this.keydownEventWasAdded = false;
2798
- this.subscriptions = [];
2799
- if (this.tailStylizableDirective) {
2800
- this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
2801
- }
2802
- else {
2803
- this.ngtStyle = new NgtStylizableService();
2804
- }
2805
- this.ngtStyle.load(this.injector, 'NgtModal', {
2806
- w: 'md:max-w-md',
2807
- py: 'py-4',
2808
- px: 'px-6',
2809
- overflow: 'overflow-visible',
2810
- color: {}
2811
- });
2812
- }
2813
- close() {
2814
- this.isOpen = false;
2815
- this.changeDetectorRef.detectChanges();
2816
- this.destroySubscriptions();
2817
- this.onCloseModal.emit();
2818
- }
2819
- open() {
2820
- this.isOpen = true;
2821
- this.changeDetectorRef.detectChanges();
2822
- this.addKeydownEventListener();
2823
- this.bindOnCloseModalByHeaderSubscription();
2824
- this.onOpenModal.emit();
2825
- }
2826
- addKeydownEventListener() {
2827
- if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {
2828
- this.keydownEventWasAdded = true;
2829
- window.addEventListener('keydown', (event) => {
2830
- if (event.keyCode == 27) {
2831
- if (this.viewMode) {
2832
- this.closeViewMode();
2833
- event.stopPropagation();
2834
- }
2835
- }
2836
- }, true);
2837
- }
2838
- }
2839
- bindOnCloseModalByHeaderSubscription() {
2840
- this.subscriptions.push(NgtModalHeaderComponent.onCloseModalByHeader.subscribe(() => this.close()));
2841
- }
2842
- destroySubscriptions() {
2843
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
2844
- this.subscriptions = [];
2845
- }
2846
- closeViewMode() {
2847
- this.viewMode = false;
2848
- }
2849
- }
2850
- NgtModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
2851
- NgtModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalComponent, selector: "ngt-modal", inputs: { customLayout: "customLayout", disableDefaultCloses: "disableDefaultCloses", ngtStyle: "ngtStyle" }, outputs: { onCloseModal: "onCloseModal", onOpenModal: "onOpenModal" }, ngImport: i0, template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow']) }} relative border border-teal-500 bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-body>\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: NgtModalBodyComponent, selector: "ngt-modal-body" }, { kind: "component", type: NgtModalFooterComponent, selector: "ngt-modal-footer" }], animations: [
2852
- trigger('fade', [
2853
- state('void', style({ opacity: 0 })),
2854
- transition(':enter, :leave', [
2855
- animate(300)
2856
- ])
2857
- ])
2858
- ] });
2859
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalComponent, decorators: [{
2860
- type: Component,
2861
- args: [{ selector: 'ngt-modal', animations: [
2862
- trigger('fade', [
2863
- state('void', style({ opacity: 0 })),
2864
- transition(':enter, :leave', [
2865
- animate(300)
2866
- ])
2867
- ])
2868
- ], template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow']) }} relative border border-teal-500 bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-body>\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n" }]
2869
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
2870
- type: Self
2871
- }, {
2872
- type: Optional
2873
- }] }]; }, propDecorators: { customLayout: [{
2874
- type: Input
2875
- }], disableDefaultCloses: [{
2814
+ }], helpTitle: [{
2876
2815
  type: Input
2877
- }], ngtStyle: [{
2816
+ }], helpTextColor: [{
2878
2817
  type: Input
2879
- }], onCloseModal: [{
2818
+ }], helpText: [{
2819
+ type: Input
2820
+ }], innerLeftIcon: [{
2821
+ type: Input
2822
+ }], innerLeftIconColor: [{
2823
+ type: Input
2824
+ }], innerRightIcon: [{
2825
+ type: Input
2826
+ }], innerRightIconColor: [{
2827
+ type: Input
2828
+ }], decimalMaskPrecision: [{
2829
+ type: Input
2830
+ }], showCharactersLength: [{
2831
+ type: Input
2832
+ }], uppercase: [{
2833
+ type: Input
2834
+ }], isDisabled: [{
2835
+ type: Input
2836
+ }], isReadonly: [{
2837
+ type: Input
2838
+ }], showRoundedIcon: [{
2839
+ type: Input
2840
+ }], type: [{
2841
+ type: Input
2842
+ }], name: [{
2843
+ type: Input
2844
+ }], mask: [{
2845
+ type: Input
2846
+ }], focus: [{
2847
+ type: Input
2848
+ }], allowClear: [{
2849
+ type: Input
2850
+ }], jit: [{
2851
+ type: Input
2852
+ }], findExistingResource: [{
2853
+ type: Input
2854
+ }], allowPhoneValidation: [{
2855
+ type: Input
2856
+ }], validatePassword: [{
2857
+ type: Input
2858
+ }], passwordableId: [{
2859
+ type: Input
2860
+ }], passwordPolicyId: [{
2861
+ type: Input
2862
+ }], isRequired: [{
2863
+ type: Input
2864
+ }], uniqueResource: [{
2865
+ type: Input
2866
+ }], minValue: [{
2867
+ type: Input
2868
+ }], maxValue: [{
2869
+ type: Input
2870
+ }], maxLength: [{
2871
+ type: Input
2872
+ }], minLength: [{
2873
+ type: Input
2874
+ }], match: [{
2875
+ type: Input
2876
+ }], multipleOf: [{
2877
+ type: Input
2878
+ }], validateMinValueOnMask: [{
2879
+ type: Input
2880
+ }], externalServerDependency: [{
2881
+ type: Input
2882
+ }], helperReverseYPosition: [{
2883
+ type: Input
2884
+ }], helperAutoXReverse: [{
2885
+ type: Input
2886
+ }], onClickLeftIcon: [{
2880
2887
  type: Output
2881
- }], onOpenModal: [{
2888
+ }], onClickRightIcon: [{
2889
+ type: Output
2890
+ }], validatePhoneResult: [{
2882
2891
  type: Output
2883
2892
  }] } });
2884
2893
 
2894
+ class NgtInputModule {
2895
+ }
2896
+ NgtInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2897
+ NgtInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, declarations: [NgtInputComponent], imports: [CommonModule,
2898
+ FormsModule,
2899
+ ReactiveFormsModule,
2900
+ NgtValidationModule,
2901
+ NgtShiningModule,
2902
+ NgtSvgModule,
2903
+ NgtFormModule,
2904
+ NgtHelperModule], exports: [NgtInputComponent] });
2905
+ NgtInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, imports: [CommonModule,
2906
+ FormsModule,
2907
+ ReactiveFormsModule,
2908
+ NgtValidationModule,
2909
+ NgtShiningModule,
2910
+ NgtSvgModule,
2911
+ NgtFormModule,
2912
+ NgtHelperModule] });
2913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtInputModule, decorators: [{
2914
+ type: NgModule,
2915
+ args: [{
2916
+ declarations: [NgtInputComponent],
2917
+ exports: [NgtInputComponent],
2918
+ imports: [
2919
+ CommonModule,
2920
+ FormsModule,
2921
+ ReactiveFormsModule,
2922
+ NgtValidationModule,
2923
+ NgtShiningModule,
2924
+ NgtSvgModule,
2925
+ NgtFormModule,
2926
+ NgtHelperModule
2927
+ ]
2928
+ }]
2929
+ }] });
2930
+
2885
2931
  class NgtModalModule {
2886
2932
  }
2887
2933
  NgtModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2949,16 +2995,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2949
2995
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
2950
2996
 
2951
2997
  class NgtSelectComponent extends NgtBaseNgModel {
2952
- constructor(ngtStylizableDirective, injector, formContainer, ngtForm, ngtSection, ngtHttp, changeDetector, ngtTranslateService) {
2998
+ constructor(ngtStylizableDirective, formContainer, ngtTranslateService, injector, ngtHttp, changeDetector, ngtForm, ngtSection, ngtModal) {
2953
2999
  super();
2954
3000
  this.ngtStylizableDirective = ngtStylizableDirective;
2955
- this.injector = injector;
2956
3001
  this.formContainer = formContainer;
2957
- this.ngtForm = ngtForm;
2958
- this.ngtSection = ngtSection;
3002
+ this.ngtTranslateService = ngtTranslateService;
3003
+ this.injector = injector;
2959
3004
  this.ngtHttp = ngtHttp;
2960
3005
  this.changeDetector = changeDetector;
2961
- this.ngtTranslateService = ngtTranslateService;
3006
+ this.ngtForm = ngtForm;
3007
+ this.ngtSection = ngtSection;
3008
+ this.ngtModal = ngtModal;
2962
3009
  /** Visual */
2963
3010
  this.label = '';
2964
3011
  this.helpTextColor = 'text-green-500';
@@ -3068,9 +3115,6 @@ class NgtSelectComponent extends NgtBaseNgModel {
3068
3115
  if (changes.dropdownPanelMinHeight) {
3069
3116
  this.dropdownPanelMinHeight = getEnumFromString(changes.dropdownPanelMinHeight.currentValue, NgtSelectDropdownPanelHeight);
3070
3117
  }
3071
- if (changes.isDisabled && !changes.isDisabled.currentValue) {
3072
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
3073
- }
3074
3118
  }
3075
3119
  ngDoCheck() {
3076
3120
  if (!this.hadFirstItemsLoad && this.canLoadItems()) {
@@ -3192,7 +3236,7 @@ class NgtSelectComponent extends NgtBaseNgModel {
3192
3236
  }
3193
3237
  getSelectClass() {
3194
3238
  let selectClass = this.dropdownPanelMinHeight ? 'ng-select-dropdown-panel-' + this.dropdownPanelMinHeight : 'ng-select-dropdown-panel-auto';
3195
- if (this.isDisabled) {
3239
+ if (this.disabled()) {
3196
3240
  selectClass += ' select-border-disabled';
3197
3241
  }
3198
3242
  else if (this.formControl && this.formControl.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']))) {
@@ -3209,6 +3253,9 @@ class NgtSelectComponent extends NgtBaseNgModel {
3209
3253
  }
3210
3254
  return selectClass;
3211
3255
  }
3256
+ disabled() {
3257
+ return this.isDisabled || this.isDisabledByParent();
3258
+ }
3212
3259
  initNgSelectItems() {
3213
3260
  if (this.remoteResource && this.canLoadItems()) {
3214
3261
  this.ngSelectItems = new Observable(observer => {
@@ -3345,7 +3392,7 @@ class NgtSelectComponent extends NgtBaseNgModel {
3345
3392
  return items?.length && typeof items[0].value['getAttribute'] === 'function';
3346
3393
  }
3347
3394
  canLoadItems() {
3348
- return this.autoLoad || (!this.isDisabled && this.wasClicked);
3395
+ return this.autoLoad || (!this.disabled() && this.wasClicked);
3349
3396
  }
3350
3397
  canAutoSelectUniqueOption(response) {
3351
3398
  return !this.value && this.autoSelectUniqueOption
@@ -3353,39 +3400,28 @@ class NgtSelectComponent extends NgtBaseNgModel {
3353
3400
  || (!response && Array.isArray(this.items) && this.items?.length == 1));
3354
3401
  }
3355
3402
  bindSubscriptions() {
3356
- this.changeDetector.detectChanges();
3357
- if (!this.isDisabled) {
3358
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
3359
- }
3360
3403
  if (this.ngtForm) {
3361
3404
  this.shining = this.ngtForm.isShining();
3362
3405
  this.subscriptions.push(this.ngtForm.onShiningChange.subscribe((shining) => {
3363
3406
  this.shining = shining;
3364
3407
  }));
3365
- this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
3366
- if (!this.isDisabled) {
3367
- this.isDisabled = isDisabled || this.ngtSection?.isDisabled;
3368
- }
3369
- }));
3370
- }
3371
- if (this.ngtSection) {
3372
- this.subscriptions.push(this.ngtSection.onIsDisabledChange.subscribe((isDisabled) => {
3373
- if (!this.isDisabled) {
3374
- this.isDisabled = isDisabled || this.ngtForm?.isDisabled;
3375
- }
3376
- }));
3377
3408
  }
3378
3409
  this.changeDetector.detectChanges();
3379
3410
  }
3411
+ isDisabledByParent() {
3412
+ return this.ngtForm?.isDisabled
3413
+ || this.ngtSection?.isDisabled
3414
+ || this.ngtModal?.isDisabled;
3415
+ }
3380
3416
  destroySubscriptions() {
3381
3417
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
3382
3418
  this.subscriptions = [];
3383
3419
  }
3384
3420
  }
3385
- NgtSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSelectComponent, deps: [{ token: NgtStylizableDirective, optional: true, self: true }, { token: i0.Injector }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtHttpService }, { token: i0.ChangeDetectorRef }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3421
+ NgtSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSelectComponent, deps: [{ token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtTranslateService, optional: true }, { token: i0.Injector }, { token: NgtHttpService }, { token: i0.ChangeDetectorRef }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
3386
3422
  NgtSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSelectComponent, selector: "ngt-select", inputs: { label: "label", labelIcon: "labelIcon", labelIconColor: "labelIconColor", helpTitle: "helpTitle", helpText: "helpText", helpTextColor: "helpTextColor", shining: "shining", loading: "loading", loadingText: "loadingText", notFoundText: "notFoundText", dropdownPosition: "dropdownPosition", typeToSearchText: "typeToSearchText", clearAllTooltip: "clearAllTooltip", placeholder: "placeholder", createText: "createText", labelForId: "labelForId", dropdownPanelMinHeight: "dropdownPanelMinHeight", helperReverseYPosition: "helperReverseYPosition", helperAutoXReverse: "helperAutoXReverse", name: "name", autoLoad: "autoLoad", allowCreate: "allowCreate", allowOriginalItemsUnselect: "allowOriginalItemsUnselect", isDisabled: "isDisabled", isReadonly: "isReadonly", remoteResource: "remoteResource", hideSelected: "hideSelected", bindLabel: "bindLabel", bindValue: "bindValue", items: "items", inputAttrs: "inputAttrs", closeOnSelect: "closeOnSelect", clearable: "clearable", groupBy: "groupBy", maxSelectedItems: "maxSelectedItems", multiple: "multiple", searchable: "searchable", clearSearchOnAdd: "clearSearchOnAdd", virtualScroll: "virtualScroll", tabIndex: "tabIndex", typeahead: "typeahead", guessCompareWith: "guessCompareWith", autoSelectUniqueOption: "autoSelectUniqueOption", groupValue: "groupValue", trackBy: "trackBy", sortSelectedItemsFn: "sortSelectedItemsFn", isRequired: "isRequired", compareWith: "compareWith" }, outputs: { onLoadRemoteResource: "onLoadRemoteResource", onSelectedItemRemove: "onSelectedItemRemove", onClear: "onClear", onClose: "onClose" }, providers: [
3387
3423
  NgtMakeProvider(NgtSelectComponent)
3388
- ], queries: [{ propertyName: "ngtOptionTemplate", first: true, predicate: NgtSelectOptionTmp, descendants: true, read: TemplateRef }, { propertyName: "ngtOptionSelectedTemplate", first: true, predicate: NgtSelectOptionSelectedTmp, descendants: true, read: TemplateRef }, { propertyName: "ngtSelectHeaderTemplate", first: true, predicate: NgtSelectHeaderTmp, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label\" [hidden]='shining'\n class=\"{{ shining ? '' : 'block' }} {{ ngtStyle.compile(['color.text', 'text', 'font', 'fontCase']) }} mb-2 flex\">\n <ngt-svg *ngIf=\"labelIcon\" class=\"mr-1 {{labelIconColor}}\" src=\"{{labelIcon}}\"></ngt-svg>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div [hidden]='shining' class=\"{{ getSelectClass() }} normal-case\" style=\"min-height: 3rem;\">\n <ng-select class=\"custom\" [(ngModel)]='nativeValue' [name]='nativeName' [addTag]='allowCreate'\n [addTagText]=\"createText || ngtTranslateService.ngtSelectCreateText\" [bindLabel]=\"bindLabel\"\n [multiple]=\"multiple\" [hideSelected]=\"hideSelected\" [typeahead]=\"typeahead\"\n [notFoundText]=\"notFoundText || ngtTranslateService.ngtSelectNotFoundText\" [searchable]=\"searchable\"\n [disabled]='isDisabled || isReadonly' [clearable]=\"clearable && hasSelectedValue()\"\n [closeOnSelect]=\"closeOnSelect\" [trackByFn]=\"trackBy\" [labelForId]=\"labelForId\"\n [typeToSearchText]=\"typeToSearchText || ngtTranslateService.ngtSelectTypeToSearchText\"\n [placeholder]=\"placeholder || ngtTranslateService.ngtSelectPlaceholder\" [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\" [clearAllText]=\"clearAllTooltip || ngtTranslateService.ngtSelectClearAllTooltip\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\" [bindValue]=\"bindValue\" [virtualScroll]=\"virtualScroll\"\n [loadingText]=\"loadingText || ngtTranslateService.ngtSelectLoadingText\" [maxSelectedItems]=\"maxSelectedItems\"\n [tabIndex]=\"tabIndex\" [items]=\"ngSelectItems | async\" [groupValue]=\"groupValue\" [loading]=\"loading\"\n [compareWith]='compareWith' [inputAttrs]=\"inputAttrs\" (scroll)=\"onScroll($event)\" (close)=\"onClose.emit()\"\n (change)=\"onNativeChange($event)\" (clear)='onClearSelect()' (remove)='onRemoveSelectedItem($event)'\n (click)=\"wasClicked = true\">\n\n <ng-template *ngIf='ngtSelectHeaderTemplate' ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"ngtSelectHeaderTemplate\">\n </ng-template>\n </ng-template>\n\n <ng-template ng-label-tmp let-item=\"item\">\n <div class=\"flex w-full items-center pr-1\">\n <ng-container *ngIf=\"multiple\">\n <div class=\"ng-value-icon px-1 h-full border-r mr-2 {{ ngtStyle.compile(['color.text', 'text']) }} cursor-pointer\"\n (click)='removeItem($event, item)'>\n <svg class=\"ng-value-icon fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-template *ngIf='ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionSelectedTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n\n <ng-template *ngIf='!ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </div>\n </ng-template>\n\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, index: index, searchTerm: search }\">\n </ng-template>\n </ng-template>\n </ng-select>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.ng-select,.ng-select.custom .ng-select-container{height:100%;margin-top:-1px;margin-bottom:-1px}.ng-select-container{color:inherit!important;min-height:3rem!important}.select-border-disabled .ng-select-container{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem;padding:1px}.select-border-error .ng-select-container{border:solid #c53030 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.select-border-normal .ng-select-container{border:solid #cbd5e0 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.ng-value{max-width:100%}.ng-select-dropdown-panel-auto .ng-dropdown-panel .ng-dropdown-panel-items{min-height:unset}.ng-select-dropdown-panel-xs .ng-dropdown-panel .ng-dropdown-panel-items{min-height:80px!important}.ng-select-dropdown-panel-sm .ng-dropdown-panel .ng-dropdown-panel-items{min-height:100px!important}.ng-select-dropdown-panel-md .ng-dropdown-panel .ng-dropdown-panel-items{min-height:120px!important}.ng-select-dropdown-panel-lg .ng-dropdown-panel .ng-dropdown-panel-items{min-height:140px!important}.ng-select-dropdown-panel-xl .ng-dropdown-panel .ng-dropdown-panel-items{min-height:160px!important}.ng-dropdown-panel .ng-dropdown-header{padding:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i8.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i8.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i8.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], viewProviders: [
3424
+ ], queries: [{ propertyName: "ngtOptionTemplate", first: true, predicate: NgtSelectOptionTmp, descendants: true, read: TemplateRef }, { propertyName: "ngtOptionSelectedTemplate", first: true, predicate: NgtSelectOptionSelectedTmp, descendants: true, read: TemplateRef }, { propertyName: "ngtSelectHeaderTemplate", first: true, predicate: NgtSelectHeaderTmp, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label\" [hidden]='shining'\n class=\"{{ shining ? '' : 'block' }} {{ ngtStyle.compile(['color.text', 'text', 'font', 'fontCase']) }} mb-2 flex\">\n <ngt-svg *ngIf=\"labelIcon\" class=\"mr-1 {{labelIconColor}}\" src=\"{{labelIcon}}\"></ngt-svg>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div [hidden]='shining' class=\"{{ getSelectClass() }} normal-case\" style=\"min-height: 3rem;\">\n <ng-select class=\"custom\" [(ngModel)]='nativeValue' [name]='nativeName' [addTag]='allowCreate'\n [addTagText]=\"createText || ngtTranslateService.ngtSelectCreateText\" [bindLabel]=\"bindLabel\"\n [multiple]=\"multiple\" [hideSelected]=\"hideSelected\" [typeahead]=\"typeahead\"\n [notFoundText]=\"notFoundText || ngtTranslateService.ngtSelectNotFoundText\" [searchable]=\"searchable\"\n [disabled]='disabled() || isReadonly' [clearable]=\"clearable && hasSelectedValue()\"\n [closeOnSelect]=\"closeOnSelect\" [trackByFn]=\"trackBy\" [labelForId]=\"labelForId\"\n [typeToSearchText]=\"typeToSearchText || ngtTranslateService.ngtSelectTypeToSearchText\"\n [placeholder]=\"placeholder || ngtTranslateService.ngtSelectPlaceholder\" [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\" [clearAllText]=\"clearAllTooltip || ngtTranslateService.ngtSelectClearAllTooltip\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\" [bindValue]=\"bindValue\" [virtualScroll]=\"virtualScroll\"\n [loadingText]=\"loadingText || ngtTranslateService.ngtSelectLoadingText\" [maxSelectedItems]=\"maxSelectedItems\"\n [tabIndex]=\"tabIndex\" [items]=\"ngSelectItems | async\" [groupValue]=\"groupValue\" [loading]=\"loading\"\n [compareWith]='compareWith' [inputAttrs]=\"inputAttrs\" (scroll)=\"onScroll($event)\" (close)=\"onClose.emit()\"\n (change)=\"onNativeChange($event)\" (clear)='onClearSelect()' (remove)='onRemoveSelectedItem($event)'\n (click)=\"wasClicked = true\">\n\n <ng-template *ngIf='ngtSelectHeaderTemplate' ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"ngtSelectHeaderTemplate\">\n </ng-template>\n </ng-template>\n\n <ng-template ng-label-tmp let-item=\"item\">\n <div class=\"flex w-full items-center pr-1\">\n <ng-container *ngIf=\"multiple\">\n <div class=\"ng-value-icon px-1 h-full border-r mr-2 {{ ngtStyle.compile(['color.text', 'text']) }} cursor-pointer\"\n (click)='removeItem($event, item)'>\n <svg class=\"ng-value-icon fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-template *ngIf='ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionSelectedTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n\n <ng-template *ngIf='!ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </div>\n </ng-template>\n\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, index: index, searchTerm: search }\">\n </ng-template>\n </ng-template>\n </ng-select>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.ng-select,.ng-select.custom .ng-select-container{height:100%;margin-top:-1px;margin-bottom:-1px}.ng-select-container{color:inherit!important;min-height:3rem!important}.select-border-disabled .ng-select-container{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem;padding:1px}.select-border-error .ng-select-container{border:solid #c53030 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.select-border-normal .ng-select-container{border:solid #cbd5e0 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.ng-value{max-width:100%}.ng-select-dropdown-panel-auto .ng-dropdown-panel .ng-dropdown-panel-items{min-height:unset}.ng-select-dropdown-panel-xs .ng-dropdown-panel .ng-dropdown-panel-items{min-height:80px!important}.ng-select-dropdown-panel-sm .ng-dropdown-panel .ng-dropdown-panel-items{min-height:100px!important}.ng-select-dropdown-panel-md .ng-dropdown-panel .ng-dropdown-panel-items{min-height:120px!important}.ng-select-dropdown-panel-lg .ng-dropdown-panel .ng-dropdown-panel-items{min-height:140px!important}.ng-select-dropdown-panel-xl .ng-dropdown-panel .ng-dropdown-panel-items{min-height:160px!important}.ng-dropdown-panel .ng-dropdown-header{padding:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i9.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i9.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i9.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], viewProviders: [
3389
3425
  { provide: ControlContainer, useExisting: NgForm }
3390
3426
  ], encapsulation: i0.ViewEncapsulation.None });
3391
3427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSelectComponent, decorators: [{
@@ -3394,16 +3430,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
3394
3430
  NgtMakeProvider(NgtSelectComponent)
3395
3431
  ], viewProviders: [
3396
3432
  { provide: ControlContainer, useExisting: NgForm }
3397
- ], encapsulation: ViewEncapsulation.None, template: "<label *ngIf=\"label\" [hidden]='shining'\n class=\"{{ shining ? '' : 'block' }} {{ ngtStyle.compile(['color.text', 'text', 'font', 'fontCase']) }} mb-2 flex\">\n <ngt-svg *ngIf=\"labelIcon\" class=\"mr-1 {{labelIconColor}}\" src=\"{{labelIcon}}\"></ngt-svg>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div [hidden]='shining' class=\"{{ getSelectClass() }} normal-case\" style=\"min-height: 3rem;\">\n <ng-select class=\"custom\" [(ngModel)]='nativeValue' [name]='nativeName' [addTag]='allowCreate'\n [addTagText]=\"createText || ngtTranslateService.ngtSelectCreateText\" [bindLabel]=\"bindLabel\"\n [multiple]=\"multiple\" [hideSelected]=\"hideSelected\" [typeahead]=\"typeahead\"\n [notFoundText]=\"notFoundText || ngtTranslateService.ngtSelectNotFoundText\" [searchable]=\"searchable\"\n [disabled]='isDisabled || isReadonly' [clearable]=\"clearable && hasSelectedValue()\"\n [closeOnSelect]=\"closeOnSelect\" [trackByFn]=\"trackBy\" [labelForId]=\"labelForId\"\n [typeToSearchText]=\"typeToSearchText || ngtTranslateService.ngtSelectTypeToSearchText\"\n [placeholder]=\"placeholder || ngtTranslateService.ngtSelectPlaceholder\" [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\" [clearAllText]=\"clearAllTooltip || ngtTranslateService.ngtSelectClearAllTooltip\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\" [bindValue]=\"bindValue\" [virtualScroll]=\"virtualScroll\"\n [loadingText]=\"loadingText || ngtTranslateService.ngtSelectLoadingText\" [maxSelectedItems]=\"maxSelectedItems\"\n [tabIndex]=\"tabIndex\" [items]=\"ngSelectItems | async\" [groupValue]=\"groupValue\" [loading]=\"loading\"\n [compareWith]='compareWith' [inputAttrs]=\"inputAttrs\" (scroll)=\"onScroll($event)\" (close)=\"onClose.emit()\"\n (change)=\"onNativeChange($event)\" (clear)='onClearSelect()' (remove)='onRemoveSelectedItem($event)'\n (click)=\"wasClicked = true\">\n\n <ng-template *ngIf='ngtSelectHeaderTemplate' ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"ngtSelectHeaderTemplate\">\n </ng-template>\n </ng-template>\n\n <ng-template ng-label-tmp let-item=\"item\">\n <div class=\"flex w-full items-center pr-1\">\n <ng-container *ngIf=\"multiple\">\n <div class=\"ng-value-icon px-1 h-full border-r mr-2 {{ ngtStyle.compile(['color.text', 'text']) }} cursor-pointer\"\n (click)='removeItem($event, item)'>\n <svg class=\"ng-value-icon fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-template *ngIf='ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionSelectedTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n\n <ng-template *ngIf='!ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </div>\n </ng-template>\n\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, index: index, searchTerm: search }\">\n </ng-template>\n </ng-template>\n </ng-select>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.ng-select,.ng-select.custom .ng-select-container{height:100%;margin-top:-1px;margin-bottom:-1px}.ng-select-container{color:inherit!important;min-height:3rem!important}.select-border-disabled .ng-select-container{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem;padding:1px}.select-border-error .ng-select-container{border:solid #c53030 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.select-border-normal .ng-select-container{border:solid #cbd5e0 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.ng-value{max-width:100%}.ng-select-dropdown-panel-auto .ng-dropdown-panel .ng-dropdown-panel-items{min-height:unset}.ng-select-dropdown-panel-xs .ng-dropdown-panel .ng-dropdown-panel-items{min-height:80px!important}.ng-select-dropdown-panel-sm .ng-dropdown-panel .ng-dropdown-panel-items{min-height:100px!important}.ng-select-dropdown-panel-md .ng-dropdown-panel .ng-dropdown-panel-items{min-height:120px!important}.ng-select-dropdown-panel-lg .ng-dropdown-panel .ng-dropdown-panel-items{min-height:140px!important}.ng-select-dropdown-panel-xl .ng-dropdown-panel .ng-dropdown-panel-items{min-height:160px!important}.ng-dropdown-panel .ng-dropdown-header{padding:0!important}\n"] }]
3433
+ ], encapsulation: ViewEncapsulation.None, template: "<label *ngIf=\"label\" [hidden]='shining'\n class=\"{{ shining ? '' : 'block' }} {{ ngtStyle.compile(['color.text', 'text', 'font', 'fontCase']) }} mb-2 flex\">\n <ngt-svg *ngIf=\"labelIcon\" class=\"mr-1 {{labelIconColor}}\" src=\"{{labelIcon}}\"></ngt-svg>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div [hidden]='shining' class=\"{{ getSelectClass() }} normal-case\" style=\"min-height: 3rem;\">\n <ng-select class=\"custom\" [(ngModel)]='nativeValue' [name]='nativeName' [addTag]='allowCreate'\n [addTagText]=\"createText || ngtTranslateService.ngtSelectCreateText\" [bindLabel]=\"bindLabel\"\n [multiple]=\"multiple\" [hideSelected]=\"hideSelected\" [typeahead]=\"typeahead\"\n [notFoundText]=\"notFoundText || ngtTranslateService.ngtSelectNotFoundText\" [searchable]=\"searchable\"\n [disabled]='disabled() || isReadonly' [clearable]=\"clearable && hasSelectedValue()\"\n [closeOnSelect]=\"closeOnSelect\" [trackByFn]=\"trackBy\" [labelForId]=\"labelForId\"\n [typeToSearchText]=\"typeToSearchText || ngtTranslateService.ngtSelectTypeToSearchText\"\n [placeholder]=\"placeholder || ngtTranslateService.ngtSelectPlaceholder\" [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\" [clearAllText]=\"clearAllTooltip || ngtTranslateService.ngtSelectClearAllTooltip\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\" [bindValue]=\"bindValue\" [virtualScroll]=\"virtualScroll\"\n [loadingText]=\"loadingText || ngtTranslateService.ngtSelectLoadingText\" [maxSelectedItems]=\"maxSelectedItems\"\n [tabIndex]=\"tabIndex\" [items]=\"ngSelectItems | async\" [groupValue]=\"groupValue\" [loading]=\"loading\"\n [compareWith]='compareWith' [inputAttrs]=\"inputAttrs\" (scroll)=\"onScroll($event)\" (close)=\"onClose.emit()\"\n (change)=\"onNativeChange($event)\" (clear)='onClearSelect()' (remove)='onRemoveSelectedItem($event)'\n (click)=\"wasClicked = true\">\n\n <ng-template *ngIf='ngtSelectHeaderTemplate' ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"ngtSelectHeaderTemplate\">\n </ng-template>\n </ng-template>\n\n <ng-template ng-label-tmp let-item=\"item\">\n <div class=\"flex w-full items-center pr-1\">\n <ng-container *ngIf=\"multiple\">\n <div class=\"ng-value-icon px-1 h-full border-r mr-2 {{ ngtStyle.compile(['color.text', 'text']) }} cursor-pointer\"\n (click)='removeItem($event, item)'>\n <svg class=\"ng-value-icon fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-template *ngIf='ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionSelectedTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n\n <ng-template *ngIf='!ngtOptionSelectedTemplate' [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </div>\n </ng-template>\n\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"ngtOptionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, index: index, searchTerm: search }\">\n </ng-template>\n </ng-template>\n </ng-select>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"{{ ngtStyle.compile(['h']) }} w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.ng-select,.ng-select.custom .ng-select-container{height:100%;margin-top:-1px;margin-bottom:-1px}.ng-select-container{color:inherit!important;min-height:3rem!important}.select-border-disabled .ng-select-container{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem;padding:1px}.select-border-error .ng-select-container{border:solid #c53030 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.select-border-normal .ng-select-container{border:solid #cbd5e0 1px!important;background-color:unset!important;border-radius:.25rem;padding:1px}.ng-value{max-width:100%}.ng-select-dropdown-panel-auto .ng-dropdown-panel .ng-dropdown-panel-items{min-height:unset}.ng-select-dropdown-panel-xs .ng-dropdown-panel .ng-dropdown-panel-items{min-height:80px!important}.ng-select-dropdown-panel-sm .ng-dropdown-panel .ng-dropdown-panel-items{min-height:100px!important}.ng-select-dropdown-panel-md .ng-dropdown-panel .ng-dropdown-panel-items{min-height:120px!important}.ng-select-dropdown-panel-lg .ng-dropdown-panel .ng-dropdown-panel-items{min-height:140px!important}.ng-select-dropdown-panel-xl .ng-dropdown-panel .ng-dropdown-panel-items{min-height:160px!important}.ng-dropdown-panel .ng-dropdown-header{padding:0!important}\n"] }]
3398
3434
  }], ctorParameters: function () { return [{ type: NgtStylizableDirective, decorators: [{
3399
3435
  type: Optional
3400
3436
  }, {
3401
3437
  type: Self
3402
- }] }, { type: i0.Injector }, { type: i2$1.ControlContainer, decorators: [{
3438
+ }] }, { type: i2$1.ControlContainer, decorators: [{
3403
3439
  type: Optional
3404
3440
  }, {
3405
3441
  type: Host
3406
- }] }, { type: NgtFormComponent, decorators: [{
3442
+ }] }, { type: NgtTranslateService, decorators: [{
3443
+ type: Optional
3444
+ }] }, { type: i0.Injector }, { type: NgtHttpService }, { type: i0.ChangeDetectorRef }, { type: NgtFormComponent, decorators: [{
3407
3445
  type: Optional
3408
3446
  }, {
3409
3447
  type: SkipSelf
@@ -3411,8 +3449,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
3411
3449
  type: Optional
3412
3450
  }, {
3413
3451
  type: SkipSelf
3414
- }] }, { type: NgtHttpService }, { type: i0.ChangeDetectorRef }, { type: NgtTranslateService, decorators: [{
3452
+ }] }, { type: NgtModalComponent, decorators: [{
3415
3453
  type: Optional
3454
+ }, {
3455
+ type: SkipSelf
3416
3456
  }] }]; }, propDecorators: { ngSelectComponent: [{
3417
3457
  type: ViewChild,
3418
3458
  args: [NgSelectComponent, { static: true }]
@@ -3731,10 +3771,10 @@ class NgtPaginationComponent {
3731
3771
  }
3732
3772
  }
3733
3773
  NgtPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, deps: [{ token: i0.Injector }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3734
- NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationActivePageButtonStyle'>\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationPageButtonStyle'>\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled"] }, { kind: "component", type: NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
3774
+ NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "component", type: NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
3735
3775
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, decorators: [{
3736
3776
  type: Component,
3737
- args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationActivePageButtonStyle'>\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationPageButtonStyle'>\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>" }]
3777
+ args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>" }]
3738
3778
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtTranslateService, decorators: [{
3739
3779
  type: Optional
3740
3780
  }] }]; }, propDecorators: { pagesInterval: [{
@@ -4168,10 +4208,10 @@ class NgtDatatableComponent {
4168
4208
  }
4169
4209
  }
4170
4210
  NgtDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDatatableComponent, deps: [{ token: i0.Injector }, { token: NgtHttpService }, { token: i0.ChangeDetectorRef }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
4171
- NgtDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtDatatableComponent, selector: "ngt-datatable", inputs: { remoteResource: "remoteResource", type: "type", filterTagBgColor: "filterTagBgColor", filterTagMargin: "filterTagMargin", paginationMargin: "paginationMargin", inputSearch: "inputSearch", searchDelay: "searchDelay", searchTermMinLength: "searchTermMinLength", searchTermOnEnter: "searchTermOnEnter", defaultFilters: "defaultFilters", filtersDescription: "filtersDescription" }, outputs: { onDataChange: "onDataChange", onClearFilter: "onClearFilter", onClearSelectedElements: "onClearSelectedElements", onSelectedElementsChange: "onSelectedElementsChange", onToogleAllCheckboxes: "onToogleAllCheckboxes", onToogleCheckbox: "onToogleCheckbox", onOpenSearchModal: "onOpenSearchModal", onSearch: "onSearch" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "ngtPagination", first: true, predicate: ["ngtPagination"], descendants: true, static: true }, { propertyName: "searchModal", first: true, predicate: ["searchModal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable>\n {{ filter.translation + ': ' + (filter?.value?.tagValue ? filter.value.tagValue : filter.value)}}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal #searchModal [customLayout]='true'>\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: ["pagesInterval"], outputs: ["onPageChange", "onPerPageChange"] }, { kind: "component", type: NgtModalComponent, selector: "ngt-modal", inputs: ["customLayout", "disableDefaultCloses", "ngtStyle"], outputs: ["onCloseModal", "onOpenModal"] }, { kind: "component", type: NgtTagComponent, selector: "ngt-tag", inputs: ["icon"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] });
4211
+ NgtDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtDatatableComponent, selector: "ngt-datatable", inputs: { remoteResource: "remoteResource", type: "type", filterTagBgColor: "filterTagBgColor", filterTagMargin: "filterTagMargin", paginationMargin: "paginationMargin", inputSearch: "inputSearch", searchDelay: "searchDelay", searchTermMinLength: "searchTermMinLength", searchTermOnEnter: "searchTermOnEnter", defaultFilters: "defaultFilters", filtersDescription: "filtersDescription" }, outputs: { onDataChange: "onDataChange", onClearFilter: "onClearFilter", onClearSelectedElements: "onClearSelectedElements", onSelectedElementsChange: "onSelectedElementsChange", onToogleAllCheckboxes: "onToogleAllCheckboxes", onToogleCheckbox: "onToogleCheckbox", onOpenSearchModal: "onOpenSearchModal", onSearch: "onSearch" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "ngtPagination", first: true, predicate: ["ngtPagination"], descendants: true, static: true }, { propertyName: "searchModal", first: true, predicate: ["searchModal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable>\n {{ filter.translation + ': ' + (filter?.value?.tagValue ? filter.value.tagValue : filter.value)}}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal #searchModal [customLayout]='true' [isDisabled]=\"false\">\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: ["pagesInterval"], outputs: ["onPageChange", "onPerPageChange"] }, { kind: "component", type: NgtModalComponent, selector: "ngt-modal", inputs: ["customLayout", "disableDefaultCloses", "isDisabled", "ngtStyle"], outputs: ["onCloseModal", "onOpenModal"] }, { kind: "component", type: NgtTagComponent, selector: "ngt-tag", inputs: ["icon"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] });
4172
4212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDatatableComponent, decorators: [{
4173
4213
  type: Component,
4174
- args: [{ selector: 'ngt-datatable', template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable>\n {{ filter.translation + ': ' + (filter?.value?.tagValue ? filter.value.tagValue : filter.value)}}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal #searchModal [customLayout]='true'>\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"] }]
4214
+ args: [{ selector: 'ngt-datatable', template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable>\n {{ filter.translation + ': ' + (filter?.value?.tagValue ? filter.value.tagValue : filter.value)}}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal #searchModal [customLayout]='true' [isDisabled]=\"false\">\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"] }]
4175
4215
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtHttpService }, { type: i0.ChangeDetectorRef }, { type: NgtTranslateService, decorators: [{
4176
4216
  type: Optional
4177
4217
  }] }]; }, propDecorators: { table: [{
@@ -4705,10 +4745,10 @@ class NgtThComponent {
4705
4745
  }
4706
4746
  }
4707
4747
  NgtThComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtThComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtDatatableComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
4708
- NgtThComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtThComponent, selector: "[ngt-th]", inputs: { reference: "reference", sortReference: "sortReference", modalWidth: "modalWidth", sortable: "sortable", searchable: "searchable", hasCustomSearch: "hasCustomSearch", searchLabel: "searchLabel", sortableTooltip: "sortableTooltip" }, outputs: { onEnableSearch: "onEnableSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body>\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "helperReverseYPosition", "helperAutoXReverse"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: NgtModalBodyComponent, selector: "ngt-modal-body" }, { kind: "component", type: NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] });
4748
+ NgtThComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtThComponent, selector: "[ngt-th]", inputs: { reference: "reference", sortReference: "sortReference", modalWidth: "modalWidth", sortable: "sortable", searchable: "searchable", hasCustomSearch: "hasCustomSearch", searchLabel: "searchLabel", sortableTooltip: "sortableTooltip" }, outputs: { onEnableSearch: "onEnableSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "helperReverseYPosition", "helperAutoXReverse"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["isDisabled"] }, { kind: "component", type: NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] });
4709
4749
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtThComponent, decorators: [{
4710
4750
  type: Component,
4711
- args: [{ selector: '[ngt-th]', template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body>\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>" }]
4751
+ args: [{ selector: '[ngt-th]', template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>" }]
4712
4752
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: NgtStylizableDirective, decorators: [{
4713
4753
  type: Self
4714
4754
  }, {
@@ -4995,7 +5035,7 @@ class NgtFloatingButtonComponent {
4995
5035
  }
4996
5036
  }
4997
5037
  NgtFloatingButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtFloatingButtonComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4998
- NgtFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtFloatingButtonComponent, selector: "ngt-floating-button", inputs: { menus: "menus", icon: "icon", label: "label", withAnimation: "withAnimation" }, ngImport: i0, template: "<button (click)=\"toggleMenu()\" *ngIf=\"isOpen\" tabindex=\"-1\"\n class=\"fixed z-10 inset-0 h-full w-full bg-black opacity-0 cursor-default\"></button>\n\n<div class=\"{{ ngtStyle.compile(['w']) }} rounded-full relative z-20\" *ngIf=\"isOpen\" @fadeY>\n <ng-container *ngFor=\"let menu of menus; let i = index\">\n <div class=\"my-2 rounded-full shadow-xl\">\n <a *ngIf=\"isTypeNavigation(menu)\" [routerLink]=\"menu.externalLink ? null : menu.url\"\n (click)='menu.externalLink ? openExternalLink(menu.url) : toggleMenu()' title=\"{{ menu.tooltip }}\"\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </a>\n\n <div *ngIf=\"isTypeAction(menu)\" title=\"{{ menu.tooltip }}\" (click)='onClick($event, menu)'\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75 cursor-pointer\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Abrir menu -->\n<div (click)=\"toggleMenu()\"\n class=\"flex z-20 justify-center {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py']) }} focus:outline-none hover:opacity-75 cursor-pointer rounded-full outline-none\">\n <span *ngIf=\"label\"\n class=\"{{ icon ? 'pr-2' : '' }} self-center text-center text-sm font-semibold w-full\">{{ label }}</span>\n <ngt-svg *ngIf=\"icon\" [@openClose]=\"withAnimation ? isOpen ? 'open' : 'closed' : ''\" [src]='icon'\n class=\"fill-current\"></ngt-svg>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }], animations: [
5038
+ NgtFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtFloatingButtonComponent, selector: "ngt-floating-button", inputs: { menus: "menus", icon: "icon", label: "label", withAnimation: "withAnimation" }, ngImport: i0, template: "<button (click)=\"toggleMenu()\" *ngIf=\"isOpen\" tabindex=\"-1\"\n class=\"fixed z-10 inset-0 h-full w-full bg-black opacity-0 cursor-default\"></button>\n\n<div class=\"{{ ngtStyle.compile(['w']) }} rounded-full relative z-20\" *ngIf=\"isOpen\" @fadeY>\n <ng-container *ngFor=\"let menu of menus; let i = index\">\n <div class=\"my-2 rounded-full shadow-xl\">\n <a *ngIf=\"isTypeNavigation(menu)\" [routerLink]=\"menu.externalLink ? null : menu.url\"\n (click)='menu.externalLink ? openExternalLink(menu.url) : toggleMenu()' title=\"{{ menu.tooltip }}\"\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </a>\n\n <div *ngIf=\"isTypeAction(menu)\" title=\"{{ menu.tooltip }}\" (click)='onClick($event, menu)'\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75 cursor-pointer\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Abrir menu -->\n<div (click)=\"toggleMenu()\"\n class=\"flex z-20 justify-center {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py']) }} focus:outline-none hover:opacity-75 cursor-pointer rounded-full outline-none\">\n <span *ngIf=\"label\"\n class=\"{{ icon ? 'pr-2' : '' }} self-center text-center text-sm font-semibold w-full\">{{ label }}</span>\n <ngt-svg *ngIf=\"icon\" [@openClose]=\"withAnimation ? isOpen ? 'open' : 'closed' : ''\" [src]='icon'\n class=\"fill-current\"></ngt-svg>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }], animations: [
4999
5039
  trigger('fadeY', [
5000
5040
  state('void', style({ opacity: 0, transform: 'translateY(10px)' })),
5001
5041
  transition(':enter, :leave', [
@@ -5214,16 +5254,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5214
5254
  }] } });
5215
5255
 
5216
5256
  class NgtRadioButtonComponent extends NgtBaseNgModel {
5217
- constructor(changeDetector, injector, formContainer, renderer, ngtStylizableDirective, ngtForm, ngtSection, ngtRadioButtonContainer) {
5257
+ constructor(injector, renderer, ngtStylizableDirective, ngtForm, ngtSection, ngtModal, ngtRadioButtonContainer, formContainer) {
5218
5258
  super();
5219
- this.changeDetector = changeDetector;
5220
5259
  this.injector = injector;
5221
- this.formContainer = formContainer;
5222
5260
  this.renderer = renderer;
5223
5261
  this.ngtStylizableDirective = ngtStylizableDirective;
5224
5262
  this.ngtForm = ngtForm;
5225
5263
  this.ngtSection = ngtSection;
5264
+ this.ngtModal = ngtModal;
5226
5265
  this.ngtRadioButtonContainer = ngtRadioButtonContainer;
5266
+ this.formContainer = formContainer;
5227
5267
  this.isSelectable = true;
5228
5268
  this.helpTextColor = 'text-green-500';
5229
5269
  this.subscriptions = [];
@@ -5249,12 +5289,6 @@ class NgtRadioButtonComponent extends NgtBaseNgModel {
5249
5289
  this.renderer.listen(this.element.nativeElement, 'change', (value) => {
5250
5290
  this.onNativeChange(this.element.nativeElement.checked);
5251
5291
  });
5252
- this.bindSubscriptions();
5253
- }
5254
- ngOnChanges(changes) {
5255
- if (changes.isDisabled && !changes.isDisabled.currentValue) {
5256
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
5257
- }
5258
5292
  }
5259
5293
  ngOnDestroy() {
5260
5294
  this.destroySubscriptions();
@@ -5273,36 +5307,23 @@ class NgtRadioButtonComponent extends NgtBaseNgModel {
5273
5307
  this.ngtRadioButtonContainer.setActiveRadioButton(this);
5274
5308
  }
5275
5309
  }
5276
- bindSubscriptions() {
5277
- this.changeDetector.detectChanges();
5278
- if (!this.isDisabled) {
5279
- this.isDisabled = this.ngtForm?.isDisabled || this.ngtSection?.isDisabled;
5280
- }
5281
- if (this.ngtForm) {
5282
- this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
5283
- if (!this.isDisabled) {
5284
- this.isDisabled = isDisabled || this.ngtSection?.isDisabled;
5285
- }
5286
- }));
5287
- }
5288
- if (this.ngtSection) {
5289
- this.subscriptions.push(this.ngtSection.onIsDisabledChange.subscribe((isDisabled) => {
5290
- if (!this.isDisabled) {
5291
- this.isDisabled = isDisabled || this.ngtForm?.isDisabled;
5292
- }
5293
- }));
5294
- }
5295
- this.changeDetector.detectChanges();
5310
+ disabled() {
5311
+ return this.isDisabled || this.isDisabledByParent();
5312
+ }
5313
+ isDisabledByParent() {
5314
+ return this.ngtForm?.isDisabled
5315
+ || this.ngtSection?.isDisabled
5316
+ || this.ngtModal?.isDisabled;
5296
5317
  }
5297
5318
  destroySubscriptions() {
5298
5319
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
5299
5320
  this.subscriptions = [];
5300
5321
  }
5301
5322
  }
5302
- NgtRadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtRadioButtonContainerComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
5323
+ NgtRadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }, { token: NgtRadioButtonContainerComponent, optional: true, skipSelf: true }, { token: i2$1.ControlContainer, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
5303
5324
  NgtRadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtRadioButtonComponent, selector: "ngt-radio-button", inputs: { label: "label", name: "name", shining: "shining", isSelectable: "isSelectable", isDisabled: "isDisabled", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText" }, providers: [
5304
5325
  NgtMakeProvider(NgtRadioButtonComponent),
5305
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label\n class=\"inline-flex items-center {{ isDisabled || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='isDisabled || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
5326
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<label\n class=\"inline-flex items-center {{ disabled() || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='disabled() || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
5306
5327
  { provide: ControlContainer, useExisting: NgForm }
5307
5328
  ] });
5308
5329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtRadioButtonComponent, decorators: [{
@@ -5311,12 +5332,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5311
5332
  NgtMakeProvider(NgtRadioButtonComponent),
5312
5333
  ], viewProviders: [
5313
5334
  { provide: ControlContainer, useExisting: NgForm }
5314
- ], template: "<label\n class=\"inline-flex items-center {{ isDisabled || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='isDisabled || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"] }]
5315
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i2$1.ControlContainer, decorators: [{
5316
- type: Optional
5317
- }, {
5318
- type: Host
5319
- }] }, { type: i0.Renderer2 }, { type: NgtStylizableDirective, decorators: [{
5335
+ ], template: "<label\n class=\"inline-flex items-center {{ disabled() || !isSelectable ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]='disabled() || !isSelectable'\n #element>\n\n <div class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow rounded-full border border-gray-400 {{ !shining ? 'flex justify-center items-center' : 'hidden' }}\"\n style=\"width: 19px; height: 19px;\">\n <svg *ngIf=\"value\" class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 29.107 29.107\"\n style=\"width: 13px; height: 13px;\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n\n <span *ngIf='label && !shining' class=\"text-sm ml-2\" [class.line-through]='!isSelectable'>\n {{ label }}\n </span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", styles: ["label{margin-bottom:unset!important}\n"] }]
5336
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: NgtStylizableDirective, decorators: [{
5320
5337
  type: Self
5321
5338
  }, {
5322
5339
  type: Optional
@@ -5328,10 +5345,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5328
5345
  type: Optional
5329
5346
  }, {
5330
5347
  type: SkipSelf
5348
+ }] }, { type: NgtModalComponent, decorators: [{
5349
+ type: Optional
5350
+ }, {
5351
+ type: SkipSelf
5331
5352
  }] }, { type: NgtRadioButtonContainerComponent, decorators: [{
5332
5353
  type: Optional
5333
5354
  }, {
5334
5355
  type: SkipSelf
5356
+ }] }, { type: i2$1.ControlContainer, decorators: [{
5357
+ type: Optional
5358
+ }, {
5359
+ type: Host
5335
5360
  }] }]; }, propDecorators: { element: [{
5336
5361
  type: ViewChild,
5337
5362
  args: ['element', { static: true }]
@@ -5635,12 +5660,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5635
5660
  }] });
5636
5661
 
5637
5662
  class NgtDateComponent extends NgtBaseNgModel {
5638
- constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent) {
5663
+ constructor(formContainer, injector, ngtStylizableDirective, ngtForm, ngtSection, ngtModal) {
5639
5664
  super();
5665
+ this.formContainer = formContainer;
5640
5666
  this.injector = injector;
5641
5667
  this.ngtStylizableDirective = ngtStylizableDirective;
5642
- this.formContainer = formContainer;
5643
- this.ngtFormComponent = ngtFormComponent;
5668
+ this.ngtForm = ngtForm;
5669
+ this.ngtSection = ngtSection;
5670
+ this.ngtModal = ngtModal;
5644
5671
  // Visual
5645
5672
  this.label = "";
5646
5673
  this.placeholder = "dd/mm/yyyy";
@@ -5664,9 +5691,9 @@ class NgtDateComponent extends NgtBaseNgModel {
5664
5691
  this.nativeName = uuid();
5665
5692
  this.inputProperties = {};
5666
5693
  this.subscriptions = [];
5667
- if (this.ngtFormComponent) {
5668
- this.shining = this.ngtFormComponent.isShining();
5669
- this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
5694
+ if (this.ngtForm) {
5695
+ this.shining = this.ngtForm.isShining();
5696
+ this.subscriptions.push(this.ngtForm.onShiningChange.subscribe((shining) => {
5670
5697
  this.shining = shining;
5671
5698
  }));
5672
5699
  }
@@ -5838,6 +5865,9 @@ class NgtDateComponent extends NgtBaseNgModel {
5838
5865
  hasErrors() {
5839
5866
  return this.formControl?.errors && (this.formControl?.dirty || (this.formContainer && this.formContainer['submitted']));
5840
5867
  }
5868
+ disabled() {
5869
+ return this.isDisabled || this.isDisabledByParent();
5870
+ }
5841
5871
  initComponent() {
5842
5872
  if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {
5843
5873
  if (this.defaultDate && !this.value) {
@@ -5938,15 +5968,20 @@ class NgtDateComponent extends NgtBaseNgModel {
5938
5968
  const splittedDate = dateTimeString.split('/');
5939
5969
  return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;
5940
5970
  }
5971
+ isDisabledByParent() {
5972
+ return this.ngtForm?.isDisabled
5973
+ || this.ngtSection?.isDisabled
5974
+ || this.ngtModal?.isDisabled;
5975
+ }
5941
5976
  destroySubscriptions() {
5942
5977
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
5943
5978
  this.subscriptions = [];
5944
5979
  }
5945
5980
  }
5946
- NgtDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDateComponent, deps: [{ token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtFormComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
5981
+ NgtDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDateComponent, deps: [{ token: i2$1.ControlContainer, host: true, optional: true }, { token: i0.Injector }, { token: NgtStylizableDirective, optional: true, self: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
5947
5982
  NgtDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtDateComponent, selector: "ngt-date", inputs: { label: "label", placeholder: "placeholder", helpTitle: "helpTitle", helpText: "helpText", helpTextColor: "helpTextColor", shining: "shining", dateFormat: "dateFormat", dateFormatNgModel: "dateFormatNgModel", showCalendarIcon: "showCalendarIcon", helperReverseYPosition: "helperReverseYPosition", name: "name", isDisabled: "isDisabled", isReadonly: "isReadonly", mode: "mode", time_24hr: "time_24hr", enableTime: "enableTime", noCalendar: "noCalendar", minuteIncrement: "minuteIncrement", allowInput: "allowInput", locale: "locale", allowClear: "allowClear", minDate: "minDate", maxDate: "maxDate", defaultDate: "defaultDate", isRequired: "isRequired" }, providers: [
5948
5983
  NgtMakeProvider(NgtDateComponent),
5949
- ], viewQueries: [{ propertyName: "ng2FlatpickrComponent", first: true, predicate: ["ng2FlatpickrComponent"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 {{ngtStyle.compile(['text', 'fontCase'])}} flex\" *ngIf=\"label\"\n [hidden]='shining'>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div class=\"relative\" [hidden]='shining || isDisabled || isReadonly'>\n <div\n class=\"overflow-hidden {{ ngtStyle.compile(['h', 'color.text']) }} {{ hasErrors() ? 'border-error' : 'border-normal' }}\">\n <ng2-flatpickr class=\"block h-full\" [config]='dateConfig' disabled='true' placeholder=\"{{ placeholder }}\"\n #ng2FlatpickrComponent>\n </ng2-flatpickr>\n\n <div *ngIf=\"allowClear && value\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer {{showCalendarIcon ? 'mr-6' : 'mr-2'}}\"\n (click)='clearInput(true)'>\n <svg class=\"fill-current text-red-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showCalendarIcon\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer mr-2\">\n <svg class=\"fill-current text-lg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19,4H17V3a1,1,0,0,0-2,0V4H9V3A1,1,0,0,0,7,3V4H5A3,3,0,0,0,2,7V19a3,3,0,0,0,3,3H19a3,3,0,0,0,3-3V7A3,3,0,0,0,19,4Zm1,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V12H20Zm0-9H4V7A1,1,0,0,1,5,6H7V7A1,1,0,0,0,9,7V6h6V7a1,1,0,0,0,2,0V6h2a1,1,0,0,1,1,1Z\" />\n </svg>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ng-container *ngIf='isDisabled || isReadonly'>\n <div\n class=\"{{isDisabled ? 'disabledDiv' : ''}} {{ngtStyle.compile(['h'])}} w-full px-4 rounded appearance-none flex items-center border border-gray-400\">\n {{ getFormattedNativeValue() }}\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n", styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:auto;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:30px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:30px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:30px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:12px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:solid #c53030 1px;background-color:unset!important;border-radius:.25rem}.border-normal{border:solid #cbd5e0 1px;background-color:unset!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.Ng2FlatpickrComponent, selector: "ng2-flatpickr", inputs: ["placeholder", "addClass", "hideButton", "tabindex", "config", "setDate"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
5984
+ ], viewQueries: [{ propertyName: "ng2FlatpickrComponent", first: true, predicate: ["ng2FlatpickrComponent"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 {{ngtStyle.compile(['text', 'fontCase'])}} flex\" *ngIf=\"label\"\n [hidden]='shining'>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div class=\"relative\" [hidden]='shining || disabled() || isReadonly'>\n <div\n class=\"overflow-hidden {{ ngtStyle.compile(['h', 'color.text']) }} {{ hasErrors() ? 'border-error' : 'border-normal' }}\">\n <ng2-flatpickr class=\"block h-full\" [config]='dateConfig' disabled='true' placeholder=\"{{ placeholder }}\"\n #ng2FlatpickrComponent>\n </ng2-flatpickr>\n\n <div *ngIf=\"allowClear && value\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer {{showCalendarIcon ? 'mr-6' : 'mr-2'}}\"\n (click)='clearInput(true)'>\n <svg class=\"fill-current text-red-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showCalendarIcon\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer mr-2\">\n <svg class=\"fill-current text-lg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19,4H17V3a1,1,0,0,0-2,0V4H9V3A1,1,0,0,0,7,3V4H5A3,3,0,0,0,2,7V19a3,3,0,0,0,3,3H19a3,3,0,0,0,3-3V7A3,3,0,0,0,19,4Zm1,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V12H20Zm0-9H4V7A1,1,0,0,1,5,6H7V7A1,1,0,0,0,9,7V6h6V7a1,1,0,0,0,2,0V6h2a1,1,0,0,1,1,1Z\" />\n </svg>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ng-container *ngIf='disabled() || isReadonly'>\n <div\n class=\"{{disabled() ? 'disabledDiv' : ''}} {{ngtStyle.compile(['h'])}} w-full px-4 rounded appearance-none flex items-center border border-gray-400\">\n {{ getFormattedNativeValue() }}\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>", styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:auto;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:30px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:30px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:30px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:12px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:solid #c53030 1px;background-color:unset!important;border-radius:.25rem}.border-normal{border:solid #cbd5e0 1px;background-color:unset!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.Ng2FlatpickrComponent, selector: "ng2-flatpickr", inputs: ["placeholder", "addClass", "hideButton", "tabindex", "config", "setDate"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
5950
5985
  { provide: ControlContainer, useExisting: NgForm }
5951
5986
  ], encapsulation: i0.ViewEncapsulation.None });
5952
5987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDateComponent, decorators: [{
@@ -5955,16 +5990,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5955
5990
  NgtMakeProvider(NgtDateComponent),
5956
5991
  ], viewProviders: [
5957
5992
  { provide: ControlContainer, useExisting: NgForm }
5958
- ], template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 {{ngtStyle.compile(['text', 'fontCase'])}} flex\" *ngIf=\"label\"\n [hidden]='shining'>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div class=\"relative\" [hidden]='shining || isDisabled || isReadonly'>\n <div\n class=\"overflow-hidden {{ ngtStyle.compile(['h', 'color.text']) }} {{ hasErrors() ? 'border-error' : 'border-normal' }}\">\n <ng2-flatpickr class=\"block h-full\" [config]='dateConfig' disabled='true' placeholder=\"{{ placeholder }}\"\n #ng2FlatpickrComponent>\n </ng2-flatpickr>\n\n <div *ngIf=\"allowClear && value\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer {{showCalendarIcon ? 'mr-6' : 'mr-2'}}\"\n (click)='clearInput(true)'>\n <svg class=\"fill-current text-red-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showCalendarIcon\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer mr-2\">\n <svg class=\"fill-current text-lg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19,4H17V3a1,1,0,0,0-2,0V4H9V3A1,1,0,0,0,7,3V4H5A3,3,0,0,0,2,7V19a3,3,0,0,0,3,3H19a3,3,0,0,0,3-3V7A3,3,0,0,0,19,4Zm1,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V12H20Zm0-9H4V7A1,1,0,0,1,5,6H7V7A1,1,0,0,0,9,7V6h6V7a1,1,0,0,0,2,0V6h2a1,1,0,0,1,1,1Z\" />\n </svg>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ng-container *ngIf='isDisabled || isReadonly'>\n <div\n class=\"{{isDisabled ? 'disabledDiv' : ''}} {{ngtStyle.compile(['h'])}} w-full px-4 rounded appearance-none flex items-center border border-gray-400\">\n {{ getFormattedNativeValue() }}\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n", styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:auto;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:30px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:30px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:30px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:12px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:solid #c53030 1px;background-color:unset!important;border-radius:.25rem}.border-normal{border:solid #cbd5e0 1px;background-color:unset!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa}\n"] }]
5959
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
5993
+ ], template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 {{ngtStyle.compile(['text', 'fontCase'])}} flex\" *ngIf=\"label\"\n [hidden]='shining'>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<div class=\"relative\" [hidden]='shining || disabled() || isReadonly'>\n <div\n class=\"overflow-hidden {{ ngtStyle.compile(['h', 'color.text']) }} {{ hasErrors() ? 'border-error' : 'border-normal' }}\">\n <ng2-flatpickr class=\"block h-full\" [config]='dateConfig' disabled='true' placeholder=\"{{ placeholder }}\"\n #ng2FlatpickrComponent>\n </ng2-flatpickr>\n\n <div *ngIf=\"allowClear && value\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer {{showCalendarIcon ? 'mr-6' : 'mr-2'}}\"\n (click)='clearInput(true)'>\n <svg class=\"fill-current text-red-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\n </svg>\n </div>\n\n <div *ngIf=\"showCalendarIcon\"\n class=\"flex h-full absolute items-center right-0 top-0 w-auto cursor-pointer mr-2\">\n <svg class=\"fill-current text-lg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M19,4H17V3a1,1,0,0,0-2,0V4H9V3A1,1,0,0,0,7,3V4H5A3,3,0,0,0,2,7V19a3,3,0,0,0,3,3H19a3,3,0,0,0,3-3V7A3,3,0,0,0,19,4Zm1,15a1,1,0,0,1-1,1H5a1,1,0,0,1-1-1V12H20Zm0-9H4V7A1,1,0,0,1,5,6H7V7A1,1,0,0,0,9,7V6h6V7a1,1,0,0,0,2,0V6h2a1,1,0,0,1,1,1Z\" />\n </svg>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n</ng-container>\n\n<ng-container *ngIf='disabled() || isReadonly'>\n <div\n class=\"{{disabled() ? 'disabledDiv' : ''}} {{ngtStyle.compile(['h'])}} w-full px-4 rounded appearance-none flex items-center border border-gray-400\">\n {{ getFormattedNativeValue() }}\n </div>\n</ng-container>\n\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n\n<ng-content></ng-content>\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>", styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:auto;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:30px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:30px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:30px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:12px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:solid #c53030 1px;background-color:unset!important;border-radius:.25rem}.border-normal{border:solid #cbd5e0 1px;background-color:unset!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa}\n"] }]
5994
+ }], ctorParameters: function () { return [{ type: i2$1.ControlContainer, decorators: [{
5995
+ type: Optional
5996
+ }, {
5997
+ type: Host
5998
+ }] }, { type: i0.Injector }, { type: NgtStylizableDirective, decorators: [{
5960
5999
  type: Self
5961
6000
  }, {
5962
6001
  type: Optional
5963
- }] }, { type: i2$1.ControlContainer, decorators: [{
6002
+ }] }, { type: NgtFormComponent, decorators: [{
5964
6003
  type: Optional
5965
6004
  }, {
5966
- type: Host
5967
- }] }, { type: NgtFormComponent, decorators: [{
6005
+ type: SkipSelf
6006
+ }] }, { type: NgtSectionComponent, decorators: [{
6007
+ type: Optional
6008
+ }, {
6009
+ type: SkipSelf
6010
+ }] }, { type: NgtModalComponent, decorators: [{
5968
6011
  type: Optional
5969
6012
  }, {
5970
6013
  type: SkipSelf
@@ -6065,16 +6108,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
6065
6108
  }] });
6066
6109
 
6067
6110
  class NgtButtonComponent {
6068
- constructor(changeDetector, injector, ngtForm, ngtStylizableDirective) {
6111
+ constructor(changeDetector, injector, ngtForm, ngtSection, ngtModal, ngtStylizableDirective) {
6069
6112
  this.changeDetector = changeDetector;
6070
6113
  this.injector = injector;
6071
6114
  this.ngtForm = ngtForm;
6115
+ this.ngtSection = ngtSection;
6116
+ this.ngtModal = ngtModal;
6072
6117
  this.ngtStylizableDirective = ngtStylizableDirective;
6073
- this.link = false;
6074
6118
  this.type = 'success';
6075
- this.loading = false;
6076
- this.isDisabled = false;
6077
- this.noSubmit = false;
6078
6119
  this.subscriptions = [];
6079
6120
  if (this.ngtStylizableDirective) {
6080
6121
  this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
@@ -6084,11 +6125,12 @@ class NgtButtonComponent {
6084
6125
  }
6085
6126
  this.ngtStyle.load(this.injector, 'NgtButton', {
6086
6127
  px: 'px-4',
6087
- py: 'py-2'
6128
+ py: 'py-2',
6129
+ text: 'text-sm'
6088
6130
  });
6089
6131
  }
6090
6132
  onClick(event) {
6091
- if (this.isDisabled || this.loading) {
6133
+ if (this.disabled() || this.loading) {
6092
6134
  event.preventDefault();
6093
6135
  event.stopPropagation();
6094
6136
  }
@@ -6132,51 +6174,64 @@ class NgtButtonComponent {
6132
6174
  }
6133
6175
  }
6134
6176
  }
6177
+ disabled() {
6178
+ return !this.forceEnable && (this.isDisabled || this.isDisabledByParent());
6179
+ }
6135
6180
  ngOnDestroy() {
6136
6181
  this.destroySubscriptions();
6137
6182
  }
6138
6183
  bindSubscriptions() {
6139
- this.changeDetector.detectChanges();
6140
6184
  if (this.ngtForm) {
6141
6185
  this.loading = this.ngtForm.isLoading();
6142
- this.isDisabled = !this.isDisabled && this.ngtForm.isDisabled;
6143
6186
  this.changeDetector.detectChanges();
6144
6187
  this.subscriptions.push(this.ngtForm.onLoadingChange.subscribe((loading) => {
6145
6188
  this.loading = loading;
6146
6189
  }));
6147
- this.subscriptions.push(this.ngtForm.onIsDisabledChange.subscribe((isDisabled) => {
6148
- this.isDisabled = !this.isDisabled && isDisabled;
6149
- }));
6150
6190
  }
6151
6191
  }
6192
+ isDisabledByParent() {
6193
+ return this.ngtForm?.isDisabled
6194
+ || this.ngtSection?.isDisabled
6195
+ || this.ngtModal?.isDisabled;
6196
+ }
6152
6197
  destroySubscriptions() {
6153
6198
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
6154
6199
  this.subscriptions = [];
6155
6200
  }
6156
6201
  }
6157
- NgtButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
6158
- NgtButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtButtonComponent, selector: "ngt-button", inputs: { link: "link", href: "href", type: "type", loading: "loading", isDisabled: "isDisabled", noSubmit: "noSubmit" }, usesOnChanges: true, ngImport: i0, template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<div class=\"h-full w-full\" (click)='onClick($event)'>\n <ng-container *ngIf='!link'>\n <button [ngClass]=\"{ 'disabled-button': isDisabled, 'loading-button': loading }\" [disabled]=\"isDisabled\"\n [type]=\"(loading || isDisabled || noSubmit) ? 'button' : 'submit'\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border']) }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span *ngIf=\"loading\" class=\"ml-2\">\n <div class=\"div-loader h-5 w-5\"></div>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf='link'>\n <a [routerLink]='href ? href : null' [ngClass]=\"{ 'disabled-button': isDisabled, 'loading-button': loading }\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border']) }}\">\n <span class=\"w-full\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <span *ngIf=\"loading\" class=\"ml-1\">\n <div class=\"div-loader\"></div>\n </span>\n </a>\n </ng-container>\n</div>", styles: [".disabled-button{opacity:.5!important;cursor:not-allowed!important}.loading-button{opacity:.5!important;cursor:wait!important}.div-loader{border:3px solid #edf2f738;border-top-color:#edf2f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
6202
+ NgtButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }, { token: NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
6203
+ NgtButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtButtonComponent, selector: "ngt-button", inputs: { href: "href", type: "type", link: "link", loading: "loading", isDisabled: "isDisabled", forceEnable: "forceEnable", noSubmit: "noSubmit" }, usesOnChanges: true, ngImport: i0, template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<div class=\"relative h-full w-full\" (click)='onClick($event)'>\n <ng-container *ngIf='!link'>\n <button [ngClass]=\"{ 'disabled-button': disabled(), 'loading-button': loading }\" [disabled]=\"disabled()\"\n [type]=\"(loading || disabled() || noSubmit) ? 'button' : 'submit'\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border', 'text']) }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span *ngIf=\"loading\" class=\"ml-2\">\n <div class=\"div-loader h-5 w-5\"></div>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf='link'>\n <a [routerLink]='href ? href : null' [ngClass]=\"{ 'disabled-button': disabled(), 'loading-button': loading }\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border', 'text']) }}\">\n <span class=\"w-full\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <span *ngIf=\"loading\" class=\"ml-1\">\n <div class=\"div-loader\"></div>\n </span>\n </a>\n </ng-container>\n\n <legend *ngIf=\"forceEnable\" class=\"absolute top-0 h-full w-full cursor-pointer hover:opacity-25 hover:bg-gray-100\"\n (click)='onClick($event)'>\n </legend>\n</div>", styles: [".disabled-button{opacity:.5!important;cursor:not-allowed!important}.loading-button{opacity:.5!important;cursor:wait!important}.div-loader{border:3px solid #edf2f738;border-top-color:#edf2f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
6159
6204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtButtonComponent, decorators: [{
6160
6205
  type: Component,
6161
- args: [{ selector: 'ngt-button', template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<div class=\"h-full w-full\" (click)='onClick($event)'>\n <ng-container *ngIf='!link'>\n <button [ngClass]=\"{ 'disabled-button': isDisabled, 'loading-button': loading }\" [disabled]=\"isDisabled\"\n [type]=\"(loading || isDisabled || noSubmit) ? 'button' : 'submit'\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border']) }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span *ngIf=\"loading\" class=\"ml-2\">\n <div class=\"div-loader h-5 w-5\"></div>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf='link'>\n <a [routerLink]='href ? href : null' [ngClass]=\"{ 'disabled-button': isDisabled, 'loading-button': loading }\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border']) }}\">\n <span class=\"w-full\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <span *ngIf=\"loading\" class=\"ml-1\">\n <div class=\"div-loader\"></div>\n </span>\n </a>\n </ng-container>\n</div>", styles: [".disabled-button{opacity:.5!important;cursor:not-allowed!important}.loading-button{opacity:.5!important;cursor:wait!important}.div-loader{border:3px solid #edf2f738;border-top-color:#edf2f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
6206
+ args: [{ selector: 'ngt-button', template: "<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<div class=\"relative h-full w-full\" (click)='onClick($event)'>\n <ng-container *ngIf='!link'>\n <button [ngClass]=\"{ 'disabled-button': disabled(), 'loading-button': loading }\" [disabled]=\"disabled()\"\n [type]=\"(loading || disabled() || noSubmit) ? 'button' : 'submit'\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border', 'text']) }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span *ngIf=\"loading\" class=\"ml-2\">\n <div class=\"div-loader h-5 w-5\"></div>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngIf='link'>\n <a [routerLink]='href ? href : null' [ngClass]=\"{ 'disabled-button': disabled(), 'loading-button': loading }\"\n class=\"flex justify-center items-center h-full w-full focus:outline-none rounded cursor-pointer {{ ngtStyle.compile(['color.bg', 'color.text', 'color.border', 'px', 'py', 'border', 'text']) }}\">\n <span class=\"w-full\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <span *ngIf=\"loading\" class=\"ml-1\">\n <div class=\"div-loader\"></div>\n </span>\n </a>\n </ng-container>\n\n <legend *ngIf=\"forceEnable\" class=\"absolute top-0 h-full w-full cursor-pointer hover:opacity-25 hover:bg-gray-100\"\n (click)='onClick($event)'>\n </legend>\n</div>", styles: [".disabled-button{opacity:.5!important;cursor:not-allowed!important}.loading-button{opacity:.5!important;cursor:wait!important}.div-loader{border:3px solid #edf2f738;border-top-color:#edf2f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
6162
6207
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: NgtFormComponent, decorators: [{
6163
6208
  type: Optional
6164
6209
  }, {
6165
6210
  type: SkipSelf
6211
+ }] }, { type: NgtSectionComponent, decorators: [{
6212
+ type: Optional
6213
+ }, {
6214
+ type: SkipSelf
6215
+ }] }, { type: NgtModalComponent, decorators: [{
6216
+ type: Optional
6217
+ }, {
6218
+ type: SkipSelf
6166
6219
  }] }, { type: NgtStylizableDirective, decorators: [{
6167
6220
  type: Self
6168
6221
  }, {
6169
6222
  type: Optional
6170
- }] }]; }, propDecorators: { link: [{
6171
- type: Input
6172
- }], href: [{
6223
+ }] }]; }, propDecorators: { href: [{
6173
6224
  type: Input
6174
6225
  }], type: [{
6175
6226
  type: Input
6227
+ }], link: [{
6228
+ type: Input
6176
6229
  }], loading: [{
6177
6230
  type: Input
6178
6231
  }], isDisabled: [{
6179
6232
  type: Input
6233
+ }], forceEnable: [{
6234
+ type: Input
6180
6235
  }], noSubmit: [{
6181
6236
  type: Input
6182
6237
  }] } });
@@ -6716,14 +6771,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
6716
6771
  }] });
6717
6772
 
6718
6773
  class NgtMultiSelectComponent extends NgtBaseNgModel {
6719
- constructor(ngtHttpService, injector, changeDetector, ngtStylizableDirective, formContainer, ngtFormComponent, ngtTranslateService) {
6774
+ constructor(ngtHttpService, injector, changeDetector, ngtForm, ngtSection, ngtModal, ngtStylizableDirective, formContainer, ngtTranslateService) {
6720
6775
  super();
6721
6776
  this.ngtHttpService = ngtHttpService;
6722
6777
  this.injector = injector;
6723
6778
  this.changeDetector = changeDetector;
6779
+ this.ngtForm = ngtForm;
6780
+ this.ngtSection = ngtSection;
6781
+ this.ngtModal = ngtModal;
6724
6782
  this.ngtStylizableDirective = ngtStylizableDirective;
6725
6783
  this.formContainer = formContainer;
6726
- this.ngtFormComponent = ngtFormComponent;
6727
6784
  this.ngtTranslateService = ngtTranslateService;
6728
6785
  this.helpTextColor = 'text-green-500';
6729
6786
  this.helperAutoXReverse = true;
@@ -6755,9 +6812,9 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6755
6812
  };
6756
6813
  this.subscriptions = [];
6757
6814
  this.previousSearchTerm = '';
6758
- if (this.ngtFormComponent) {
6759
- this.shining = this.ngtFormComponent.isShining();
6760
- this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
6815
+ if (this.ngtForm) {
6816
+ this.shining = this.ngtForm.isShining();
6817
+ this.subscriptions.push(this.ngtForm.onShiningChange.subscribe((shining) => {
6761
6818
  this.shining = shining;
6762
6819
  }));
6763
6820
  }
@@ -6798,7 +6855,7 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6798
6855
  this.updateValidations();
6799
6856
  }
6800
6857
  if (changes.isDisabled) {
6801
- this.displayOnlySelected = changes.isDisabled.currentValue;
6858
+ this.displayOnlySelected = this.disabled();
6802
6859
  }
6803
6860
  if (changes.items) {
6804
6861
  this.bindSelectableElements(changes.items.currentValue);
@@ -6829,7 +6886,7 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6829
6886
  this.refresh();
6830
6887
  }
6831
6888
  selectAll() {
6832
- if (!this.loading && !this.isDisabled) {
6889
+ if (!this.loading && !this.disabled()) {
6833
6890
  this.selectAllCheckbox = !this.selectAllCheckbox;
6834
6891
  this.value = [];
6835
6892
  this.nativeValue = [];
@@ -6846,7 +6903,7 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6846
6903
  }
6847
6904
  }
6848
6905
  selectElements(elements) {
6849
- if (!this.isDisabled) {
6906
+ if (!this.disabled()) {
6850
6907
  const elementIds = this.isColoquentResources() ? elements.map(element => element.getApiId()) : elements;
6851
6908
  this.selectableElements.forEach((selectableElement) => {
6852
6909
  const value = selectableElement.value;
@@ -6861,7 +6918,7 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6861
6918
  }
6862
6919
  toggleItem(selectableElement, event) {
6863
6920
  event?.stopImmediatePropagation();
6864
- if (!this.isDisabled) {
6921
+ if (!this.disabled()) {
6865
6922
  selectableElement.isSelected = !selectableElement.isSelected;
6866
6923
  this.handleElementSelection(selectableElement);
6867
6924
  }
@@ -6938,6 +6995,9 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6938
6995
  hasValidationErrors() {
6939
6996
  return this.formControl?.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']));
6940
6997
  }
6998
+ disabled() {
6999
+ return this.isDisabled || this.isDisabledByParent();
7000
+ }
6941
7001
  handleElementSelection(selectableElement) {
6942
7002
  if (selectableElement.isSelected && !this.isSelectedElement(selectableElement)) {
6943
7003
  this.selectedElements.push(selectableElement);
@@ -6975,7 +7035,7 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
6975
7035
  this.onDataChange.emit(this.selectableElements);
6976
7036
  this.componentReady = true;
6977
7037
  this.changeDetector.detectChanges();
6978
- setTimeout(() => this.displayOnlySelected = this.isDisabled);
7038
+ setTimeout(() => this.displayOnlySelected = this.disabled());
6979
7039
  resolve();
6980
7040
  }, (error) => {
6981
7041
  console.error(error);
@@ -7063,15 +7123,20 @@ class NgtMultiSelectComponent extends NgtBaseNgModel {
7063
7123
  isColoquentResources() {
7064
7124
  return this.selectableElements?.length && typeof this.selectableElements[0].value['getApiId'] === 'function';
7065
7125
  }
7126
+ isDisabledByParent() {
7127
+ return this.ngtForm?.isDisabled
7128
+ || this.ngtSection?.isDisabled
7129
+ || this.ngtModal?.isDisabled;
7130
+ }
7066
7131
  destroySubscriptions() {
7067
7132
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
7068
7133
  this.subscriptions = [];
7069
7134
  }
7070
7135
  }
7071
- NgtMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectComponent, deps: [{ token: NgtHttpService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7136
+ NgtMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectComponent, deps: [{ token: NgtHttpService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }, { token: NgtStylizableDirective, optional: true, self: true }, { token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7072
7137
  NgtMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtMultiSelectComponent, selector: "ngt-multi-select", inputs: { customOptionTemplate: "customOptionTemplate", customHeaderTemplate: "customHeaderTemplate", label: "label", helpTitle: "helpTitle", helpText: "helpText", helpTextColor: "helpTextColor", helperReverseYPosition: "helperReverseYPosition", helperAutoXReverse: "helperAutoXReverse", shining: "shining", loading: "loading", bindLabel: "bindLabel", bindSearch: "bindSearch", itemsPerPage: "itemsPerPage", name: "name", remoteResource: "remoteResource", items: "items", searchable: "searchable", isRequired: "isRequired", isDisabled: "isDisabled" }, outputs: { onDataChange: "onDataChange" }, host: { listeners: { "scroll": "onScroll($event)" } }, providers: [
7073
7138
  NgtMakeProvider(NgtMultiSelectComponent)
7074
- ], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "inputSearch", first: true, predicate: ["inputSearch"], descendants: true }, { propertyName: "elementCheckboxTemplate", first: true, predicate: ["elementCheckboxTemplate"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label && !shining\" class=\"flex text-sm\" [class.mb-2]='!hasValidationErrors()'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ngt-validation [hidden]='shining' class=\"block mb-1\" [control]='formControl' [container]='formContainer'>\n</ngt-validation>\n\n<div class=\"{{ shining ? 'hidden' : 'flex flex-col' }} border w-full rounded {{ ngtStyle.compile(['h']) }}\"\n style=\"min-height: 16rem;\" [class.border-red-500]='hasValidationErrors()' [class.disabled-background]='isDisabled'>\n <div class=\"flex items-center w-full p-2 border-b\">\n <ngt-checkbox class=\"flex\" title=\"Selecionar todos\" [label]=\"!searchable ? 'Selecionar todos' : ''\"\n [(ngModel)]=\"selectAllCheckbox\" [name]=\"selectAllCheckboxName\" [isClickDisabled]='true'\n [isDisabled]='loading || isDisabled' h='h-5' w='w-5' (click)='selectAll()' ngt-stylizable>\n </ngt-checkbox>\n\n <ngt-input *ngIf=\"searchable\" class=\"block w-full pl-2\" [name]='searchInputName' [(ngModel)]='searchTerm'\n placeholder='Buscar...' [allowClear]='true' [jit]='true' h='h-10' (ngModelChange)='search($event)'\n [loading]='loading' [isDisabled]='isDisabled' ngt-stylizable #inputSearch>\n </ngt-input>\n </div>\n\n <div *ngIf=\"loading\" class=\"flex flex-col gap-3 px-3 h-full w-full cursor-wait\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n\n <div class=\"w-full overflow-y-auto text-sm {{ loading ? 'hidden' : 'flex flex-col' }}\" (scroll)='onScroll($event)'\n #containerRef>\n <ng-container *ngIf=\"customHeaderTemplate\" [ngTemplateOutlet]=\"customHeaderTemplate\">\n </ng-container>\n\n <ng-container *ngFor=\"let element of getSelectableElements(); let i = index\">\n <div class=\"flex w-full items-center hover:bg-gray-200 {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.p-2]='!customOptionTemplate' (click)='toggleItem(element, $event)'>\n <ng-template let-element #elementCheckboxTemplate>\n <ngt-checkbox class=\"flex pr-2\" [name]='element.uuid' [(ngModel)]=\"element.isSelected\"\n (ngModelChange)='onNativeChange(element)' [isClickDisabled]='true' [isDisabled]='isDisabled'\n h='h-5' w='w-5' (click)='toggleItem(element, $event)' ngt-stylizable>\n </ngt-checkbox>\n </ng-template>\n\n <ng-template let-element #defaultOptionTemplate>\n {{ getSelectableElementValue(element) }}\n </ng-template>\n\n <ng-container *ngIf=\"!customOptionTemplate\" [ngTemplateOutlet]=\"elementCheckboxTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element }\">\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element, index: i }\">\n </ng-container>\n </div>\n </ng-container>\n\n <p *ngIf=\"!getSelectableElements()?.length\" class=\"text-center mt-4\">\n {{ ngtTranslateService.ngtMultiSelectNoDataFound }}\n </p>\n </div>\n</div>\n\n<div class=\"{{ shining ? 'hidden' : 'flex' }} w-full items-center mt-2\">\n <span class=\"text-sm mr-4\">\n {{ selectedElements?.length || 0 }} / {{ itemsTotal || 0 }}\n </span>\n\n <ngt-checkbox class=\"flex\" label=\"Visualizar selecionados\" [name]='displayOnlySelectedName'\n [(ngModel)]=\"displayOnlySelected\" [isDisabled]='loading' h='h-5' w='w-5' ngt-stylizable>\n </ngt-checkbox>\n</div>\n\n<ngt-shining *ngIf='shining' class=\"block w-full {{ ngtStyle.compile(['h']) }}\" style=\"min-height: 16rem;\"\n rounded='rounded' ngt-stylizable>\n</ngt-shining>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]='value' [name]='name' [value]='value'>\n", styles: [".disabled-background{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem!important;padding:1px!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "helperReverseYPosition", "helperAutoXReverse"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: ["label", "shining", "isDisabled", "isClickDisabled", "name", "mode", "helpTitle", "helpTextColor", "helpText", "helperAutoXReverse"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }], viewProviders: [
7139
+ ], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "inputSearch", first: true, predicate: ["inputSearch"], descendants: true }, { propertyName: "elementCheckboxTemplate", first: true, predicate: ["elementCheckboxTemplate"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label && !shining\" class=\"flex text-sm\" [class.mb-2]='!hasValidationErrors()'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ngt-validation [hidden]='shining' class=\"block mb-1\" [control]='formControl' [container]='formContainer'>\n</ngt-validation>\n\n<div class=\"{{ shining ? 'hidden' : 'flex flex-col' }} border w-full rounded {{ ngtStyle.compile(['h']) }}\"\n style=\"min-height: 16rem;\" [class.border-red-500]='hasValidationErrors()' [class.disabled-background]='disabled()'>\n <div class=\"flex items-center w-full p-2 border-b\">\n <ngt-checkbox class=\"flex\" title=\"Selecionar todos\" [label]=\"!searchable ? 'Selecionar todos' : ''\"\n [(ngModel)]=\"selectAllCheckbox\" [name]=\"selectAllCheckboxName\" [isClickDisabled]='true'\n [isDisabled]='loading || disabled()' h='h-5' w='w-5' (click)='selectAll()' ngt-stylizable>\n </ngt-checkbox>\n\n <ngt-input *ngIf=\"searchable\" class=\"block w-full pl-2\" [name]='searchInputName' [(ngModel)]='searchTerm'\n placeholder='Buscar...' [allowClear]='true' [jit]='true' h='h-10' (ngModelChange)='search($event)'\n [loading]='loading' [isDisabled]='disabled()' ngt-stylizable #inputSearch>\n </ngt-input>\n </div>\n\n <div *ngIf=\"loading\" class=\"flex flex-col gap-3 px-3 h-full w-full cursor-wait\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n\n <div class=\"w-full overflow-y-auto text-sm {{ loading ? 'hidden' : 'flex flex-col' }}\" (scroll)='onScroll($event)'\n #containerRef>\n <ng-container *ngIf=\"customHeaderTemplate\" [ngTemplateOutlet]=\"customHeaderTemplate\">\n </ng-container>\n\n <ng-container *ngFor=\"let element of getSelectableElements(); let i = index\">\n <div class=\"flex w-full items-center hover:bg-gray-200 {{ disabled() ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.p-2]='!customOptionTemplate' (click)='toggleItem(element, $event)'>\n <ng-template let-element #elementCheckboxTemplate>\n <ngt-checkbox class=\"flex pr-2\" [name]='element.uuid' [(ngModel)]=\"element.isSelected\"\n (ngModelChange)='onNativeChange(element)' [isClickDisabled]='true' [isDisabled]='disabled()'\n h='h-5' w='w-5' (click)='toggleItem(element, $event)' ngt-stylizable>\n </ngt-checkbox>\n </ng-template>\n\n <ng-template let-element #defaultOptionTemplate>\n {{ getSelectableElementValue(element) }}\n </ng-template>\n\n <ng-container *ngIf=\"!customOptionTemplate\" [ngTemplateOutlet]=\"elementCheckboxTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element }\">\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element, index: i }\">\n </ng-container>\n </div>\n </ng-container>\n\n <p *ngIf=\"!getSelectableElements()?.length\" class=\"text-center mt-4\">\n {{ ngtTranslateService.ngtMultiSelectNoDataFound }}\n </p>\n </div>\n</div>\n\n<div class=\"{{ shining ? 'hidden' : 'flex' }} w-full items-center mt-2\">\n <span class=\"text-sm mr-4\">\n {{ selectedElements?.length || 0 }} / {{ itemsTotal || 0 }}\n </span>\n\n <ngt-checkbox class=\"flex\" label=\"Visualizar selecionados\" [name]='displayOnlySelectedName'\n [(ngModel)]=\"displayOnlySelected\" [isDisabled]='loading' h='h-5' w='w-5' ngt-stylizable>\n </ngt-checkbox>\n</div>\n\n<ngt-shining *ngIf='shining' class=\"block w-full {{ ngtStyle.compile(['h']) }}\" style=\"min-height: 16rem;\"\n rounded='rounded' ngt-stylizable>\n</ngt-shining>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]='value' [name]='name' [value]='value'>", styles: [".disabled-background{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem!important;padding:1px!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "helperReverseYPosition", "helperAutoXReverse"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: ["label", "shining", "isDisabled", "isClickDisabled", "name", "mode", "helpTitle", "helpTextColor", "helpText", "helperAutoXReverse"] }, { kind: "directive", type: NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }], viewProviders: [
7075
7140
  { provide: ControlContainer, useExisting: NgForm }
7076
7141
  ], encapsulation: i0.ViewEncapsulation.None });
7077
7142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectComponent, decorators: [{
@@ -7080,19 +7145,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
7080
7145
  NgtMakeProvider(NgtMultiSelectComponent)
7081
7146
  ], viewProviders: [
7082
7147
  { provide: ControlContainer, useExisting: NgForm }
7083
- ], template: "<label *ngIf=\"label && !shining\" class=\"flex text-sm\" [class.mb-2]='!hasValidationErrors()'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ngt-validation [hidden]='shining' class=\"block mb-1\" [control]='formControl' [container]='formContainer'>\n</ngt-validation>\n\n<div class=\"{{ shining ? 'hidden' : 'flex flex-col' }} border w-full rounded {{ ngtStyle.compile(['h']) }}\"\n style=\"min-height: 16rem;\" [class.border-red-500]='hasValidationErrors()' [class.disabled-background]='isDisabled'>\n <div class=\"flex items-center w-full p-2 border-b\">\n <ngt-checkbox class=\"flex\" title=\"Selecionar todos\" [label]=\"!searchable ? 'Selecionar todos' : ''\"\n [(ngModel)]=\"selectAllCheckbox\" [name]=\"selectAllCheckboxName\" [isClickDisabled]='true'\n [isDisabled]='loading || isDisabled' h='h-5' w='w-5' (click)='selectAll()' ngt-stylizable>\n </ngt-checkbox>\n\n <ngt-input *ngIf=\"searchable\" class=\"block w-full pl-2\" [name]='searchInputName' [(ngModel)]='searchTerm'\n placeholder='Buscar...' [allowClear]='true' [jit]='true' h='h-10' (ngModelChange)='search($event)'\n [loading]='loading' [isDisabled]='isDisabled' ngt-stylizable #inputSearch>\n </ngt-input>\n </div>\n\n <div *ngIf=\"loading\" class=\"flex flex-col gap-3 px-3 h-full w-full cursor-wait\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n\n <div class=\"w-full overflow-y-auto text-sm {{ loading ? 'hidden' : 'flex flex-col' }}\" (scroll)='onScroll($event)'\n #containerRef>\n <ng-container *ngIf=\"customHeaderTemplate\" [ngTemplateOutlet]=\"customHeaderTemplate\">\n </ng-container>\n\n <ng-container *ngFor=\"let element of getSelectableElements(); let i = index\">\n <div class=\"flex w-full items-center hover:bg-gray-200 {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.p-2]='!customOptionTemplate' (click)='toggleItem(element, $event)'>\n <ng-template let-element #elementCheckboxTemplate>\n <ngt-checkbox class=\"flex pr-2\" [name]='element.uuid' [(ngModel)]=\"element.isSelected\"\n (ngModelChange)='onNativeChange(element)' [isClickDisabled]='true' [isDisabled]='isDisabled'\n h='h-5' w='w-5' (click)='toggleItem(element, $event)' ngt-stylizable>\n </ngt-checkbox>\n </ng-template>\n\n <ng-template let-element #defaultOptionTemplate>\n {{ getSelectableElementValue(element) }}\n </ng-template>\n\n <ng-container *ngIf=\"!customOptionTemplate\" [ngTemplateOutlet]=\"elementCheckboxTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element }\">\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element, index: i }\">\n </ng-container>\n </div>\n </ng-container>\n\n <p *ngIf=\"!getSelectableElements()?.length\" class=\"text-center mt-4\">\n {{ ngtTranslateService.ngtMultiSelectNoDataFound }}\n </p>\n </div>\n</div>\n\n<div class=\"{{ shining ? 'hidden' : 'flex' }} w-full items-center mt-2\">\n <span class=\"text-sm mr-4\">\n {{ selectedElements?.length || 0 }} / {{ itemsTotal || 0 }}\n </span>\n\n <ngt-checkbox class=\"flex\" label=\"Visualizar selecionados\" [name]='displayOnlySelectedName'\n [(ngModel)]=\"displayOnlySelected\" [isDisabled]='loading' h='h-5' w='w-5' ngt-stylizable>\n </ngt-checkbox>\n</div>\n\n<ngt-shining *ngIf='shining' class=\"block w-full {{ ngtStyle.compile(['h']) }}\" style=\"min-height: 16rem;\"\n rounded='rounded' ngt-stylizable>\n</ngt-shining>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]='value' [name]='name' [value]='value'>\n", styles: [".disabled-background{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem!important;padding:1px!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
7084
- }], ctorParameters: function () { return [{ type: NgtHttpService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: NgtStylizableDirective, decorators: [{
7148
+ ], template: "<label *ngIf=\"label && !shining\" class=\"flex text-sm\" [class.mb-2]='!hasValidationErrors()'>\n {{ label }}:\n\n <span *ngIf=\"isRequired\" class=\"text-red-500 font-bold text-md ml-1\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [helperReverseYPosition]=\"helperReverseYPosition\" [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n</label>\n\n<ngt-validation [hidden]='shining' class=\"block mb-1\" [control]='formControl' [container]='formContainer'>\n</ngt-validation>\n\n<div class=\"{{ shining ? 'hidden' : 'flex flex-col' }} border w-full rounded {{ ngtStyle.compile(['h']) }}\"\n style=\"min-height: 16rem;\" [class.border-red-500]='hasValidationErrors()' [class.disabled-background]='disabled()'>\n <div class=\"flex items-center w-full p-2 border-b\">\n <ngt-checkbox class=\"flex\" title=\"Selecionar todos\" [label]=\"!searchable ? 'Selecionar todos' : ''\"\n [(ngModel)]=\"selectAllCheckbox\" [name]=\"selectAllCheckboxName\" [isClickDisabled]='true'\n [isDisabled]='loading || disabled()' h='h-5' w='w-5' (click)='selectAll()' ngt-stylizable>\n </ngt-checkbox>\n\n <ngt-input *ngIf=\"searchable\" class=\"block w-full pl-2\" [name]='searchInputName' [(ngModel)]='searchTerm'\n placeholder='Buscar...' [allowClear]='true' [jit]='true' h='h-10' (ngModelChange)='search($event)'\n [loading]='loading' [isDisabled]='disabled()' ngt-stylizable #inputSearch>\n </ngt-input>\n </div>\n\n <div *ngIf=\"loading\" class=\"flex flex-col gap-3 px-3 h-full w-full cursor-wait\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </div>\n\n <div class=\"w-full overflow-y-auto text-sm {{ loading ? 'hidden' : 'flex flex-col' }}\" (scroll)='onScroll($event)'\n #containerRef>\n <ng-container *ngIf=\"customHeaderTemplate\" [ngTemplateOutlet]=\"customHeaderTemplate\">\n </ng-container>\n\n <ng-container *ngFor=\"let element of getSelectableElements(); let i = index\">\n <div class=\"flex w-full items-center hover:bg-gray-200 {{ disabled() ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.p-2]='!customOptionTemplate' (click)='toggleItem(element, $event)'>\n <ng-template let-element #elementCheckboxTemplate>\n <ngt-checkbox class=\"flex pr-2\" [name]='element.uuid' [(ngModel)]=\"element.isSelected\"\n (ngModelChange)='onNativeChange(element)' [isClickDisabled]='true' [isDisabled]='disabled()'\n h='h-5' w='w-5' (click)='toggleItem(element, $event)' ngt-stylizable>\n </ngt-checkbox>\n </ng-template>\n\n <ng-template let-element #defaultOptionTemplate>\n {{ getSelectableElementValue(element) }}\n </ng-template>\n\n <ng-container *ngIf=\"!customOptionTemplate\" [ngTemplateOutlet]=\"elementCheckboxTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element }\">\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: element, index: i }\">\n </ng-container>\n </div>\n </ng-container>\n\n <p *ngIf=\"!getSelectableElements()?.length\" class=\"text-center mt-4\">\n {{ ngtTranslateService.ngtMultiSelectNoDataFound }}\n </p>\n </div>\n</div>\n\n<div class=\"{{ shining ? 'hidden' : 'flex' }} w-full items-center mt-2\">\n <span class=\"text-sm mr-4\">\n {{ selectedElements?.length || 0 }} / {{ itemsTotal || 0 }}\n </span>\n\n <ngt-checkbox class=\"flex\" label=\"Visualizar selecionados\" [name]='displayOnlySelectedName'\n [(ngModel)]=\"displayOnlySelected\" [isDisabled]='loading' h='h-5' w='w-5' ngt-stylizable>\n </ngt-checkbox>\n</div>\n\n<ngt-shining *ngIf='shining' class=\"block w-full {{ ngtStyle.compile(['h']) }}\" style=\"min-height: 16rem;\"\n rounded='rounded' ngt-stylizable>\n</ngt-shining>\n\n<input *ngIf='componentReady' type='hidden' [ngModel]='value' [name]='name' [value]='value'>", styles: [".disabled-background{border:solid #cbd5e0 1px!important;background-color:#fafafa!important;border-radius:.25rem!important;padding:1px!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
7149
+ }], ctorParameters: function () { return [{ type: NgtHttpService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: NgtFormComponent, decorators: [{
7085
7150
  type: Optional
7086
7151
  }, {
7087
- type: Self
7088
- }] }, { type: i2$1.ControlContainer, decorators: [{
7152
+ type: SkipSelf
7153
+ }] }, { type: NgtSectionComponent, decorators: [{
7089
7154
  type: Optional
7090
7155
  }, {
7091
- type: Host
7092
- }] }, { type: NgtFormComponent, decorators: [{
7156
+ type: SkipSelf
7157
+ }] }, { type: NgtModalComponent, decorators: [{
7093
7158
  type: Optional
7094
7159
  }, {
7095
7160
  type: SkipSelf
7161
+ }] }, { type: NgtStylizableDirective, decorators: [{
7162
+ type: Optional
7163
+ }, {
7164
+ type: Self
7165
+ }] }, { type: i2$1.ControlContainer, decorators: [{
7166
+ type: Optional
7167
+ }, {
7168
+ type: Host
7096
7169
  }] }, { type: NgtTranslateService, decorators: [{
7097
7170
  type: Optional
7098
7171
  }] }]; }, propDecorators: { containerRef: [{
@@ -7244,13 +7317,13 @@ class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent {
7244
7317
  }
7245
7318
  }
7246
7319
  }
7247
- CustomDropzonePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomDropzonePreviewComponent, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
7320
+ CustomDropzonePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomDropzonePreviewComponent, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
7248
7321
  CustomDropzonePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: CustomDropzonePreviewComponent, selector: "custom-dropzone-preview", providers: [
7249
7322
  {
7250
7323
  provide: NgxDropzonePreviewComponent,
7251
7324
  useExisting: CustomDropzonePreviewComponent
7252
7325
  }
7253
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col items-center w-48 cursor-pointer hover:opacity-75\">\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\n <svg *ngIf=\"fileType == 'OTHER'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DOC'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'XLS'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'PDF'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DWG'\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" width=\"512.000000pt\" height=\"512.000000pt\"\n viewBox=\"0 0 512.000000 512.000000\" preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\" fill=\"#4a5568\" stroke=\"none\">\n <path\n d=\"M830 5104 c-42 -18 -86 -58 -108 -99 -15 -27 -17 -109 -20 -871 l-3 -842 -92 -4 c-112 -5 -179 -32 -235 -92 -81 -88 -77 -39 -77 -946 0 -801 0 -805 21 -851 54 -116 140 -169 291 -177 l92 -5 3 -536 c3 -588 1 -562 65 -623 65 -62 -61 -58 1793 -58 1854 0 1728 -4 1793 58 64 61 62 35 65 623 l3 536 92 5 c151 8 237 61 291 177 21 46 21 50 21 851 0 907 4 858 -77 946 -56 60 -123 87 -235 92 l-93 4 -1 302 c-1 165 -4 312 -8 326 -8 30 -994 1160 -1033 1184 -24 15 -138 16 -1270 16 -1088 -1 -1247 -3 -1278 -16z m2400 -714 l0 -530 29 -32 29 -33 466 -3 466 -3 0 -249 0 -250 -1660 0 -1660 0 0 815 0 815 1165 0 1165 0 0 -530z m1093 -1516 c87 -16 127 -32 127 -48 -1 -17 -48 -197 -54 -203 -2 -3 -27 2 -54 11 -131 44 -323 40 -429 -9 -72 -33 -146 -110 -174 -182 -27 -72 -36 -204 -19 -282 26 -120 110 -221 217 -261 70 -26 193 -36 251 -21 l42 12 0 124 0 125 -95 0 -95 0 0 110 0 110 230 0 230 0 0 -320 0 -320 -27 -11 c-16 -6 -71 -20 -123 -32 -129 -29 -401 -31 -500 -4 -116 33 -189 74 -266 151 -114 114 -164 244 -164 426 0 265 115 460 331 563 52 25 117 50 144 57 122 30 283 31 428 4z m-3042 -12 c304 -82 457 -320 419 -653 -35 -312 -215 -491 -545 -544 -94 -16 -317 -20 -448 -9 l-77 7 0 602 0 603 83 10 c45 6 174 9 287 7 170 -2 218 -6 281 -23z m808 -34 c16 -81 96 -524 127 -705 15 -90 29 -161 31 -160 2 2 14 66 28 143 20 116 101 518 145 722 l12 52 147 0 147 0 28 -147 c67 -356 104 -564 116 -648 13 -92 29 -144 30 -95 0 42 47 310 107 608 l56 282 138 0 c77 0 139 -3 139 -7 0 -5 -217 -853 -301 -1175 l-10 -38 -149 0 c-133 0 -149 2 -154 18 -13 44 -127 653 -141 759 -9 65 -18 119 -19 120 -1 2 -12 -55 -24 -125 -13 -70 -55 -272 -94 -449 l-71 -323 -152 0 -151 0 -142 598 c-78 328 -142 603 -142 610 0 9 36 12 144 12 l145 0 10 -52z m2131 -2088 l0 -480 -1660 0 -1660 0 0 480 0 480 1660 0 1660 0 0 -480z\" />\n\n <path\n d=\"M923 2673 l-23 -4 0 -399 0 -399 43 -6 c60 -9 200 12 261 39 140 63 212 207 204 411 -3 86 -8 109 -34 165 -51 108 -128 167 -249 189 -57 11 -157 13 -202 4z\" />\n </g>\n </svg>\n </div>\n</div>\n\n<ngx-dropzone-remove-badge *ngIf=\"removable\" (click)=\"_remove($event)\" style=\"top: -15px !important;\">\n</ngx-dropzone-remove-badge>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5$1.NgxDropzoneRemoveBadgeComponent, selector: "ngx-dropzone-remove-badge" }] });
7326
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col items-center w-48 cursor-pointer hover:opacity-75\">\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\n <svg *ngIf=\"fileType == 'OTHER'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DOC'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'XLS'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'PDF'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DWG'\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" width=\"512.000000pt\" height=\"512.000000pt\"\n viewBox=\"0 0 512.000000 512.000000\" preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\" fill=\"#4a5568\" stroke=\"none\">\n <path\n d=\"M830 5104 c-42 -18 -86 -58 -108 -99 -15 -27 -17 -109 -20 -871 l-3 -842 -92 -4 c-112 -5 -179 -32 -235 -92 -81 -88 -77 -39 -77 -946 0 -801 0 -805 21 -851 54 -116 140 -169 291 -177 l92 -5 3 -536 c3 -588 1 -562 65 -623 65 -62 -61 -58 1793 -58 1854 0 1728 -4 1793 58 64 61 62 35 65 623 l3 536 92 5 c151 8 237 61 291 177 21 46 21 50 21 851 0 907 4 858 -77 946 -56 60 -123 87 -235 92 l-93 4 -1 302 c-1 165 -4 312 -8 326 -8 30 -994 1160 -1033 1184 -24 15 -138 16 -1270 16 -1088 -1 -1247 -3 -1278 -16z m2400 -714 l0 -530 29 -32 29 -33 466 -3 466 -3 0 -249 0 -250 -1660 0 -1660 0 0 815 0 815 1165 0 1165 0 0 -530z m1093 -1516 c87 -16 127 -32 127 -48 -1 -17 -48 -197 -54 -203 -2 -3 -27 2 -54 11 -131 44 -323 40 -429 -9 -72 -33 -146 -110 -174 -182 -27 -72 -36 -204 -19 -282 26 -120 110 -221 217 -261 70 -26 193 -36 251 -21 l42 12 0 124 0 125 -95 0 -95 0 0 110 0 110 230 0 230 0 0 -320 0 -320 -27 -11 c-16 -6 -71 -20 -123 -32 -129 -29 -401 -31 -500 -4 -116 33 -189 74 -266 151 -114 114 -164 244 -164 426 0 265 115 460 331 563 52 25 117 50 144 57 122 30 283 31 428 4z m-3042 -12 c304 -82 457 -320 419 -653 -35 -312 -215 -491 -545 -544 -94 -16 -317 -20 -448 -9 l-77 7 0 602 0 603 83 10 c45 6 174 9 287 7 170 -2 218 -6 281 -23z m808 -34 c16 -81 96 -524 127 -705 15 -90 29 -161 31 -160 2 2 14 66 28 143 20 116 101 518 145 722 l12 52 147 0 147 0 28 -147 c67 -356 104 -564 116 -648 13 -92 29 -144 30 -95 0 42 47 310 107 608 l56 282 138 0 c77 0 139 -3 139 -7 0 -5 -217 -853 -301 -1175 l-10 -38 -149 0 c-133 0 -149 2 -154 18 -13 44 -127 653 -141 759 -9 65 -18 119 -19 120 -1 2 -12 -55 -24 -125 -13 -70 -55 -272 -94 -449 l-71 -323 -152 0 -151 0 -142 598 c-78 328 -142 603 -142 610 0 9 36 12 144 12 l145 0 10 -52z m2131 -2088 l0 -480 -1660 0 -1660 0 0 480 0 480 1660 0 1660 0 0 -480z\" />\n\n <path\n d=\"M923 2673 l-23 -4 0 -399 0 -399 43 -6 c60 -9 200 12 261 39 140 63 212 207 204 411 -3 86 -8 109 -34 165 -51 108 -128 167 -249 189 -57 11 -157 13 -202 4z\" />\n </g>\n </svg>\n </div>\n</div>\n\n<ngx-dropzone-remove-badge *ngIf=\"removable\" (click)=\"_remove($event)\" style=\"top: -15px !important;\">\n</ngx-dropzone-remove-badge>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.NgxDropzoneRemoveBadgeComponent, selector: "ngx-dropzone-remove-badge" }] });
7254
7327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomDropzonePreviewComponent, decorators: [{
7255
7328
  type: Component,
7256
7329
  args: [{ selector: 'custom-dropzone-preview', providers: [
@@ -7259,7 +7332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
7259
7332
  useExisting: CustomDropzonePreviewComponent
7260
7333
  }
7261
7334
  ], template: "<div class=\"flex flex-col items-center w-48 cursor-pointer hover:opacity-75\">\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\n <svg *ngIf=\"fileType == 'OTHER'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DOC'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'XLS'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'PDF'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DWG'\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" width=\"512.000000pt\" height=\"512.000000pt\"\n viewBox=\"0 0 512.000000 512.000000\" preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\" fill=\"#4a5568\" stroke=\"none\">\n <path\n d=\"M830 5104 c-42 -18 -86 -58 -108 -99 -15 -27 -17 -109 -20 -871 l-3 -842 -92 -4 c-112 -5 -179 -32 -235 -92 -81 -88 -77 -39 -77 -946 0 -801 0 -805 21 -851 54 -116 140 -169 291 -177 l92 -5 3 -536 c3 -588 1 -562 65 -623 65 -62 -61 -58 1793 -58 1854 0 1728 -4 1793 58 64 61 62 35 65 623 l3 536 92 5 c151 8 237 61 291 177 21 46 21 50 21 851 0 907 4 858 -77 946 -56 60 -123 87 -235 92 l-93 4 -1 302 c-1 165 -4 312 -8 326 -8 30 -994 1160 -1033 1184 -24 15 -138 16 -1270 16 -1088 -1 -1247 -3 -1278 -16z m2400 -714 l0 -530 29 -32 29 -33 466 -3 466 -3 0 -249 0 -250 -1660 0 -1660 0 0 815 0 815 1165 0 1165 0 0 -530z m1093 -1516 c87 -16 127 -32 127 -48 -1 -17 -48 -197 -54 -203 -2 -3 -27 2 -54 11 -131 44 -323 40 -429 -9 -72 -33 -146 -110 -174 -182 -27 -72 -36 -204 -19 -282 26 -120 110 -221 217 -261 70 -26 193 -36 251 -21 l42 12 0 124 0 125 -95 0 -95 0 0 110 0 110 230 0 230 0 0 -320 0 -320 -27 -11 c-16 -6 -71 -20 -123 -32 -129 -29 -401 -31 -500 -4 -116 33 -189 74 -266 151 -114 114 -164 244 -164 426 0 265 115 460 331 563 52 25 117 50 144 57 122 30 283 31 428 4z m-3042 -12 c304 -82 457 -320 419 -653 -35 -312 -215 -491 -545 -544 -94 -16 -317 -20 -448 -9 l-77 7 0 602 0 603 83 10 c45 6 174 9 287 7 170 -2 218 -6 281 -23z m808 -34 c16 -81 96 -524 127 -705 15 -90 29 -161 31 -160 2 2 14 66 28 143 20 116 101 518 145 722 l12 52 147 0 147 0 28 -147 c67 -356 104 -564 116 -648 13 -92 29 -144 30 -95 0 42 47 310 107 608 l56 282 138 0 c77 0 139 -3 139 -7 0 -5 -217 -853 -301 -1175 l-10 -38 -149 0 c-133 0 -149 2 -154 18 -13 44 -127 653 -141 759 -9 65 -18 119 -19 120 -1 2 -12 -55 -24 -125 -13 -70 -55 -272 -94 -449 l-71 -323 -152 0 -151 0 -142 598 c-78 328 -142 603 -142 610 0 9 36 12 144 12 l145 0 10 -52z m2131 -2088 l0 -480 -1660 0 -1660 0 0 480 0 480 1660 0 1660 0 0 -480z\" />\n\n <path\n d=\"M923 2673 l-23 -4 0 -399 0 -399 43 -6 c60 -9 200 12 261 39 140 63 212 207 204 411 -3 86 -8 109 -34 165 -51 108 -128 167 -249 189 -57 11 -157 13 -202 4z\" />\n </g>\n </svg>\n </div>\n</div>\n\n<ngx-dropzone-remove-badge *ngIf=\"removable\" (click)=\"_remove($event)\" style=\"top: -15px !important;\">\n</ngx-dropzone-remove-badge>" }]
7262
- }], ctorParameters: function () { return [{ type: i1$1.DomSanitizer }]; } });
7335
+ }], ctorParameters: function () { return [{ type: i1$2.DomSanitizer }]; } });
7263
7336
 
7264
7337
  class NgtDropzoneFileViewerComponent {
7265
7338
  constructor(ngtTranslateService) {
@@ -7417,12 +7490,15 @@ class NgtAttachmentHttpService {
7417
7490
  class NgtDropzoneComponent extends NgtBaseNgModel {
7418
7491
  ;
7419
7492
  ;
7420
- constructor(formContainer, ngtAttachmentHttpService, injector, changeDetector) {
7493
+ constructor(formContainer, injector, changeDetector, ngtAttachmentHttpService, ngtForm, ngtSection, ngtModal) {
7421
7494
  super();
7422
7495
  this.formContainer = formContainer;
7423
- this.ngtAttachmentHttpService = ngtAttachmentHttpService;
7424
7496
  this.injector = injector;
7425
7497
  this.changeDetector = changeDetector;
7498
+ this.ngtAttachmentHttpService = ngtAttachmentHttpService;
7499
+ this.ngtForm = ngtForm;
7500
+ this.ngtSection = ngtSection;
7501
+ this.ngtModal = ngtModal;
7426
7502
  this.helpTextColor = 'text-green-500';
7427
7503
  // Behavior
7428
7504
  this.resources = [];
@@ -7721,6 +7797,9 @@ class NgtDropzoneComponent extends NgtBaseNgModel {
7721
7797
  openFileSelector() {
7722
7798
  document.getElementById(this.ngxElementId).click();
7723
7799
  }
7800
+ isDisabled() {
7801
+ return this.disabled || this.isDisabledByParent();
7802
+ }
7724
7803
  initComponent() {
7725
7804
  if (this.viewMode) {
7726
7805
  this.previewType = NgtDropzonePreviewType.DEFAULT;
@@ -7762,15 +7841,20 @@ class NgtDropzoneComponent extends NgtBaseNgModel {
7762
7841
  this.formControl.updateValueAndValidity();
7763
7842
  });
7764
7843
  }
7844
+ isDisabledByParent() {
7845
+ return this.ngtForm?.isDisabled
7846
+ || this.ngtSection?.isDisabled
7847
+ || this.ngtModal?.isDisabled;
7848
+ }
7765
7849
  destroySubscriptions() {
7766
7850
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
7767
7851
  this.subscriptions = [];
7768
7852
  }
7769
7853
  }
7770
- NgtDropzoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDropzoneComponent, deps: [{ token: i2$1.ControlContainer, host: true, optional: true }, { token: NgtAttachmentHttpService, optional: true, skipSelf: true }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
7854
+ NgtDropzoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDropzoneComponent, deps: [{ token: i2$1.ControlContainer, host: true, optional: true }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: NgtAttachmentHttpService, optional: true, skipSelf: true }, { token: NgtFormComponent, optional: true, skipSelf: true }, { token: NgtSectionComponent, optional: true, skipSelf: true }, { token: NgtModalComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
7771
7855
  NgtDropzoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtDropzoneComponent, selector: "ngt-dropzone", inputs: { label: "label", placeholder: "placeholder", helpTextColor: "helpTextColor", helpText: "helpText", helpTitle: "helpTitle", resources: "resources", multipleSelection: "multipleSelection", itemsLimit: "itemsLimit", showFileName: "showFileName", disableClick: "disableClick", disabled: "disabled", viewMode: "viewMode", removable: "removable", canDownloadFile: "canDownloadFile", verticalExpandable: "verticalExpandable", isRequired: "isRequired", hideNgxDropzone: "hideNgxDropzone", acceptedFiles: "acceptedFiles", unacceptedFiles: "unacceptedFiles", maxFileSize: "maxFileSize", previewType: "previewType", name: "name", remoteResource: "remoteResource" }, outputs: { onFileSelected: "onFileSelected", onFileSelectError: "onFileSelectError", onFileUploadFail: "onFileUploadFail", onFileRemoved: "onFileRemoved", onFileUploadInit: "onFileUploadInit", onFileUploaded: "onFileUploaded", onFilePreviewLoaded: "onFilePreviewLoaded" }, providers: [
7772
7856
  NgtMakeProvider(NgtDropzoneComponent),
7773
- ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "ngxDropzone", first: true, predicate: NgxDropzoneComponent, descendants: true, static: true }, { propertyName: "ngtDropzoneFileViewer", first: true, predicate: NgtDropzoneFileViewerComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col h-full w-full\" #container>\n <label *ngIf=\"label\" class=\"flex mb-2 text-sm\">\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </label>\n\n <div *ngIf=\"!viewMode\" class=\"h-full w-full relative\">\n <div *ngIf=\"loading && !hideNgxDropzone\"\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\n <div class=\"div-loader\"></div>\n </div>\n\n <ngx-dropzone [id]=\"ngxElementId\" [multiple]='multipleSelection' [maxFileSize]='maxFileSize'\n (change)='onSelect($event)' [class.single-attachment]='itemsLimit == 1' [accept]='acceptedFiles'\n [disabled]='disabled || loading' [expandable]='verticalExpandable'\n [disableClick]='disableClick || forceDisableClick' [ngStyle]=\"{ 'height': dropzoneHeight }\"\n [ngClass]=\"{ 'hidden':hideNgxDropzone }\" #ngxDropzone>\n <ng-container *ngIf=\"!loading\">\n <ngx-dropzone-label *ngIf=\"!uploadedResources?.length\" class=\"px-2\">\n {{ placeholder }}\n </ngx-dropzone-label>\n\n <ng-container *ngFor=\"let resource of uploadedResources; let index = index\">\n <div class=\"flex flex-col w-48 mx-4\"\n title=\"{{ resource?.file?.name || '' }} ({{ getFormattedFileSize(resource) }})\">\n <custom-dropzone-preview *ngIf=\"previewType == 'DEFAULT' && isFile(resource)\"\n [file]='resource.file' [removable]=\"removable\" (removed)=\"onRemove(resource)\"\n (click)=\"onFileClick(resource.file.url, resource.file.name, resource.file.size)\"\n ngProjectAs=\"ngx-dropzone-preview\">\n </custom-dropzone-preview>\n\n <div *ngIf=\"isImage(resource)\" class=\"cursor-pointer\" (click)=\"imagePreview(index)\" #gallery>\n <ngx-dropzone-image-preview class=\"image-preview-default-class\" [file]=\"resource.file\"\n [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-image-preview>\n </div>\n\n <ngx-dropzone-video-preview *ngIf=\"isVideo(resource) || isAudio(resource)\"\n [file]=\"resource.file\" [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-video-preview>\n\n <p *ngIf=\"showFileName\"\n class=\"w-full truncate text-gray-500 text-center text-sm font-mono mt-2\">\n {{ resource?.file?.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n </ngx-dropzone>\n </div>\n\n <ngt-dropzone-view *ngIf=\"viewMode\" class=\"h-full w-full\" [resources]=\"resources\" [loading]=\"loading\"\n [placeholder]=\"placeholder\" [dropzoneHeight]=\"dropzoneHeight\"\n (onFileClick)=\"onFileClick($event.previewUrl, $event.name, $event.fileSize)\"\n (onImageClick)=\"onImageClick($event.div, $event.index)\">\n </ngt-dropzone-view>\n\n <ngt-dropzone-file-viewer [hidden]=\"!showNgtDropzoneFileViewer\" (onClose)=\"forceDisableClick = false\"\n [canDownloadFile]=\"canDownloadFile\" [disableContent]=\"canDownloadFile ? 'none' : 'popout'\">\n </ngt-dropzone-file-viewer>\n\n <input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n <ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n</div>", styles: [".single-attachment{border:none!important;margin:unset!important;overflow:hidden!important;display:flex!important;justify-content:center!important}.image-preview-default-class{margin:unset!important}custom-dropzone-preview{height:100%!important;min-height:unset!important;margin:unset!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: i5$1.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }, { kind: "directive", type: i5$1.ɵb, selector: "ngx-dropzone-label" }, { kind: "component", type: i5$1.NgxDropzoneImagePreviewComponent, selector: "ngx-dropzone-image-preview" }, { kind: "component", type: i5$1.NgxDropzoneVideoPreviewComponent, selector: "ngx-dropzone-video-preview" }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtDropzoneFileViewerComponent, selector: "ngt-dropzone-file-viewer", inputs: ["url", "fileName", "fileSize", "disableContent", "canDownloadFile"], outputs: ["onClose"] }, { kind: "component", type: NgtDropzoneViewComponent, selector: "ngt-dropzone-view", inputs: ["resources", "dropzoneHeight", "loading", "placeholder"], outputs: ["onImageClick", "onFileClick"] }, { kind: "component", type: CustomDropzonePreviewComponent, selector: "custom-dropzone-preview" }], viewProviders: [
7857
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "ngxDropzone", first: true, predicate: NgxDropzoneComponent, descendants: true, static: true }, { propertyName: "ngtDropzoneFileViewer", first: true, predicate: NgtDropzoneFileViewerComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col h-full w-full\" #container>\n <label *ngIf=\"label\" class=\"flex mb-2 text-sm\">\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </label>\n\n <div *ngIf=\"!viewMode\" class=\"h-full w-full relative\">\n <div *ngIf=\"loading && !hideNgxDropzone\"\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\n <div class=\"div-loader\"></div>\n </div>\n\n <ngx-dropzone [id]=\"ngxElementId\" [multiple]='multipleSelection' [maxFileSize]='maxFileSize'\n (change)='onSelect($event)' [class.single-attachment]='itemsLimit == 1' [accept]='acceptedFiles'\n [disabled]='isDisabled() || loading' [expandable]='verticalExpandable'\n [disableClick]='disableClick || forceDisableClick' [ngStyle]=\"{ 'height': dropzoneHeight }\"\n [ngClass]=\"{ 'hidden':hideNgxDropzone }\" #ngxDropzone>\n <ng-container *ngIf=\"!loading\">\n <ngx-dropzone-label *ngIf=\"!uploadedResources?.length\" class=\"px-2\">\n {{ placeholder }}\n </ngx-dropzone-label>\n\n <ng-container *ngFor=\"let resource of uploadedResources; let index = index\">\n <div class=\"flex flex-col w-48 mx-4\"\n title=\"{{ resource?.file?.name || '' }} ({{ getFormattedFileSize(resource) }})\">\n <custom-dropzone-preview *ngIf=\"previewType == 'DEFAULT' && isFile(resource)\"\n [file]='resource.file' [removable]=\"removable\" (removed)=\"onRemove(resource)\"\n (click)=\"onFileClick(resource.file.url, resource.file.name, resource.file.size)\"\n ngProjectAs=\"ngx-dropzone-preview\">\n </custom-dropzone-preview>\n\n <div *ngIf=\"isImage(resource)\" class=\"cursor-pointer\" (click)=\"imagePreview(index)\" #gallery>\n <ngx-dropzone-image-preview class=\"image-preview-default-class\" [file]=\"resource.file\"\n [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-image-preview>\n </div>\n\n <ngx-dropzone-video-preview *ngIf=\"isVideo(resource) || isAudio(resource)\"\n [file]=\"resource.file\" [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-video-preview>\n\n <p *ngIf=\"showFileName\"\n class=\"w-full truncate text-gray-500 text-center text-sm font-mono mt-2\">\n {{ resource?.file?.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n </ngx-dropzone>\n </div>\n\n <ngt-dropzone-view *ngIf=\"viewMode\" class=\"h-full w-full\" [resources]=\"resources\" [loading]=\"loading\"\n [placeholder]=\"placeholder\" [dropzoneHeight]=\"dropzoneHeight\"\n (onFileClick)=\"onFileClick($event.previewUrl, $event.name, $event.fileSize)\"\n (onImageClick)=\"onImageClick($event.div, $event.index)\">\n </ngt-dropzone-view>\n\n <ngt-dropzone-file-viewer [hidden]=\"!showNgtDropzoneFileViewer\" (onClose)=\"forceDisableClick = false\"\n [canDownloadFile]=\"canDownloadFile\" [disableContent]=\"canDownloadFile ? 'none' : 'popout'\">\n </ngt-dropzone-file-viewer>\n\n <input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n <ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n</div>", styles: [".single-attachment{border:none!important;margin:unset!important;overflow:hidden!important;display:flex!important;justify-content:center!important}.image-preview-default-class{margin:unset!important}custom-dropzone-preview{height:100%!important;min-height:unset!important;margin:unset!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgtValidationComponent, selector: "ngt-validation", inputs: ["control", "container", "minValue", "minLength"] }, { kind: "component", type: i8.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }, { kind: "directive", type: i8.ɵb, selector: "ngx-dropzone-label" }, { kind: "component", type: i8.NgxDropzoneImagePreviewComponent, selector: "ngx-dropzone-image-preview" }, { kind: "component", type: i8.NgxDropzoneVideoPreviewComponent, selector: "ngx-dropzone-video-preview" }, { kind: "component", type: NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }, { kind: "component", type: NgtDropzoneFileViewerComponent, selector: "ngt-dropzone-file-viewer", inputs: ["url", "fileName", "fileSize", "disableContent", "canDownloadFile"], outputs: ["onClose"] }, { kind: "component", type: NgtDropzoneViewComponent, selector: "ngt-dropzone-view", inputs: ["resources", "dropzoneHeight", "loading", "placeholder"], outputs: ["onImageClick", "onFileClick"] }, { kind: "component", type: CustomDropzonePreviewComponent, selector: "custom-dropzone-preview" }], viewProviders: [
7774
7858
  { provide: ControlContainer, useExisting: NgForm }
7775
7859
  ], encapsulation: i0.ViewEncapsulation.None });
7776
7860
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtDropzoneComponent, decorators: [{
@@ -7779,16 +7863,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
7779
7863
  NgtMakeProvider(NgtDropzoneComponent),
7780
7864
  ], viewProviders: [
7781
7865
  { provide: ControlContainer, useExisting: NgForm }
7782
- ], template: "<div class=\"flex flex-col h-full w-full\" #container>\n <label *ngIf=\"label\" class=\"flex mb-2 text-sm\">\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </label>\n\n <div *ngIf=\"!viewMode\" class=\"h-full w-full relative\">\n <div *ngIf=\"loading && !hideNgxDropzone\"\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\n <div class=\"div-loader\"></div>\n </div>\n\n <ngx-dropzone [id]=\"ngxElementId\" [multiple]='multipleSelection' [maxFileSize]='maxFileSize'\n (change)='onSelect($event)' [class.single-attachment]='itemsLimit == 1' [accept]='acceptedFiles'\n [disabled]='disabled || loading' [expandable]='verticalExpandable'\n [disableClick]='disableClick || forceDisableClick' [ngStyle]=\"{ 'height': dropzoneHeight }\"\n [ngClass]=\"{ 'hidden':hideNgxDropzone }\" #ngxDropzone>\n <ng-container *ngIf=\"!loading\">\n <ngx-dropzone-label *ngIf=\"!uploadedResources?.length\" class=\"px-2\">\n {{ placeholder }}\n </ngx-dropzone-label>\n\n <ng-container *ngFor=\"let resource of uploadedResources; let index = index\">\n <div class=\"flex flex-col w-48 mx-4\"\n title=\"{{ resource?.file?.name || '' }} ({{ getFormattedFileSize(resource) }})\">\n <custom-dropzone-preview *ngIf=\"previewType == 'DEFAULT' && isFile(resource)\"\n [file]='resource.file' [removable]=\"removable\" (removed)=\"onRemove(resource)\"\n (click)=\"onFileClick(resource.file.url, resource.file.name, resource.file.size)\"\n ngProjectAs=\"ngx-dropzone-preview\">\n </custom-dropzone-preview>\n\n <div *ngIf=\"isImage(resource)\" class=\"cursor-pointer\" (click)=\"imagePreview(index)\" #gallery>\n <ngx-dropzone-image-preview class=\"image-preview-default-class\" [file]=\"resource.file\"\n [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-image-preview>\n </div>\n\n <ngx-dropzone-video-preview *ngIf=\"isVideo(resource) || isAudio(resource)\"\n [file]=\"resource.file\" [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-video-preview>\n\n <p *ngIf=\"showFileName\"\n class=\"w-full truncate text-gray-500 text-center text-sm font-mono mt-2\">\n {{ resource?.file?.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n </ngx-dropzone>\n </div>\n\n <ngt-dropzone-view *ngIf=\"viewMode\" class=\"h-full w-full\" [resources]=\"resources\" [loading]=\"loading\"\n [placeholder]=\"placeholder\" [dropzoneHeight]=\"dropzoneHeight\"\n (onFileClick)=\"onFileClick($event.previewUrl, $event.name, $event.fileSize)\"\n (onImageClick)=\"onImageClick($event.div, $event.index)\">\n </ngt-dropzone-view>\n\n <ngt-dropzone-file-viewer [hidden]=\"!showNgtDropzoneFileViewer\" (onClose)=\"forceDisableClick = false\"\n [canDownloadFile]=\"canDownloadFile\" [disableContent]=\"canDownloadFile ? 'none' : 'popout'\">\n </ngt-dropzone-file-viewer>\n\n <input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n <ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n</div>", styles: [".single-attachment{border:none!important;margin:unset!important;overflow:hidden!important;display:flex!important;justify-content:center!important}.image-preview-default-class{margin:unset!important}custom-dropzone-preview{height:100%!important;min-height:unset!important;margin:unset!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
7866
+ ], template: "<div class=\"flex flex-col h-full w-full\" #container>\n <label *ngIf=\"label\" class=\"flex mb-2 text-sm\">\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </label>\n\n <div *ngIf=\"!viewMode\" class=\"h-full w-full relative\">\n <div *ngIf=\"loading && !hideNgxDropzone\"\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\n <div class=\"div-loader\"></div>\n </div>\n\n <ngx-dropzone [id]=\"ngxElementId\" [multiple]='multipleSelection' [maxFileSize]='maxFileSize'\n (change)='onSelect($event)' [class.single-attachment]='itemsLimit == 1' [accept]='acceptedFiles'\n [disabled]='isDisabled() || loading' [expandable]='verticalExpandable'\n [disableClick]='disableClick || forceDisableClick' [ngStyle]=\"{ 'height': dropzoneHeight }\"\n [ngClass]=\"{ 'hidden':hideNgxDropzone }\" #ngxDropzone>\n <ng-container *ngIf=\"!loading\">\n <ngx-dropzone-label *ngIf=\"!uploadedResources?.length\" class=\"px-2\">\n {{ placeholder }}\n </ngx-dropzone-label>\n\n <ng-container *ngFor=\"let resource of uploadedResources; let index = index\">\n <div class=\"flex flex-col w-48 mx-4\"\n title=\"{{ resource?.file?.name || '' }} ({{ getFormattedFileSize(resource) }})\">\n <custom-dropzone-preview *ngIf=\"previewType == 'DEFAULT' && isFile(resource)\"\n [file]='resource.file' [removable]=\"removable\" (removed)=\"onRemove(resource)\"\n (click)=\"onFileClick(resource.file.url, resource.file.name, resource.file.size)\"\n ngProjectAs=\"ngx-dropzone-preview\">\n </custom-dropzone-preview>\n\n <div *ngIf=\"isImage(resource)\" class=\"cursor-pointer\" (click)=\"imagePreview(index)\" #gallery>\n <ngx-dropzone-image-preview class=\"image-preview-default-class\" [file]=\"resource.file\"\n [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-image-preview>\n </div>\n\n <ngx-dropzone-video-preview *ngIf=\"isVideo(resource) || isAudio(resource)\"\n [file]=\"resource.file\" [removable]=\"removable\" (removed)=\"onRemove(resource)\">\n </ngx-dropzone-video-preview>\n\n <p *ngIf=\"showFileName\"\n class=\"w-full truncate text-gray-500 text-center text-sm font-mono mt-2\">\n {{ resource?.file?.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n </ngx-dropzone>\n </div>\n\n <ngt-dropzone-view *ngIf=\"viewMode\" class=\"h-full w-full\" [resources]=\"resources\" [loading]=\"loading\"\n [placeholder]=\"placeholder\" [dropzoneHeight]=\"dropzoneHeight\"\n (onFileClick)=\"onFileClick($event.previewUrl, $event.name, $event.fileSize)\"\n (onImageClick)=\"onImageClick($event.div, $event.index)\">\n </ngt-dropzone-view>\n\n <ngt-dropzone-file-viewer [hidden]=\"!showNgtDropzoneFileViewer\" (onClose)=\"forceDisableClick = false\"\n [canDownloadFile]=\"canDownloadFile\" [disableContent]=\"canDownloadFile ? 'none' : 'popout'\">\n </ngt-dropzone-file-viewer>\n\n <input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\n <ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\n</div>", styles: [".single-attachment{border:none!important;margin:unset!important;overflow:hidden!important;display:flex!important;justify-content:center!important}.image-preview-default-class{margin:unset!important}custom-dropzone-preview{height:100%!important;min-height:unset!important;margin:unset!important}.div-loader{width:4rem;height:4rem;border:3px solid #a0aec038;border-top-color:#a0aec0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
7783
7867
  }], ctorParameters: function () { return [{ type: i2$1.ControlContainer, decorators: [{
7784
7868
  type: Optional
7785
7869
  }, {
7786
7870
  type: Host
7787
- }] }, { type: NgtAttachmentHttpService, decorators: [{
7871
+ }] }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: NgtAttachmentHttpService, decorators: [{
7872
+ type: Optional
7873
+ }, {
7874
+ type: SkipSelf
7875
+ }] }, { type: NgtFormComponent, decorators: [{
7876
+ type: Optional
7877
+ }, {
7878
+ type: SkipSelf
7879
+ }] }, { type: NgtSectionComponent, decorators: [{
7880
+ type: Optional
7881
+ }, {
7882
+ type: SkipSelf
7883
+ }] }, { type: NgtModalComponent, decorators: [{
7788
7884
  type: Optional
7789
7885
  }, {
7790
7886
  type: SkipSelf
7791
- }] }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { container: [{
7887
+ }] }]; }, propDecorators: { container: [{
7792
7888
  type: ViewChild,
7793
7889
  args: ['container']
7794
7890
  }], ngxDropzone: [{
@@ -8326,5 +8422,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
8326
8422
  * Generated bundle index. Do not edit.
8327
8423
  */
8328
8424
 
8329
- export { NgtActionComponent, NgtActionModule, NgtAttachmentHttpService, NgtButtonComponent, NgtButtonModule, NgtCheckboxComponent, NgtCheckboxMode, NgtCheckboxModule, NgtCheckedElement, NgtContentComponent, NgtContentModule, NgtContextMenuComponent, NgtContextMenuDirective, NgtContextMenuModule, NgtCustomFilter, NgtDatatableComponent, NgtDatatableModule, NgtDatatableParam, NgtDatatableSearchType, NgtDatatableType, NgtDateComponent, NgtDateLocale, NgtDateMode, NgtDateModule, NgtDropdownComponent, NgtDropdownContainerComponent, NgtDropdownModule, NgtDropdownOpenMethod, NgtDropzoneComponent, NgtDropzoneErrorType, NgtDropzoneFileTypeEnum, NgtDropzoneModule, NgtDropzonePreviewType, NgtFloatingButtonComponent, NgtFloatingButtonModule, NgtFloatingButtonType, NgtFormComponent, NgtFormModule, NgtFormState, NgtFormValidationMessageComponent, NgtHeaderNavComponent, NgtHeaderNavModule, NgtHelperComponent, NgtHelperModule, NgtHttpFormService, NgtHttpResourceService, NgtHttpService, NgtHttpValidationService, NgtInputComponent, NgtInputModule, NgtModalBodyComponent, NgtModalComponent, NgtModalFooterComponent, NgtModalHeaderComponent, NgtModalModule, NgtMultiSelectComponent, NgtMultiSelectModule, NgtPaginationComponent, NgtPaginationModule, NgtPopoverComponent, NgtPopoverDirective, NgtPopoverModule, NgtPopoverOpenMethod, NgtPortletBodyComponent, NgtPortletComponent, NgtPortletFooterComponent, NgtPortletHeaderComponent, NgtPortletModule, NgtRadioButtonComponent, NgtRadioButtonContainerComponent, NgtRadioButtonModule, NgtSectionComponent, NgtSectionModule, NgtSelectComponent, NgtSelectDropdownPanelHeight, NgtSelectHeaderTmp, NgtSelectModule, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp, NgtShiningComponent, NgtShiningModule, NgtShiningWidth, NgtSidenavComponent, NgtSidenavModule, NgtSliderColorSchemeEnum, NgtSliderComponent, NgtSliderModule, NgtStylizableDirective, NgtStylizableModule, NgtSvgComponent, NgtSvgModule, NgtTagComponent, NgtTagModule, NgtTbodyComponent, NgtTdCheckComponent, NgtTdComponent, NgtTextareaComponent, NgtTextareaModule, NgtThCheckComponent, NgtThComponent, NgtTheadComponent, NgtTrComponent, NgtTranslateService, Size, fadeDownAnimation, fadeUpAnimation, slideLeftToRightAnimation, slideRightToLeftAnimation };
8425
+ export { NgtAbilityValidationService, NgtActionComponent, NgtActionModule, NgtAttachmentHttpService, NgtButtonComponent, NgtButtonModule, NgtCheckboxComponent, NgtCheckboxMode, NgtCheckboxModule, NgtCheckedElement, NgtContentComponent, NgtContentModule, NgtContextMenuComponent, NgtContextMenuDirective, NgtContextMenuModule, NgtCustomFilter, NgtDatatableComponent, NgtDatatableModule, NgtDatatableParam, NgtDatatableSearchType, NgtDatatableType, NgtDateComponent, NgtDateLocale, NgtDateMode, NgtDateModule, NgtDropdownComponent, NgtDropdownContainerComponent, NgtDropdownModule, NgtDropdownOpenMethod, NgtDropzoneComponent, NgtDropzoneErrorType, NgtDropzoneFileTypeEnum, NgtDropzoneModule, NgtDropzonePreviewType, NgtFloatingButtonComponent, NgtFloatingButtonModule, NgtFloatingButtonType, NgtFormComponent, NgtFormModule, NgtFormState, NgtFormValidationMessageComponent, NgtHeaderNavComponent, NgtHeaderNavModule, NgtHelperComponent, NgtHelperModule, NgtHttpFormService, NgtHttpResourceService, NgtHttpService, NgtHttpValidationService, NgtInputComponent, NgtInputModule, NgtModalBodyComponent, NgtModalComponent, NgtModalFooterComponent, NgtModalHeaderComponent, NgtModalModule, NgtMultiSelectComponent, NgtMultiSelectModule, NgtPaginationComponent, NgtPaginationModule, NgtPopoverComponent, NgtPopoverDirective, NgtPopoverModule, NgtPopoverOpenMethod, NgtPortletBodyComponent, NgtPortletComponent, NgtPortletFooterComponent, NgtPortletHeaderComponent, NgtPortletModule, NgtRadioButtonComponent, NgtRadioButtonContainerComponent, NgtRadioButtonModule, NgtSectionComponent, NgtSectionModule, NgtSelectComponent, NgtSelectDropdownPanelHeight, NgtSelectHeaderTmp, NgtSelectModule, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp, NgtShiningComponent, NgtShiningModule, NgtShiningWidth, NgtSidenavComponent, NgtSidenavModule, NgtSliderColorSchemeEnum, NgtSliderComponent, NgtSliderModule, NgtStylizableDirective, NgtStylizableModule, NgtSvgComponent, NgtSvgModule, NgtTagComponent, NgtTagModule, NgtTbodyComponent, NgtTdCheckComponent, NgtTdComponent, NgtTextareaComponent, NgtTextareaModule, NgtThCheckComponent, NgtThComponent, NgtTheadComponent, NgtTrComponent, NgtTranslateService, Size, fadeDownAnimation, fadeUpAnimation, slideLeftToRightAnimation, slideRightToLeftAnimation };
8330
8426
  //# sourceMappingURL=ng-tailwind.mjs.map