ng-tailwind 2.24.310 → 2.24.314

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 (193) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/bundles/ng-tailwind.umd.js +7318 -7271
  5. package/bundles/ng-tailwind.umd.js.map +1 -1
  6. package/components/ngt-action/ngt-action.component.d.ts +13 -13
  7. package/components/ngt-action/ngt-action.module.d.ts +2 -2
  8. package/components/ngt-button/ngt-button.component.d.ts +22 -22
  9. package/components/ngt-button/ngt-button.module.d.ts +2 -2
  10. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +41 -41
  11. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +2 -2
  12. package/components/ngt-content/ngt-content.component.d.ts +9 -9
  13. package/components/ngt-content/ngt-content.module.d.ts +2 -2
  14. package/components/ngt-datatable/ngt-datatable.component.d.ts +112 -112
  15. package/components/ngt-datatable/ngt-datatable.module.d.ts +2 -2
  16. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +11 -11
  17. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +11 -11
  18. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +24 -24
  19. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +47 -47
  20. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +19 -19
  21. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +10 -10
  22. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +17 -17
  23. package/components/ngt-date/ngt-date.component.d.ts +71 -71
  24. package/components/ngt-date/ngt-date.module.d.ts +2 -2
  25. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +5 -5
  26. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +42 -42
  27. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +2 -2
  28. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +11 -11
  29. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +12 -12
  30. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -21
  31. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +103 -103
  32. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -2
  33. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +32 -32
  34. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +2 -2
  35. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +7 -7
  36. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +2 -2
  37. package/components/ngt-form/ngt-form.component.d.ts +52 -52
  38. package/components/ngt-form/ngt-form.module.d.ts +2 -2
  39. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +11 -11
  40. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +2 -2
  41. package/components/ngt-helper/ngt-helper.component.d.ts +15 -10
  42. package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
  43. package/components/ngt-input/ngt-input.component.d.ts +92 -92
  44. package/components/ngt-input/ngt-input.module.d.ts +2 -2
  45. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +2 -2
  46. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +2 -2
  47. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +12 -12
  48. package/components/ngt-modal/ngt-modal.component.d.ts +19 -19
  49. package/components/ngt-modal/ngt-modal.module.d.ts +2 -2
  50. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +97 -97
  51. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +2 -2
  52. package/components/ngt-pagination/ngt-pagination.component.d.ts +40 -40
  53. package/components/ngt-pagination/ngt-pagination.module.d.ts +2 -2
  54. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
  55. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
  56. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
  57. package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
  58. package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
  59. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
  60. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +27 -27
  61. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
  62. package/components/ngt-section/ngt-section.component.d.ts +23 -23
  63. package/components/ngt-section/ngt-section.module.d.ts +2 -2
  64. package/components/ngt-select/ngt-select.component.d.ts +122 -122
  65. package/components/ngt-select/ngt-select.directive.d.ts +13 -13
  66. package/components/ngt-select/ngt-select.module.d.ts +2 -2
  67. package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
  68. package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
  69. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
  70. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
  71. package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
  72. package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
  73. package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
  74. package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
  75. package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
  76. package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
  77. package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
  78. package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
  79. package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
  80. package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
  81. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -63
  82. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
  83. package/enums/size.enum.d.ts +8 -8
  84. package/esm2015/animations/ngt-angular-animations.js +34 -34
  85. package/esm2015/base/ngt-base-ng-model.js +90 -90
  86. package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
  87. package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
  88. package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
  89. package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
  90. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +137 -137
  91. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
  92. package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
  93. package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
  94. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +400 -400
  95. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
  96. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -60
  97. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
  98. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +102 -102
  99. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +192 -192
  100. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
  101. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -58
  102. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
  103. package/esm2015/components/ngt-date/ngt-date.component.js +354 -352
  104. package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
  105. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
  106. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +165 -165
  107. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
  108. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +47 -47
  109. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +46 -45
  110. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
  111. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +411 -411
  112. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
  113. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
  114. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
  115. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
  116. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
  117. package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
  118. package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
  119. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
  120. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
  121. package/esm2015/components/ngt-helper/ngt-helper.component.js +44 -24
  122. package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
  123. package/esm2015/components/ngt-input/ngt-input.component.js +610 -608
  124. package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
  125. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
  126. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
  127. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
  128. package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
  129. package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
  130. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +392 -392
  131. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
  132. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
  133. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
  134. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +32 -32
  135. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
  136. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -45
  137. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
  138. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
  139. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
  140. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +97 -97
  141. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +18 -18
  142. package/esm2015/components/ngt-section/ngt-section.component.js +98 -98
  143. package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
  144. package/esm2015/components/ngt-select/ngt-select.component.js +467 -465
  145. package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
  146. package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
  147. package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
  148. package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
  149. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
  150. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
  151. package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
  152. package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
  153. package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
  154. package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
  155. package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
  156. package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
  157. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +211 -209
  158. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +24 -24
  159. package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
  160. package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
  161. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -220
  162. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
  163. package/esm2015/enums/size.enum.js +11 -11
  164. package/esm2015/helpers/enum/enum.js +7 -7
  165. package/esm2015/helpers/form/form.js +14 -14
  166. package/esm2015/helpers/routing/route.js +11 -11
  167. package/esm2015/helpers/uuid.js +10 -10
  168. package/esm2015/ng-tailwind.js +10 -10
  169. package/esm2015/public-api.js +117 -117
  170. package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
  171. package/esm2015/services/http/ngt-http-form.service.js +3 -3
  172. package/esm2015/services/http/ngt-http-resource.service.js +3 -3
  173. package/esm2015/services/http/ngt-http-validation.service.js +4 -4
  174. package/esm2015/services/http/ngt-http.service.js +3 -3
  175. package/esm2015/services/http/ngt-translate.service.js +3 -3
  176. package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -266
  177. package/fesm2015/ng-tailwind.js +6404 -6365
  178. package/fesm2015/ng-tailwind.js.map +1 -1
  179. package/helpers/enum/enum.d.ts +1 -1
  180. package/helpers/form/form.d.ts +4 -4
  181. package/helpers/routing/route.d.ts +2 -2
  182. package/helpers/uuid.d.ts +1 -1
  183. package/ng-tailwind.d.ts +10 -10
  184. package/ng-tailwind.metadata.json +1 -1
  185. package/package.json +1 -1
  186. package/public-api.d.ts +80 -80
  187. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  188. package/services/http/ngt-http-form.service.d.ts +5 -5
  189. package/services/http/ngt-http-resource.service.d.ts +12 -12
  190. package/services/http/ngt-http-validation.service.d.ts +10 -10
  191. package/services/http/ngt-http.service.d.ts +27 -27
  192. package/services/http/ngt-translate.service.d.ts +27 -27
  193. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -93
@@ -1,209 +1,211 @@
1
- import { Component, Host, Injector, Input, Optional, Renderer2, Self, SkipSelf, ViewChild, } from '@angular/core';
2
- import { ControlContainer, NgForm, Validators } from '@angular/forms';
3
- import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
4
- import { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';
5
- import { NgtTranslateService } from '../../services/http/ngt-translate.service';
6
- import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
7
- import { NgtFormComponent } from '../ngt-form/ngt-form.component';
8
- export class NgtTextareaComponent extends NgtBaseNgModel {
9
- constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent, renderer, ngtTranslateService) {
10
- super();
11
- this.injector = injector;
12
- this.ngtStylizableDirective = ngtStylizableDirective;
13
- this.formContainer = formContainer;
14
- this.ngtFormComponent = ngtFormComponent;
15
- this.renderer = renderer;
16
- this.ngtTranslateService = ngtTranslateService;
17
- // Visual
18
- this.label = "";
19
- this.placeholder = "";
20
- this.rows = "3";
21
- this.showCharactersLength = false;
22
- this.helpText = false;
23
- this.helpTextColor = 'text-green-500';
24
- this.shining = false;
25
- this.isDisabled = false;
26
- this.isReadonly = false;
27
- this.jit = false;
28
- this.focus = false;
29
- // Validation
30
- this.isRequired = false;
31
- this.maxLength = 300;
32
- this.componentReady = false;
33
- this.subscriptions = [];
34
- if (this.ngtFormComponent) {
35
- this.shining = this.ngtFormComponent.isShining();
36
- this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
37
- this.shining = shining;
38
- }));
39
- }
40
- if (this.ngtStylizableDirective) {
41
- this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
42
- }
43
- else {
44
- this.ngtStyle = new NgtStylizableService();
45
- }
46
- this.ngtStyle.load(this.injector, 'NgtTextarea', {
47
- color: {
48
- border: 'border-gray-400 focus:border-gray-700',
49
- bg: 'bg-bg-white focus:bg-white',
50
- text: 'text-gray-800'
51
- }
52
- });
53
- }
54
- ngOnChanges(changes) {
55
- if (changes.isRequired) {
56
- this.updateValidations();
57
- }
58
- }
59
- ngOnInit() {
60
- if (!this.formContainer) {
61
- console.warn("The element must be inside a <form #form='ngForm'> tag!", this.element.nativeElement);
62
- }
63
- if (!this.name) {
64
- console.warn("The element must contain a name attribute!", this.element.nativeElement);
65
- }
66
- else {
67
- setTimeout(() => {
68
- this.componentReady = true;
69
- setTimeout(() => {
70
- this.initComponent();
71
- });
72
- }, 500);
73
- }
74
- }
75
- ngOnDestroy() {
76
- this.destroySubscriptions();
77
- }
78
- setFocus() {
79
- setTimeout(() => {
80
- this.element.nativeElement.focus();
81
- }, 200);
82
- }
83
- clear() {
84
- this.element.nativeElement.value = '';
85
- this.value = '';
86
- }
87
- change(value) {
88
- let nativeValue = this.getNativeValue();
89
- let ngModelValue = value ? value : '';
90
- if (this.componentReady) {
91
- this.onValueChangeEvent.emit(this.value);
92
- }
93
- if (this.value != nativeValue) {
94
- this.element.nativeElement.value = ngModelValue;
95
- }
96
- }
97
- getRemainingCharacters() {
98
- if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {
99
- if ((this.maxLength - this.element.nativeElement.value.length) > 0) {
100
- return this.maxLength - this.element.nativeElement.value.length;
101
- }
102
- else {
103
- return 0;
104
- }
105
- }
106
- return this.maxLength;
107
- }
108
- initComponent() {
109
- if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {
110
- if (this.focus) {
111
- this.setFocus();
112
- }
113
- let watch = "change";
114
- if (this.jit) {
115
- watch += " keyup keydown keypress";
116
- }
117
- watch.split(' ').forEach((evt) => {
118
- this.renderer.listen(this.element.nativeElement, evt, () => {
119
- let nativeValue = this.getNativeValue();
120
- if (this.value != nativeValue) {
121
- this.value = nativeValue;
122
- }
123
- });
124
- });
125
- this.renderer.listen(this.element.nativeElement, "keydown", (event) => {
126
- if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {
127
- // Backspace and delete
128
- if (event.keyCode != 8 && event.keyCode != 46) {
129
- event.preventDefault();
130
- return false;
131
- }
132
- }
133
- });
134
- this.updateValidations();
135
- if (this.value) {
136
- this.formControl.markAsDirty();
137
- }
138
- else {
139
- this.formControl.markAsPristine();
140
- }
141
- }
142
- else {
143
- console.warn("The element must contain a ngModel property", this.element.nativeElement);
144
- }
145
- }
146
- updateValidations() {
147
- if (!this.formControl) {
148
- return;
149
- }
150
- let syncValidators = [];
151
- if (this.isRequired) {
152
- syncValidators.push(Validators.required);
153
- }
154
- if (this.maxLength) {
155
- syncValidators.push(Validators.maxLength(this.maxLength));
156
- }
157
- setTimeout(() => {
158
- this.formControl.setValidators(syncValidators);
159
- this.formControl.updateValueAndValidity();
160
- });
161
- }
162
- getNativeValue() {
163
- return this.element.nativeElement.value;
164
- }
165
- destroySubscriptions() {
166
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
167
- this.subscriptions = [];
168
- }
169
- }
170
- NgtTextareaComponent.decorators = [
171
- { type: Component, args: [{
172
- selector: 'ngt-textarea',
173
- template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 text-sm flex\" *ngIf=\"label\" [hidden]='shining'>\n {{ label }}:\n\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\n\n <div *ngIf='helpText' class=\"flex {{ helpTextColor }}\" [title]=\"helpTitle\" [attr.data-content]=\"helpText\">\n &nbsp;\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M10 20a10 10 0 1 1 0-20 10 10 0 0 1 0 20zm2-13c0 .28-.21.8-.42 1L10 9.58c-.57.58-1 1.6-1 2.42v1h2v-1c0-.29.21-.8.42-1L13 9.42c.57-.58 1-1.6 1-2.42a4 4 0 1 0-8 0h2a2 2 0 1 1 4 0zm-3 8v2h2v-2H9z\" />\n </svg>\n </div>\n</label>\n\n<div class=\"flex flex-col\">\n <div class=\"{{ shining ? '' : 'flex'}}\" [hidden]='shining'>\n <textarea [rows]='rows' autocomplete=\"new-password\" attr.type=\"text\"\n class=\"appearance-none block border focus:outline-none leading-tight px-4 py-3 rounded w-full h-full {{ ngtStyle.compile(['h', 'color.border', 'color.bg', 'color.text']) }}\"\n [disabled]=\"isDisabled\" [readonly]=\"isReadonly\" placeholder=\"{{ placeholder ? placeholder : ''}}\"\n [ngClass]=\"{'textarea-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\n #element></textarea>\n </div>\n\n <ng-container *ngIf=\"showCharactersLength && !shining\">\n <p class=\"text-xs mt-1\">\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}: <span class=\"font-semibold\">\n {{ getRemainingCharacters() }}\n </span>\n </p>\n </ng-container>\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<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>",
174
- providers: [
175
- NgtMakeProvider(NgtTextareaComponent),
176
- ],
177
- viewProviders: [
178
- { provide: ControlContainer, useExisting: NgForm }
179
- ],
180
- styles: [""]
181
- },] }
182
- ];
183
- NgtTextareaComponent.ctorParameters = () => [
184
- { type: Injector },
185
- { type: NgtStylizableDirective, decorators: [{ type: Self }, { type: Optional }] },
186
- { type: ControlContainer, decorators: [{ type: Optional }, { type: Host }] },
187
- { type: NgtFormComponent, decorators: [{ type: Optional }, { type: SkipSelf }] },
188
- { type: Renderer2 },
189
- { type: NgtTranslateService, decorators: [{ type: Optional }] }
190
- ];
191
- NgtTextareaComponent.propDecorators = {
192
- element: [{ type: ViewChild, args: ["element", { static: true },] }],
193
- label: [{ type: Input }],
194
- placeholder: [{ type: Input }],
195
- rows: [{ type: Input }],
196
- helpTitle: [{ type: Input }],
197
- showCharactersLength: [{ type: Input }],
198
- helpText: [{ type: Input }],
199
- helpTextColor: [{ type: Input }],
200
- shining: [{ type: Input }],
201
- name: [{ type: Input }],
202
- isDisabled: [{ type: Input }],
203
- isReadonly: [{ type: Input }],
204
- jit: [{ type: Input }],
205
- focus: [{ type: Input }],
206
- isRequired: [{ type: Input }],
207
- maxLength: [{ type: Input }]
208
- };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC10ZXh0YXJlYS9uZ3QtdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFhbEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUE2QnBELFlBQ1ksUUFBa0IsRUFDRSxzQkFBOEMsRUFFbkUsYUFBK0IsRUFFOUIsZ0JBQWtDLEVBQ2xDLFFBQW1CLEVBRXBCLG1CQUF3QztRQUUvQyxLQUFLLEVBQUUsQ0FBQztRQVZBLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRW5FLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUU5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFcEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQW5DbkQsU0FBUztRQUNPLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsU0FBSSxHQUFXLEdBQUcsQ0FBQztRQUVuQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFXLGdCQUFnQixDQUFDO1FBQ3pDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFJekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFFBQUcsR0FBWSxLQUFLLENBQUM7UUFDckIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUV2QyxhQUFhO1FBQ0csZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBRWpDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBR3RCLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQWU1QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtRQUVELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDekU7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUU7WUFDN0MsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSx1Q0FBdUM7Z0JBQy9DLEVBQUUsRUFBRSw0QkFBNEI7Z0JBQ2hDLElBQUksRUFBRSxlQUFlO2FBQ3hCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFPO1FBQ3RCLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyx5REFBeUQsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUY7YUFBTTtZQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNYO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sUUFBUTtRQUNYLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLFdBQVcsRUFBRTtZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ25FO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxDQUFDO2FBQ1o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNwSCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ25CO1lBRUQsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVixLQUFLLElBQUkseUJBQXlCLENBQUM7YUFDdEM7WUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUN2RCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBRXhDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxXQUFXLEVBQUU7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO3FCQUM1QjtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDN0gsdUJBQXVCO29CQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO3dCQUMzQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBRXZCLE9BQU8sS0FBSyxDQUFDO3FCQUNoQjtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFFekIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUNyQztTQUNKO2FBQU07WUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUF2TkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2dCQUN4Qix1a0VBQTRDO2dCQUU1QyxTQUFTLEVBQUU7b0JBQ1AsZUFBZSxDQUFDLG9CQUFvQixDQUFDO2lCQUN4QztnQkFDRCxhQUFhLEVBQUU7b0JBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtpQkFDckQ7O2FBQ0o7OztZQTdCRyxRQUFRO1lBY0gsc0JBQXNCLHVCQStDdEIsSUFBSSxZQUFJLFFBQVE7WUFuRGhCLGdCQUFnQix1QkFvRGhCLFFBQVEsWUFBSSxJQUFJO1lBN0NoQixnQkFBZ0IsdUJBK0NoQixRQUFRLFlBQUksUUFBUTtZQTNEekIsU0FBUztZQVVKLG1CQUFtQix1QkFvRG5CLFFBQVE7OztzQkFwQ1osU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7b0JBR3JDLEtBQUs7MEJBQ0wsS0FBSzttQkFDTCxLQUFLO3dCQUNMLEtBQUs7bUNBQ0wsS0FBSzt1QkFDTCxLQUFLOzRCQUNMLEtBQUs7c0JBQ0wsS0FBSzttQkFHTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSztrQkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBR0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZ3RCYXNlTmdNb2RlbCwgTmd0TWFrZVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vYmFzZS9uZ3QtYmFzZS1uZy1tb2RlbCc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0VHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ndC10ZXh0YXJlYS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5ndE1ha2VQcm92aWRlcihOZ3RUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgXSxcbiAgICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoXCJlbGVtZW50XCIsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLy8gVmlzdWFsXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93czogc3RyaW5nID0gXCIzXCI7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93Q2hhcmFjdGVyc0xlbmd0aDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dENvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi01MDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaGluaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBCZWhhdmlvclxuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBqaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFZhbGlkYXRpb25cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlciA9IDMwMDtcblxuICAgIHB1YmxpYyBjb21wb25lbnRSZWFkeSA9IGZhbHNlO1xuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndEZvcm1Db21wb25lbnQ6IE5ndEZvcm1Db21wb25lbnQsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHVibGljIG5ndFRyYW5zbGF0ZVNlcnZpY2U6IE5ndFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5uZ3RGb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSB0aGlzLm5ndEZvcm1Db21wb25lbnQuaXNTaGluaW5nKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0Rm9ybUNvbXBvbmVudC5vblNoaW5pbmdDaGFuZ2Uuc3Vic2NyaWJlKChzaGluaW5nOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHNoaW5pbmc7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFRleHRhcmVhJywge1xuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICdib3JkZXItZ3JheS00MDAgZm9jdXM6Ym9yZGVyLWdyYXktNzAwJyxcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWJnLXdoaXRlIGZvY3VzOmJnLXdoaXRlJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIGVsZW1lbnQgbXVzdCBiZSBpbnNpZGUgYSA8Zm9ybSAjZm9ybT0nbmdGb3JtJz4gdGFnIVwiLCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmFtZSBhdHRyaWJ1dGUhXCIsIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVhZHkgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGb2N1cygpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWUpIHtcbiAgICAgICAgbGV0IG5hdGl2ZVZhbHVlID0gdGhpcy5nZXROYXRpdmVWYWx1ZSgpO1xuICAgICAgICBsZXQgbmdNb2RlbFZhbHVlID0gdmFsdWUgPyB2YWx1ZSA6ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlYWR5KSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT0gbmF0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmdNb2RlbFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlbWFpbmluZ0NoYXJhY3RlcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICgodGhpcy5tYXhMZW5ndGggLSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1heExlbmd0aCAtIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tYXhMZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Q29tcG9uZW50KCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sICYmICh0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMubmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb2N1cykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHdhdGNoID0gXCJjaGFuZ2VcIjtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaml0KSB7XG4gICAgICAgICAgICAgICAgd2F0Y2ggKz0gXCIga2V5dXAga2V5ZG93biBrZXlwcmVzc1wiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3YXRjaC5zcGxpdCgnICcpLmZvckVhY2goKGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBldnQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hdGl2ZVZhbHVlID0gdGhpcy5nZXROYXRpdmVWYWx1ZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlICE9IG5hdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmF0aXZlVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgXCJrZXlkb3duXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGggPj0gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmFja3NwYWNlIGFuZCBkZWxldGVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgIT0gOCAmJiBldmVudC5rZXlDb2RlICE9IDQ2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9ucygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmdNb2RlbCBwcm9wZXJ0eVwiLCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzeW5jVmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHN5bmNWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHN5bmNWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHN5bmNWYWxpZGF0b3JzKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5hdGl2ZVZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxufVxuIl19
1
+ import { Component, Host, Injector, Input, Optional, Renderer2, Self, SkipSelf, ViewChild, } from '@angular/core';
2
+ import { ControlContainer, NgForm, Validators } from '@angular/forms';
3
+ import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
4
+ import { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';
5
+ import { NgtTranslateService } from '../../services/http/ngt-translate.service';
6
+ import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
7
+ import { NgtFormComponent } from '../ngt-form/ngt-form.component';
8
+ export class NgtTextareaComponent extends NgtBaseNgModel {
9
+ constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent, renderer, ngtTranslateService) {
10
+ super();
11
+ this.injector = injector;
12
+ this.ngtStylizableDirective = ngtStylizableDirective;
13
+ this.formContainer = formContainer;
14
+ this.ngtFormComponent = ngtFormComponent;
15
+ this.renderer = renderer;
16
+ this.ngtTranslateService = ngtTranslateService;
17
+ // Visual
18
+ this.label = "";
19
+ this.placeholder = "";
20
+ this.rows = "3";
21
+ this.showCharactersLength = false;
22
+ this.helpText = false;
23
+ this.helpTextColor = 'text-green-500';
24
+ this.shining = false;
25
+ this.isDisabled = false;
26
+ this.isReadonly = false;
27
+ this.jit = false;
28
+ this.focus = false;
29
+ // Validation
30
+ this.isRequired = false;
31
+ this.maxLength = 300;
32
+ this.componentReady = false;
33
+ this.subscriptions = [];
34
+ if (this.ngtFormComponent) {
35
+ this.shining = this.ngtFormComponent.isShining();
36
+ this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
37
+ this.shining = shining;
38
+ }));
39
+ }
40
+ if (this.ngtStylizableDirective) {
41
+ this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
42
+ }
43
+ else {
44
+ this.ngtStyle = new NgtStylizableService();
45
+ }
46
+ this.ngtStyle.load(this.injector, 'NgtTextarea', {
47
+ text: 'text-sm',
48
+ fontCase: '',
49
+ color: {
50
+ border: 'border-gray-400 focus:border-gray-700',
51
+ bg: 'bg-bg-white focus:bg-white',
52
+ text: 'text-gray-800'
53
+ }
54
+ });
55
+ }
56
+ ngOnChanges(changes) {
57
+ if (changes.isRequired) {
58
+ this.updateValidations();
59
+ }
60
+ }
61
+ ngOnInit() {
62
+ if (!this.formContainer) {
63
+ console.warn("The element must be inside a <form #form='ngForm'> tag!", this.element.nativeElement);
64
+ }
65
+ if (!this.name) {
66
+ console.warn("The element must contain a name attribute!", this.element.nativeElement);
67
+ }
68
+ else {
69
+ setTimeout(() => {
70
+ this.componentReady = true;
71
+ setTimeout(() => {
72
+ this.initComponent();
73
+ });
74
+ }, 500);
75
+ }
76
+ }
77
+ ngOnDestroy() {
78
+ this.destroySubscriptions();
79
+ }
80
+ setFocus() {
81
+ setTimeout(() => {
82
+ this.element.nativeElement.focus();
83
+ }, 200);
84
+ }
85
+ clear() {
86
+ this.element.nativeElement.value = '';
87
+ this.value = '';
88
+ }
89
+ change(value) {
90
+ let nativeValue = this.getNativeValue();
91
+ let ngModelValue = value ? value : '';
92
+ if (this.componentReady) {
93
+ this.onValueChangeEvent.emit(this.value);
94
+ }
95
+ if (this.value != nativeValue) {
96
+ this.element.nativeElement.value = ngModelValue;
97
+ }
98
+ }
99
+ getRemainingCharacters() {
100
+ if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {
101
+ if ((this.maxLength - this.element.nativeElement.value.length) > 0) {
102
+ return this.maxLength - this.element.nativeElement.value.length;
103
+ }
104
+ else {
105
+ return 0;
106
+ }
107
+ }
108
+ return this.maxLength;
109
+ }
110
+ initComponent() {
111
+ if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {
112
+ if (this.focus) {
113
+ this.setFocus();
114
+ }
115
+ let watch = "change";
116
+ if (this.jit) {
117
+ watch += " keyup keydown keypress";
118
+ }
119
+ watch.split(' ').forEach((evt) => {
120
+ this.renderer.listen(this.element.nativeElement, evt, () => {
121
+ let nativeValue = this.getNativeValue();
122
+ if (this.value != nativeValue) {
123
+ this.value = nativeValue;
124
+ }
125
+ });
126
+ });
127
+ this.renderer.listen(this.element.nativeElement, "keydown", (event) => {
128
+ if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {
129
+ // Backspace and delete
130
+ if (event.keyCode != 8 && event.keyCode != 46) {
131
+ event.preventDefault();
132
+ return false;
133
+ }
134
+ }
135
+ });
136
+ this.updateValidations();
137
+ if (this.value) {
138
+ this.formControl.markAsDirty();
139
+ }
140
+ else {
141
+ this.formControl.markAsPristine();
142
+ }
143
+ }
144
+ else {
145
+ console.warn("The element must contain a ngModel property", this.element.nativeElement);
146
+ }
147
+ }
148
+ updateValidations() {
149
+ if (!this.formControl) {
150
+ return;
151
+ }
152
+ let syncValidators = [];
153
+ if (this.isRequired) {
154
+ syncValidators.push(Validators.required);
155
+ }
156
+ if (this.maxLength) {
157
+ syncValidators.push(Validators.maxLength(this.maxLength));
158
+ }
159
+ setTimeout(() => {
160
+ this.formControl.setValidators(syncValidators);
161
+ this.formControl.updateValueAndValidity();
162
+ });
163
+ }
164
+ getNativeValue() {
165
+ return this.element.nativeElement.value;
166
+ }
167
+ destroySubscriptions() {
168
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
169
+ this.subscriptions = [];
170
+ }
171
+ }
172
+ NgtTextareaComponent.decorators = [
173
+ { type: Component, args: [{
174
+ selector: 'ngt-textarea',
175
+ template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 flex {{ ngtStyle.compile(['text', 'fontCase']) }}\" *ngIf=\"label\" [hidden]='shining'>\r\n {{ label }}:\r\n\r\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\r\n\r\n <div *ngIf='helpText' class=\"flex {{ helpTextColor }}\" [title]=\"helpTitle\" [attr.data-content]=\"helpText\">\r\n &nbsp;\r\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M10 20a10 10 0 1 1 0-20 10 10 0 0 1 0 20zm2-13c0 .28-.21.8-.42 1L10 9.58c-.57.58-1 1.6-1 2.42v1h2v-1c0-.29.21-.8.42-1L13 9.42c.57-.58 1-1.6 1-2.42a4 4 0 1 0-8 0h2a2 2 0 1 1 4 0zm-3 8v2h2v-2H9z\" />\r\n </svg>\r\n </div>\r\n</label>\r\n\r\n<div class=\"flex flex-col\">\r\n <div class=\"{{ shining ? '' : 'flex'}}\" [hidden]='shining'>\r\n <textarea [rows]='rows' autocomplete=\"new-password\" attr.type=\"text\"\r\n class=\"appearance-none block border focus:outline-none leading-tight px-4 py-3 rounded w-full h-full {{ ngtStyle.compile(['h', 'color.border', 'color.bg', 'color.text']) }}\"\r\n [disabled]=\"isDisabled\" [readonly]=\"isReadonly\" placeholder=\"{{ placeholder ? placeholder : ''}}\"\r\n [ngClass]=\"{'textarea-has-error border-red-700': formControl?.errors && (formControl?.dirty || (formContainer && formContainer['submitted']))}\"\r\n #element>\r\n </textarea>\r\n </div>\r\n\r\n <ng-container *ngIf=\"showCharactersLength && !shining\">\r\n <p class=\"text-xs mt-1\">\r\n {{ ngtTranslateService.ngtTextAreaRemainingCharacters }}: <span class=\"font-semibold\">\r\n {{ getRemainingCharacters() }}\r\n </span>\r\n </p>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf='shining'>\r\n <div class=\"flex\">\r\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\r\n </div>\r\n</ng-container>\r\n\r\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\r\n\r\n<ng-content></ng-content>\r\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\r\n",
176
+ providers: [
177
+ NgtMakeProvider(NgtTextareaComponent),
178
+ ],
179
+ viewProviders: [
180
+ { provide: ControlContainer, useExisting: NgForm }
181
+ ],
182
+ styles: [""]
183
+ },] }
184
+ ];
185
+ NgtTextareaComponent.ctorParameters = () => [
186
+ { type: Injector },
187
+ { type: NgtStylizableDirective, decorators: [{ type: Self }, { type: Optional }] },
188
+ { type: ControlContainer, decorators: [{ type: Optional }, { type: Host }] },
189
+ { type: NgtFormComponent, decorators: [{ type: Optional }, { type: SkipSelf }] },
190
+ { type: Renderer2 },
191
+ { type: NgtTranslateService, decorators: [{ type: Optional }] }
192
+ ];
193
+ NgtTextareaComponent.propDecorators = {
194
+ element: [{ type: ViewChild, args: ["element", { static: true },] }],
195
+ label: [{ type: Input }],
196
+ placeholder: [{ type: Input }],
197
+ rows: [{ type: Input }],
198
+ helpTitle: [{ type: Input }],
199
+ showCharactersLength: [{ type: Input }],
200
+ helpText: [{ type: Input }],
201
+ helpTextColor: [{ type: Input }],
202
+ shining: [{ type: Input }],
203
+ name: [{ type: Input }],
204
+ isDisabled: [{ type: Input }],
205
+ isReadonly: [{ type: Input }],
206
+ jit: [{ type: Input }],
207
+ focus: [{ type: Input }],
208
+ isRequired: [{ type: Input }],
209
+ maxLength: [{ type: Input }]
210
+ };
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC10ZXh0YXJlYS9uZ3QtdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFhbEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUE2QnBELFlBQ1ksUUFBa0IsRUFDRSxzQkFBOEMsRUFFbkUsYUFBK0IsRUFFOUIsZ0JBQWtDLEVBQ2xDLFFBQW1CLEVBRXBCLG1CQUF3QztRQUUvQyxLQUFLLEVBQUUsQ0FBQztRQVZBLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRW5FLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUU5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFcEIsd0JBQW1CLEdB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Q0FBQztJQUM1QyxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7O1lBek5KLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsOHNFQUE0QztnQkFFNUMsU0FBUyxFQUFFO29CQUNQLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDeEM7Z0JBQ0QsYUFBYSxFQUFFO29CQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7aUJBQ3JEOzthQUNKOzs7WUE3QkcsUUFBUTtZQWNILHNCQUFzQix1QkErQ3RCLElBQUksWUFBSSxRQUFRO1lBbkRoQixnQkFBZ0IsdUJBb0RoQixRQUFRLFlBQUksSUFBSTtZQTdDaEIsZ0JBQWdCLHVCQStDaEIsUUFBUSxZQUFJLFFBQVE7WUEzRHpCLFNBQVM7WUFVSixtQkFBbUIsdUJBb0RuQixRQUFROzs7c0JBcENaLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO29CQUdyQyxLQUFLOzBCQUNMLEtBQUs7bUJBQ0wsS0FBSzt3QkFDTCxLQUFLO21DQUNMLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7bUJBR0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7a0JBQ0wsS0FBSztvQkFDTCxLQUFLO3lCQUdMLEtBQUs7d0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdCxcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPcHRpb25hbCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFNlbGYsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcclxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmd0VHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LXRyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LXRleHRhcmVhLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE5ndE1ha2VQcm92aWRlcihOZ3RUZXh0YXJlYUNvbXBvbmVudCksXHJcbiAgICBdLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3RUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZChcImVsZW1lbnRcIiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLy8gVmlzdWFsXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93czogc3RyaW5nID0gXCIzXCI7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0NoYXJhY3RlcnNMZW5ndGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0Q29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTUwMCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hpbmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIEJlaGF2aW9yXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaml0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvLyBWYWxpZGF0aW9uXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1heExlbmd0aDogbnVtYmVyID0gMzAwO1xyXG5cclxuICAgIHB1YmxpYyBjb21wb25lbnRSZWFkeSA9IGZhbHNlO1xyXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIG5ndFN0eWxpemFibGVEaXJlY3RpdmU6IE5ndFN0eWxpemFibGVEaXJlY3RpdmUsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxyXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXHJcbiAgICAgICAgcHJpdmF0ZSBuZ3RGb3JtQ29tcG9uZW50OiBOZ3RGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBAT3B0aW9uYWwoKVxyXG4gICAgICAgIHB1YmxpYyBuZ3RUcmFuc2xhdGVTZXJ2aWNlOiBOZ3RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ3RGb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHRoaXMubmd0Rm9ybUNvbXBvbmVudC5pc1NoaW5pbmcoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3RGb3JtQ29tcG9uZW50Lm9uU2hpbmluZ0NoYW5nZS5zdWJzY3JpYmUoKHNoaW5pbmc6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSBzaGluaW5nO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubmd0U3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0VGV4dGFyZWEnLCB7XHJcbiAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXNtJyxcclxuICAgICAgICAgICAgZm9udENhc2U6ICcnLFxyXG4gICAgICAgICAgICBjb2xvcjoge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyLWdyYXktNDAwIGZvY3VzOmJvcmRlci1ncmF5LTcwMCcsXHJcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWJnLXdoaXRlIGZvY3VzOmJnLXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LWdyYXktODAwJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5mb3JtQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlRoZSBlbGVtZW50IG11c3QgYmUgaW5zaWRlIGEgPGZvcm0gI2Zvcm09J25nRm9ybSc+IHRhZyFcIiwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmFtZSBhdHRyaWJ1dGUhXCIsIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVhZHkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEZvY3VzKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWUpIHtcclxuICAgICAgICBsZXQgbmF0aXZlVmFsdWUgPSB0aGlzLmdldE5hdGl2ZVZhbHVlKCk7XHJcbiAgICAgICAgbGV0IG5nTW9kZWxWYWx1ZSA9IHZhbHVlID8gdmFsdWUgOiAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVhZHkpIHtcclxuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9IG5hdGl2ZVZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmdNb2RlbFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UmVtYWluaW5nQ2hhcmFjdGVycygpIHtcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICgodGhpcy5tYXhMZW5ndGggLSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1heExlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRDb21wb25lbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRhaW5lciAmJiB0aGlzLmZvcm1Db250YWluZXIuY29udHJvbCAmJiAodGhpcy5mb3JtQ29udHJvbCA9IHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sLmdldCh0aGlzLm5hbWUpKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb2N1cykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgd2F0Y2ggPSBcImNoYW5nZVwiO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaml0KSB7XHJcbiAgICAgICAgICAgICAgICB3YXRjaCArPSBcIiBrZXl1cCBrZXlkb3duIGtleXByZXNzXCI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHdhdGNoLnNwbGl0KCcgJykuZm9yRWFjaCgoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZXZ0LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hdGl2ZVZhbHVlID0gdGhpcy5nZXROYXRpdmVWYWx1ZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSBuYXRpdmVWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmF0aXZlVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIFwia2V5ZG93blwiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGggPj0gdGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBCYWNrc3BhY2UgYW5kIGRlbGV0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlICE9IDggJiYgZXZlbnQua2V5Q29kZSAhPSA0Nikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmdNb2RlbCBwcm9wZXJ0eVwiLCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRhdGlvbnMoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzeW5jVmFsaWRhdG9ycyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHN5bmNWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgc3luY1ZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TmF0aXZlVmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,24 +1,24 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { NgtFormModule } from '../ngt-form/ngt-form.module';
5
- import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
6
- import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
7
- import { NgtTextareaComponent } from './ngt-textarea.component';
8
- export class NgtTextareaModule {
9
- }
10
- NgtTextareaModule.decorators = [
11
- { type: NgModule, args: [{
12
- declarations: [NgtTextareaComponent],
13
- exports: [NgtTextareaComponent],
14
- imports: [
15
- CommonModule,
16
- FormsModule,
17
- ReactiveFormsModule,
18
- NgtValidationModule,
19
- NgtShiningModule,
20
- NgtFormModule
21
- ]
22
- },] }
23
- ];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRleHRhcmVhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC10ZXh0YXJlYS9uZ3QtdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFjaEUsTUFBTSxPQUFPLGlCQUFpQjs7O1lBWjdCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQy9CLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsYUFBYTtpQkFDaEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5ndEZvcm1Nb2R1bGUgfSBmcm9tICcuLi9uZ3QtZm9ybS9uZ3QtZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0U2hpbmluZ01vZHVsZSB9IGZyb20gJy4uL25ndC1zaGluaW5nL25ndC1zaGluaW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcbmltcG9ydCB7IE5ndFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtdGV4dGFyZWEuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3RUZXh0YXJlYUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW05ndFRleHRhcmVhQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5ndFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgICAgIE5ndFNoaW5pbmdNb2R1bGUsXG4gICAgICAgIE5ndEZvcm1Nb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndFRleHRhcmVhTW9kdWxlIHsgfVxuIl19
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { NgtFormModule } from '../ngt-form/ngt-form.module';
5
+ import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
6
+ import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
7
+ import { NgtTextareaComponent } from './ngt-textarea.component';
8
+ export class NgtTextareaModule {
9
+ }
10
+ NgtTextareaModule.decorators = [
11
+ { type: NgModule, args: [{
12
+ declarations: [NgtTextareaComponent],
13
+ exports: [NgtTextareaComponent],
14
+ imports: [
15
+ CommonModule,
16
+ FormsModule,
17
+ ReactiveFormsModule,
18
+ NgtValidationModule,
19
+ NgtShiningModule,
20
+ NgtFormModule
21
+ ]
22
+ },] }
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRleHRhcmVhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC10ZXh0YXJlYS9uZ3QtdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFjaEUsTUFBTSxPQUFPLGlCQUFpQjs7O1lBWjdCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQy9CLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsYUFBYTtpQkFDaEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTmd0Rm9ybU1vZHVsZSB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0VGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL25ndC10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW05ndFRleHRhcmVhQ29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtOZ3RUZXh0YXJlYUNvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTmd0VmFsaWRhdGlvbk1vZHVsZSxcclxuICAgICAgICBOZ3RTaGluaW5nTW9kdWxlLFxyXG4gICAgICAgIE5ndEZvcm1Nb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5ndFRleHRhcmVhTW9kdWxlIHsgfVxyXG4iXX0=