@sebgroup/green-angular 4.6.0 → 4.6.1

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 (178) hide show
  1. package/esm2022/index.mjs +1 -19
  2. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
  3. package/esm2022/src/v-angular/button/button.component.mjs +3 -3
  4. package/esm2022/src/v-angular/card/card.component.mjs +3 -3
  5. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +3 -3
  6. package/esm2022/src/v-angular/core/core.globals.mjs +5 -2
  7. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +3 -3
  8. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +3 -3
  9. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +3 -3
  10. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +3 -3
  11. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +3 -3
  12. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
  13. package/esm2022/src/v-angular/input/input.component.mjs +3 -3
  14. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +3 -3
  15. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +3 -3
  16. package/esm2022/src/v-angular/modal/modal.globals.mjs +5 -2
  17. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +4 -4
  18. package/esm2022/src/v-angular/radio/radio.component.mjs +3 -3
  19. package/esm2022/src/v-angular/textarea/textarea.component.mjs +3 -3
  20. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +2 -2
  21. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  22. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +2 -2
  23. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  24. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +2 -2
  25. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  26. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +2 -2
  27. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  28. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +4 -1
  29. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  30. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +10 -10
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +2 -2
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +2 -2
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +11 -8
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +2 -2
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +2 -2
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  42. package/fesm2022/sebgroup-green-angular.mjs +13 -3105
  43. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  44. package/index.d.ts +0 -18
  45. package/package.json +3 -3
  46. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  47. package/src/v-angular/button/button.component.d.ts +1 -1
  48. package/src/v-angular/card/card.component.d.ts +1 -1
  49. package/src/v-angular/checkbox/checkbox.component.d.ts +1 -1
  50. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
  51. package/src/v-angular/dropdown/dropdown.component.d.ts +1 -1
  52. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +1 -1
  53. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +1 -1
  54. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +1 -1
  55. package/src/v-angular/info-circle/info-circle.component.d.ts +1 -1
  56. package/src/v-angular/input/input.component.d.ts +1 -1
  57. package/src/v-angular/modal/dialog/dialog.component.d.ts +1 -1
  58. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +1 -1
  59. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +2 -2
  60. package/src/v-angular/radio/radio.component.d.ts +1 -1
  61. package/src/v-angular/textarea/textarea.component.d.ts +1 -1
  62. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -287
  63. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  64. package/esm2022/v-angular/base-control-value-accessor/index.mjs +0 -3
  65. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  66. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  67. package/esm2022/v-angular/breadcrumbs/index.mjs +0 -3
  68. package/esm2022/v-angular/button/button.component.mjs +0 -108
  69. package/esm2022/v-angular/button/button.module.mjs +0 -20
  70. package/esm2022/v-angular/button/index.mjs +0 -3
  71. package/esm2022/v-angular/card/card.component.mjs +0 -11
  72. package/esm2022/v-angular/card/card.module.mjs +0 -18
  73. package/esm2022/v-angular/card/index.mjs +0 -3
  74. package/esm2022/v-angular/checkbox/checkbox.component.mjs +0 -72
  75. package/esm2022/v-angular/checkbox/checkbox.module.mjs +0 -19
  76. package/esm2022/v-angular/checkbox/index.mjs +0 -3
  77. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -256
  78. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  79. package/esm2022/v-angular/dropdown/dropdown.component.mjs +0 -239
  80. package/esm2022/v-angular/dropdown/dropdown.module.mjs +0 -22
  81. package/esm2022/v-angular/dropdown/index.mjs +0 -6
  82. package/esm2022/v-angular/dropdown/typeahead/index.mjs +0 -3
  83. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -98
  84. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  85. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -132
  86. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  87. package/esm2022/v-angular/i18n/i18n.json +0 -12
  88. package/esm2022/v-angular/i18n/i18n.module.mjs +0 -83
  89. package/esm2022/v-angular/i18n/i18n.test.module.mjs +0 -89
  90. package/esm2022/v-angular/i18n/index.mjs +0 -3
  91. package/esm2022/v-angular/info-circle/index.mjs +0 -3
  92. package/esm2022/v-angular/info-circle/info-circle.component.mjs +0 -28
  93. package/esm2022/v-angular/info-circle/info-circle.module.mjs +0 -21
  94. package/esm2022/v-angular/input/index.mjs +0 -3
  95. package/esm2022/v-angular/input/input.component.mjs +0 -221
  96. package/esm2022/v-angular/input/input.module.mjs +0 -32
  97. package/esm2022/v-angular/input-mask/config.mjs +0 -9
  98. package/esm2022/v-angular/input-mask/constants.mjs +0 -2
  99. package/esm2022/v-angular/input-mask/index.mjs +0 -6
  100. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +0 -20
  101. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +0 -165
  102. package/esm2022/v-angular/input-mask/input-mask.module.mjs +0 -35
  103. package/esm2022/v-angular/input-mask/input-mask.types.mjs +0 -2
  104. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +0 -190
  105. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +0 -56
  106. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  107. package/esm2022/v-angular/modal/index.mjs +0 -6
  108. package/esm2022/v-angular/modal/modal.globals.mjs +0 -17
  109. package/esm2022/v-angular/modal/modal.module.mjs +0 -40
  110. package/esm2022/v-angular/modal/modal.types.mjs +0 -2
  111. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +0 -229
  112. package/esm2022/v-angular/radio/index.mjs +0 -3
  113. package/esm2022/v-angular/radio/radio.component.mjs +0 -130
  114. package/esm2022/v-angular/radio/radio.module.mjs +0 -20
  115. package/esm2022/v-angular/textarea/index.mjs +0 -3
  116. package/esm2022/v-angular/textarea/textarea.component.mjs +0 -101
  117. package/esm2022/v-angular/textarea/textarea.module.mjs +0 -18
  118. package/esm2022/v-angular/tooltip/index.mjs +0 -3
  119. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +0 -273
  120. package/esm2022/v-angular/tooltip/tooltip.module.mjs +0 -18
  121. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -124
  122. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  123. package/v-angular/base-control-value-accessor/index.d.ts +0 -2
  124. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  125. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  126. package/v-angular/breadcrumbs/index.d.ts +0 -2
  127. package/v-angular/button/button.component.d.ts +0 -62
  128. package/v-angular/button/button.module.d.ts +0 -10
  129. package/v-angular/button/index.d.ts +0 -2
  130. package/v-angular/card/card.component.d.ts +0 -5
  131. package/v-angular/card/card.module.d.ts +0 -8
  132. package/v-angular/card/index.d.ts +0 -2
  133. package/v-angular/checkbox/checkbox.component.d.ts +0 -27
  134. package/v-angular/checkbox/checkbox.module.d.ts +0 -9
  135. package/v-angular/checkbox/index.d.ts +0 -2
  136. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -89
  137. package/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  138. package/v-angular/dropdown/dropdown.component.d.ts +0 -99
  139. package/v-angular/dropdown/dropdown.module.d.ts +0 -12
  140. package/v-angular/dropdown/index.d.ts +0 -5
  141. package/v-angular/dropdown/typeahead/index.d.ts +0 -2
  142. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -34
  143. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  144. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -59
  145. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  146. package/v-angular/i18n/i18n.module.d.ts +0 -15
  147. package/v-angular/i18n/i18n.test.module.d.ts +0 -27
  148. package/v-angular/i18n/index.d.ts +0 -2
  149. package/v-angular/info-circle/index.d.ts +0 -2
  150. package/v-angular/info-circle/info-circle.component.d.ts +0 -16
  151. package/v-angular/info-circle/info-circle.module.d.ts +0 -10
  152. package/v-angular/input/index.d.ts +0 -2
  153. package/v-angular/input/input.component.d.ts +0 -90
  154. package/v-angular/input/input.module.d.ts +0 -11
  155. package/v-angular/input-mask/config.d.ts +0 -6
  156. package/v-angular/input-mask/constants.d.ts +0 -2
  157. package/v-angular/input-mask/index.d.ts +0 -5
  158. package/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  159. package/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  160. package/v-angular/input-mask/input-mask.module.d.ts +0 -11
  161. package/v-angular/input-mask/input-mask.types.d.ts +0 -20
  162. package/v-angular/modal/dialog/dialog.component.d.ts +0 -55
  163. package/v-angular/modal/fold-out/fold-out.component.d.ts +0 -24
  164. package/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  165. package/v-angular/modal/index.d.ts +0 -5
  166. package/v-angular/modal/modal.globals.d.ts +0 -13
  167. package/v-angular/modal/modal.module.d.ts +0 -13
  168. package/v-angular/modal/modal.types.d.ts +0 -5
  169. package/v-angular/modal/slide-out/slide-out.component.d.ts +0 -76
  170. package/v-angular/radio/index.d.ts +0 -2
  171. package/v-angular/radio/radio.component.d.ts +0 -48
  172. package/v-angular/radio/radio.module.d.ts +0 -9
  173. package/v-angular/textarea/index.d.ts +0 -2
  174. package/v-angular/textarea/textarea.component.d.ts +0 -44
  175. package/v-angular/textarea/textarea.module.d.ts +0 -8
  176. package/v-angular/tooltip/index.d.ts +0 -2
  177. package/v-angular/tooltip/tooltip.directive.d.ts +0 -106
  178. package/v-angular/tooltip/tooltip.module.d.ts +0 -8
@@ -1,221 +0,0 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, } from '@angular/core';
2
- import { NgControl, UntypedFormControl } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { debounceTime, takeUntil } from 'rxjs/operators';
5
- import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
6
- import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@ngneat/transloco";
11
- import * as i4 from "@sebgroup/green-angular/src/v-angular/input-mask";
12
- /**
13
- * Input fields allow users to add and edit text.
14
- * https://designlibrary.sebgroup.com/components/component-input
15
- */
16
- export class NgvInputComponent extends NgvBaseControlValueAccessorComponent {
17
- /** Minimum length (number of characters) of value. */
18
- set minLength(length) {
19
- this._minlength = length;
20
- }
21
- /**
22
- * Minimum length (number of characters) of value.
23
- * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.
24
- */
25
- set minlength(length) {
26
- this._minlength = length;
27
- }
28
- get minlength() {
29
- return this._minlength;
30
- }
31
- /** Maximum length (number of characters) of value. */
32
- set maxLength(length) {
33
- this._maxlength = length;
34
- this.writeValue(this.state);
35
- }
36
- get maxlength() {
37
- return this._maxlength;
38
- }
39
- /**
40
- * Maximum length (number of characters) of value.
41
- * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.
42
- */
43
- set maxlength(length) {
44
- this._maxlength = length;
45
- this.writeValue(this.state);
46
- }
47
- set showCharacterCountdown(option) {
48
- this._showCharacterCountDown = option;
49
- }
50
- get showCharacterCountdown() {
51
- return this._showCharacterCountDown && this.hasMaxLength;
52
- }
53
- set inputMask(newInputMask) {
54
- // Hide input field
55
- this.hideInput$.next(true);
56
- this.cdr.detectChanges();
57
- this._inputMask = newInputMask;
58
- // Show input field to reload input-mask settings upon update
59
- setTimeout(() => {
60
- this.hideInput$.next(false);
61
- this.cdr.detectChanges();
62
- }, 200);
63
- }
64
- get inputMask() {
65
- return this._inputMask;
66
- }
67
- get control() {
68
- return this.ngControl?.control ?? this._formControl;
69
- }
70
- /** Returns if maxlength is used */
71
- get hasMaxLength() {
72
- return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER;
73
- }
74
- constructor(ngControl, translocoScope, cdr) {
75
- super(ngControl, translocoScope, cdr);
76
- this.ngControl = ngControl;
77
- this.translocoScope = translocoScope;
78
- this.cdr = cdr;
79
- /** Adding .gds-form-item as a class to host element */
80
- this.class = 'gds-form-item';
81
- /** Special property used for selecting DOM elements during automated UI testing. */
82
- this.thook = 'input';
83
- /** Type of input field. Should avoid types that modify field too much such as range. */
84
- this.type = 'text';
85
- /** If set to "on", hint for form autofill feature. */
86
- this.autocomplete = 'on';
87
- /** If set to true, the value will not be editable. */
88
- this.readonly = false;
89
- /** If set to true, enables the Angular template-driven email validator. */
90
- this.email = false;
91
- /** Minimum value required for numeric input types. */
92
- this.min = 0;
93
- /** Maximum value required for numeric input types. */
94
- this.max = Number.MAX_SAFE_INTEGER;
95
- /** Incremental values that are valid for numeric input types. */
96
- this.step = 1;
97
- this._maxlength = Number.MAX_SAFE_INTEGER;
98
- this._minlength = 0;
99
- /** Wether to show label that tells how many characters are still left to be entered. Will only be set if maxLength is also set */
100
- this._showCharacterCountDown = true;
101
- /** Pattern the value must match to be valid. */
102
- this.pattern = '';
103
- /** Amount of time to wait until emitting (ngvINput) event */
104
- this.debounceTime = 500;
105
- /**
106
- * @deprecated
107
- * Text to put in badge
108
- */
109
- this.badgeText = '';
110
- /** Emits every time the value of the inner input field changes, independantly of updates on the formcontroller */
111
- this.ngvInput = new EventEmitter();
112
- this._formControl = new UntypedFormControl();
113
- /** Toggler for showing or hiding the input field */
114
- this.hideInput$ = new Subject();
115
- this.inputChange$ = new Subject();
116
- this._destroy$ = new Subject();
117
- }
118
- ngOnInit() {
119
- super.ngOnInit();
120
- this.inputChange$
121
- .pipe(takeUntil(this._destroy$), debounceTime(this.debounceTime))
122
- .subscribe((inputValue) => {
123
- this.ngvInput.emit(inputValue);
124
- });
125
- }
126
- ngOnDestroy() {
127
- this._destroy$.next(true);
128
- this._destroy$.complete();
129
- }
130
- writeValue(value) {
131
- // maxLength will only work with string values
132
- if (value?.length && value.length > this.maxlength) {
133
- // cut value to match max length
134
- this.state = this.cutTextAfterMaxLength(value);
135
- if (value.length !== this.state.length) {
136
- this.onChange(this.state);
137
- }
138
- // emit value
139
- }
140
- else {
141
- // update state
142
- this.state = value;
143
- }
144
- this.cdr.detectChanges();
145
- }
146
- cutTextAfterMaxLength(value) {
147
- if (typeof value === 'string') {
148
- return value.substring(0, this.maxlength);
149
- }
150
- return value;
151
- }
152
- /** @internal */
153
- onInput(event) {
154
- event.stopPropagation();
155
- if (this.disabled)
156
- return;
157
- this.state = event.target.value;
158
- this.onChange(this.state);
159
- this.inputChange$.next(this.state);
160
- }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvInputComponent, selector: "ngv-input", inputs: { thook: "thook", type: "type", placeholder: "placeholder", autocomplete: "autocomplete", readonly: "readonly", email: "email", min: "min", max: "max", step: "step", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", showCharacterCountdown: "showCharacterCountdown", pattern: "pattern", debounceTime: "debounceTime", badgeText: "badgeText", inputMask: "inputMask" }, outputs: { ngvInput: "ngvInput" }, host: { properties: { "class": "this.class", "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"ngv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | ngvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.ngv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [ngvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.id]=\"id + '-message'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *ngvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host.gds-form-item{display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host.gds-form-item:not(:last-child){margin-bottom:1.5rem}:host.gds-form-item .gds-form-item__header{display:flex}:host.gds-form-item .gds-form-item__header .form-info{font-weight:400}:host.gds-form-item .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host.gds-form-item .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host.gds-form-item .gds-form-item__labels .form-info{margin-bottom:0}:host.gds-form-item .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host.gds-form-item .gds-form-item__labels>*{width:100%;display:block}:host.gds-form-item .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host.gds-form-item .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host.gds-form-item .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host.gds-form-item .gds-form-item__backdrop{transition:none}}:host.gds-form-item:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host.gds-form-item .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:1rem}:host.gds-form-item .gds-form-item__footer:not(:empty)>span{font-weight:500}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%}:host .gds-input-wrapper{display:flex;flex-direction:column;position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{color:var(--intent-danger-background, #9f000a)}\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: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NgvInputMaskDirective, selector: "[ngvInputMask]", inputs: ["ngvInputMask"] }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.InputMaskFormatPipe, name: "ngvInputMaskFormat" }] }); }
163
- }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputComponent, decorators: [{
165
- type: Component,
166
- args: [{ selector: 'ngv-input', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"ngv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | ngvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.ngv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [ngvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.id]=\"id + '-message'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *ngvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host.gds-form-item{display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host.gds-form-item:not(:last-child){margin-bottom:1.5rem}:host.gds-form-item .gds-form-item__header{display:flex}:host.gds-form-item .gds-form-item__header .form-info{font-weight:400}:host.gds-form-item .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host.gds-form-item .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host.gds-form-item .gds-form-item__labels .form-info{margin-bottom:0}:host.gds-form-item .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host.gds-form-item .gds-form-item__labels>*{width:100%;display:block}:host.gds-form-item .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host.gds-form-item .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host.gds-form-item .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host.gds-form-item .gds-form-item__backdrop{transition:none}}:host.gds-form-item:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host.gds-form-item .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:1rem}:host.gds-form-item .gds-form-item__footer:not(:empty)>span{font-weight:500}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%}:host .gds-input-wrapper{display:flex;flex-direction:column;position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{color:var(--intent-danger-background, #9f000a)}\n"] }]
167
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
168
- type: Self
169
- }, {
170
- type: Optional
171
- }] }, { type: undefined, decorators: [{
172
- type: Optional
173
- }, {
174
- type: Inject,
175
- args: [TRANSLOCO_SCOPE]
176
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { class: [{
177
- type: HostBinding,
178
- args: ['class']
179
- }], thook: [{
180
- type: HostBinding,
181
- args: ['attr.data-thook']
182
- }, {
183
- type: Input
184
- }], type: [{
185
- type: Input
186
- }], placeholder: [{
187
- type: Input
188
- }], autocomplete: [{
189
- type: Input
190
- }], readonly: [{
191
- type: Input
192
- }], email: [{
193
- type: Input
194
- }], min: [{
195
- type: Input
196
- }], max: [{
197
- type: Input
198
- }], step: [{
199
- type: Input
200
- }], minLength: [{
201
- type: Input
202
- }], minlength: [{
203
- type: Input
204
- }], maxLength: [{
205
- type: Input
206
- }], maxlength: [{
207
- type: Input
208
- }], showCharacterCountdown: [{
209
- type: Input
210
- }], pattern: [{
211
- type: Input
212
- }], debounceTime: [{
213
- type: Input
214
- }], badgeText: [{
215
- type: Input
216
- }], inputMask: [{
217
- type: Input
218
- }], ngvInput: [{
219
- type: Output
220
- }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxtQkFBbUIsQ0FBQTtBQUduRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTs7Ozs7O0FBRXhIOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxpQkFDWCxTQUFRLG9DQUFvQztJQXVCNUMsc0RBQXNEO0lBQ3RELElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7SUFDMUIsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQ0Qsc0RBQXNEO0lBQ3RELElBQWEs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QVE7c0JBQWhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBT08sU0FBUztzQkFBckIsS0FBSztnQkFPTyxTQUFTO3NCQUFyQixLQUFLO2dCQVdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVU8sc0JBQXNCO3NCQUFsQyxLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFpQkksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nXG5pbXBvcnQgdHlwZSB7IElucHV0bWFza09wdGlvbnMgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2snXG5cbmltcG9ydCB7IE5ndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yJ1xuXG4vKipcbiAqIElucHV0IGZpZWxkcyBhbGxvdyB1c2VycyB0byBhZGQgYW5kIGVkaXQgdGV4dC5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtaW5wdXRcbiAqL1xuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbmd2LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2SW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogQWRkaW5nIC5nZHMtZm9ybS1pdGVtIGFzIGEgY2xhc3MgdG8gaG9zdCBlbGVtZW50ICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9ICdnZHMtZm9ybS1pdGVtJ1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdpbnB1dCdcbiAgLyoqIFR5cGUgb2YgaW5wdXQgZmllbGQuIFNob3VsZCBhdm9pZCB0eXBlcyB0aGF0IG1vZGlmeSBmaWVsZCB0b28gbXVjaCBzdWNoIGFzIHJhbmdlLiAqL1xuICBASW5wdXQoKSB0eXBlID0gJ3RleHQnXG4gIC8qKiBUZXh0IHNob3duIGJlZm9yZSBpbnB1dCBoYXMgYSB3cml0dGVuIHZhbHVlLiAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICAvKiogSWYgc2V0IHRvIFwib25cIiwgaGludCBmb3IgZm9ybSBhdXRvZmlsbCBmZWF0dXJlLiAqL1xuICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnb24nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHZhbHVlIHdpbGwgbm90IGJlIGVkaXRhYmxlLiAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgZW5hYmxlcyB0aGUgQW5ndWxhciB0ZW1wbGF0ZS1kcml2ZW4gZW1haWwgdmFsaWRhdG9yLiAqL1xuICBASW5wdXQoKSBlbWFpbCA9IGZhbHNlXG4gIC8qKiBNaW5pbXVtIHZhbHVlIHJlcXVpcmVkIGZvciBudW1lcmljIGlucHV0IHR5cGVzLiAqL1xuICBASW5wdXQoKSBtaW4gPSAwXG4gIC8qKiBNYXhpbXVtIHZhbHVlIHJlcXVpcmVkIGZvciBudW1lcmljIGlucHV0IHR5cGVzLiAqL1xuICBASW5wdXQoKSBtYXggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuICAvKiogSW5jcmVtZW50YWwgdmFsdWVzIHRoYXQgYXJlIHZhbGlkIGZvciBudW1lcmljIGlucHV0IHR5cGVzLiAqL1xuICBASW5wdXQoKSBzdGVwID0gMVxuICAvKiogTWluaW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1pbkxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21pbmxlbmd0aCA9IGxlbmd0aFxuICB9XG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBtaW5sZW5ndGggdHJpZ2dlcnMgYW5ndWxhci10ZW1wbGF0ZS12YWxpZGF0aW9uLiBVc2UgQElucHV0KCkgbWluTGVuZ3RoIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWlubGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWlubGVuZ3RoID0gbGVuZ3RoXG4gIH1cbiAgZ2V0IG1pbmxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5sZW5ndGhcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnN0YXRlKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zdGF0ZSlcbiAgfVxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogV2V0aGVyIHRvIHNob3cgbGFiZWwgdGhhdCB0ZWxscyBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZSBzdGlsbCBsZWZ0IHRvIGJlIGVudGVyZWQuIFdpbGwgb25seSBiZSBzZXQgaWYgbWF4TGVuZ3RoIGlzIGFsc28gc2V0ICovXG4gIHByaXZhdGUgX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBzaG93Q2hhcmFjdGVyQ291bnRkb3duKG9wdGlvbjogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSBvcHRpb25cbiAgfVxuICBnZXQgc2hvd0NoYXJhY3RlckNvdW50ZG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0NoYXJhY3RlckNvdW50RG93biAmJiB0aGlzLmhhc01heExlbmd0aFxuICB9XG5cbiAgLyoqIFBhdHRlcm4gdGhlIHZhbHVlIG11c3QgbWF0Y2ggdG8gYmUgdmFsaWQuICovXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnJ1xuICAvKiogQW1vdW50IG9mIHRpbWUgdG8gd2FpdCB1bnRpbCBlbWl0dGluZyAobmd2SU5wdXQpIGV2ZW50ICovXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDUwMFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogVGV4dCB0byBwdXQgaW4gYmFkZ2VcbiAgICovXG4gIEBJbnB1dCgpIGJhZGdlVGV4dCA9ICcnXG5cbiAgLyoqIFNldHRpbmdzIGZvciBpbnB1dCBtYXNrIGlmIHJlcXVlc3RlZCAqL1xuICBwcml2YXRlIF9pbnB1dE1hc2shOiBJbnB1dG1hc2tPcHRpb25zPGFueT5cbiAgQElucHV0KCkgc2V0IGlucHV0TWFzayhuZXdJbnB1dE1hc2s6IElucHV0bWFza09wdGlvbnM8YW55Pikge1xuICAgIC8vIEhpZGUgaW5wdXQgZmllbGRcbiAgICB0aGlzLmhpZGVJbnB1dCQubmV4dCh0cnVlKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMuX2lucHV0TWFzayA9IG5ld0lucHV0TWFza1xuXG4gICAgLy8gU2hvdyBpbnB1dCBmaWVsZCB0byByZWxvYWQgaW5wdXQtbWFzayBzZXR0aW5ncyB1cG9uIHVwZGF0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlSW5wdXQkLm5leHQoZmFsc2UpXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9LCAyMDApXG4gIH1cbiAgZ2V0IGlucHV0TWFzaygpOiBJbnB1dG1hc2tPcHRpb25zPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dE1hc2tcbiAgfVxuXG4gIC8qKiBFbWl0cyBldmVyeSB0aW1lIHRoZSB2YWx1ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZmllbGQgY2hhbmdlcywgaW5kZXBlbmRhbnRseSBvZiB1cGRhdGVzIG9uIHRoZSBmb3JtY29udHJvbGxlciAqL1xuICBAT3V0cHV0KCkgbmd2SW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGdldCBjb250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2wpID8/IHRoaXMuX2Zvcm1Db250cm9sXG4gIH1cbiAgLyoqIFJldHVybnMgaWYgbWF4bGVuZ3RoIGlzIHVzZWQgKi9cbiAgZ2V0IGhhc01heExlbmd0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm1heGxlbmd0aCAmJiB0aGlzLm1heGxlbmd0aCAhPT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgfVxuXG4gIC8qKiBUb2dnbGVyIGZvciBzaG93aW5nIG9yIGhpZGluZyB0aGUgaW5wdXQgZmllbGQgKi9cbiAgaGlkZUlucHV0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcblxuICBwcm90ZWN0ZWQgaW5wdXRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8YW55PigpXG4gIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpXG4gICAgdGhpcy5pbnB1dENoYW5nZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnB1dFZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMubmd2SW5wdXQuZW1pdChpbnB1dFZhbHVlKVxuICAgICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAvLyBtYXhMZW5ndGggd2lsbCBvbmx5IHdvcmsgd2l0aCBzdHJpbmcgdmFsdWVzXG4gICAgaWYgKHZhbHVlPy5sZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gdGhpcy5tYXhsZW5ndGgpIHtcbiAgICAgIC8vIGN1dCB2YWx1ZSB0byBtYXRjaCBtYXggbGVuZ3RoXG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5jdXRUZXh0QWZ0ZXJNYXhMZW5ndGgodmFsdWUpXG4gICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSB0aGlzLnN0YXRlLmxlbmd0aCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gICAgICB9XG4gICAgICAvLyBlbWl0IHZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVwZGF0ZSBzdGF0ZVxuICAgICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgY3V0VGV4dEFmdGVyTWF4TGVuZ3RoKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIHRoaXMubWF4bGVuZ3RoKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnN0YXRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgICB0aGlzLmlucHV0Q2hhbmdlJC5uZXh0KHRoaXMuc3RhdGUpXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bGFiZWxcbiAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICBjbGFzcz1cInNkdi1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIm9wdGlvbmFsID09PSB0cnVlIHx8IChyZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2UpXCJcbiAgICAgICAgY2xhc3M9XCJzZHYtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIERFU0NSSVBUSU9OIC0tPlxuPGRpdiBjbGFzcz1cImZvcm0taW5mbyBkZXNjcmlwdGlvbiBoaWRlLWlmLWVtcHR5XCI+XG4gIHt7IGRlc2NyaXB0aW9uIH19XG48L2Rpdj5cblxuPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gIDxkaXZcbiAgICBbaWRdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgY2xhc3M9XCJuZ3YtZmllbGQtLWxvY2tlZFwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbYXR0ci52YWx1ZV09XCJzdGF0ZVwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCIgY2xhc3M9XCJ1bnNldC1zdGF0ZVwiPi08L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0TWFza1wiPlxuICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFpbnB1dE1hc2tcIj5cbiAgICAgICAge3sgc3RhdGUgfCBuZ3ZJbnB1dE1hc2tGb3JtYXQ6IGlucHV0TWFzayB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gSU5QVVQgV1JBUFBFUiAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gIDxkaXYgY2xhc3M9XCJnZHMtaW5wdXQtd3JhcHBlclwiIFtjbGFzcy5uZ3YtZmllbGQtLWVycm9yXT1cImludmFsaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtcHJlZml4IGhpZGUtaWYtZW1wdHlcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PSdwcmVmaXgnXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSU5QVVQgRklFTEQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgKm5nSWY9XCIhaW5wdXRNYXNrXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJzZHYtZmllbGRcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmVtYWlsXT1cImVtYWlsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctbWVzc2FnZSdcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcbiAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbdmFsdWVdPVwic3RhdGVcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIElOUFVUIEZJRUxEIFdJVEggTUFTSyAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWdyb3VwXCJcbiAgICAgICpuZ0lmPVwiISFpbnB1dE1hc2sgJiYgKGhpZGVJbnB1dCQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJzZHYtZmllbGRcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLW1lc3NhZ2UnXCJcbiAgICAgICAgW25ndklucHV0TWFza109XCJpbnB1dE1hc2tcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXN1ZmZpeCBoaWRlLWlmLWVtcHR5XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD0nc3VmZml4J11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJnZHMtZm9ybS1pdGVtX19mb290ZXIgZXJyb3Itd3JhcHBlclwiXG4gICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1lcnJvclwiXG4gICAgICBbYXR0ci5pZF09XCJpZCArICctbWVzc2FnZSdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNlcnJvcnNSZWY+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRNYXNrICYmIGhhc01heExlbmd0aCAmJiBzaG93Q2hhcmFjdGVyQ291bnRkb3duXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmd2Q2hhcmFjdGVyQ291bnRkb3duPVwiXG4gICAgICAgICAgbWF4bGVuZ3RoO1xuICAgICAgICAgIGN1cnJlbnRMZW5ndGg6IChpbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8udmFsdWUgPz8gJycpLmxlbmd0aDtcbiAgICAgICAgICBjaGFyYWN0ZXJzTGVmdCBhcyBjaGFyYWN0ZXJzTGVmdFxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImZvcm0taW5mb1wiXG4gICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHRcIlxuICAgICAgPlxuICAgICAgICB7eyBjaGFyYWN0ZXJzTGVmdCB9fSB7eyB0KCdsYWJlbC5tYXhsZW5ndGgnKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,32 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
5
- import { NgvInputComponent } from './input.component';
6
- import { NgvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask';
7
- import * as i0 from "@angular/core";
8
- export class NgvInputModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, declarations: [NgvInputComponent], imports: [CommonModule,
11
- NgvI18nModule,
12
- NgvInputMaskModule,
13
- ReactiveFormsModule], exports: [NgvInputComponent] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, imports: [CommonModule,
15
- NgvI18nModule,
16
- NgvInputMaskModule,
17
- ReactiveFormsModule] }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, decorators: [{
20
- type: NgModule,
21
- args: [{
22
- declarations: [NgvInputComponent],
23
- imports: [
24
- CommonModule,
25
- NgvI18nModule,
26
- NgvInputMaskModule,
27
- ReactiveFormsModule,
28
- ],
29
- exports: [NgvInputComponent],
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQTs7QUFZckYsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjLGlCQVRWLGlCQUFpQixhQUU5QixZQUFZO1lBQ1osYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixtQkFBbUIsYUFFWCxpQkFBaUI7Z0hBRWhCLGNBQWMsWUFQdkIsWUFBWTtZQUNaLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsbUJBQW1COzs0RkFJVixjQUFjO2tCQVYxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBOZ3ZJMThuTW9kdWxlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuJ1xuaW1wb3J0IHsgTmd2SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5ndklucHV0TWFza01vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQtbWFzaydcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmd2SW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5ndkkxOG5Nb2R1bGUsXG4gICAgTmd2SW5wdXRNYXNrTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtOZ3ZJbnB1dENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndklucHV0TW9kdWxlIHt9XG4iXX0=
@@ -1,9 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export class InputMaskConfig {
3
- constructor() {
4
- this.isAsync = false;
5
- this.inputSelector = 'input';
6
- }
7
- }
8
- export const INPUT_MASK_CONFIG = new InjectionToken('InputMaskConfig');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQtbWFzay9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUNFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELGlCQUFpQixDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIElucHV0TWFza0NvbmZpZyB7XG4gIGlzQXN5bmMgPSBmYWxzZTtcbiAgaW5wdXRTZWxlY3RvciA9ICdpbnB1dCc7XG59XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9NQVNLX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJbnB1dE1hc2tDb25maWc+KFxuICAnSW5wdXRNYXNrQ29uZmlnJ1xuKTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export const createMask = (options) => typeof options === 'string' ? { mask: options } : options;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQtbWFzay9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLE9BQXFDLEVBQ2hCLEVBQUUsQ0FDdkIsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRtYXNrT3B0aW9ucyB9IGZyb20gJy4vaW5wdXQtbWFzay50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYXNrID0gPFQ+KFxuICBvcHRpb25zOiBzdHJpbmcgfCBJbnB1dG1hc2tPcHRpb25zPFQ+XG4pOiBJbnB1dG1hc2tPcHRpb25zPFQ+ID0+XG4gIHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IHsgbWFzazogb3B0aW9ucyB9IDogb3B0aW9ucztcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export * from './input-mask-format.pipe';
2
- export * from './input-mask.directive';
3
- export * from './input-mask.module';
4
- export * from './input-mask.types';
5
- export * from './constants';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lucHV0LW1hc2stZm9ybWF0LnBpcGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW1hc2suZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1tYXNrLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtbWFzay50eXBlcydcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJ1xuIl19
@@ -1,20 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import _Inputmask from 'inputmask';
3
- import * as i0 from "@angular/core";
4
- const InputmaskStatic = _Inputmask.default || _Inputmask;
5
- export class InputMaskFormatPipe {
6
- transform(value, options) {
7
- if (!value)
8
- return value;
9
- return InputmaskStatic.format(value, options);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, name: "ngvInputMaskFormat" }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputMaskFormatPipe, decorators: [{
15
- type: Pipe,
16
- args: [{
17
- name: 'ngvInputMaskFormat',
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2svaW5wdXQtbWFzay1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUM7O0FBSW5DLE1BQU0sZUFBZSxHQUFJLFVBQXdELENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztBQUt4RyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBVSxLQUFVLEVBQUUsT0FBNEI7UUFDekQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QixPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBSlUsbUJBQW1COzZHQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIElucHV0bWFzayBmcm9tICdpbnB1dG1hc2snO1xuaW1wb3J0IF9JbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJztcblxuaW1wb3J0IHR5cGUgeyBJbnB1dG1hc2tPcHRpb25zIH0gZnJvbSAnLi9pbnB1dC1tYXNrLnR5cGVzJztcblxuY29uc3QgSW5wdXRtYXNrU3RhdGljID0gKF9JbnB1dG1hc2sgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ/OiBJbnB1dG1hc2suU3RhdGljIH0pLmRlZmF1bHQgfHwgX0lucHV0bWFzaztcblxuQFBpcGUoe1xuICBuYW1lOiAnbmd2SW5wdXRNYXNrRm9ybWF0Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRNYXNrRm9ybWF0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsdWU6IGFueSwgb3B0aW9uczogSW5wdXRtYXNrT3B0aW9uczxUPik6IGFueSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBJbnB1dG1hc2tTdGF0aWMuZm9ybWF0KHZhbHVlLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -1,165 +0,0 @@
1
- import { isPlatformServer } from '@angular/common';
2
- import { Directive, ElementRef, HostListener, Inject, Input, NgZone, Optional, PLATFORM_ID, Renderer2, Self, } from '@angular/core';
3
- import { NgControl, } from '@angular/forms';
4
- import _Inputmask from 'inputmask';
5
- import { INPUT_MASK_CONFIG, InputMaskConfig } from './config';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "./config";
9
- const InputmaskConstructor = _Inputmask.default ||
10
- _Inputmask;
11
- export class NgvInputMaskDirective {
12
- constructor(ngControl, config, platformId, elementRef, renderer, ngZone) {
13
- this.ngControl = ngControl;
14
- this.platformId = platformId;
15
- this.elementRef = elementRef;
16
- this.renderer = renderer;
17
- this.ngZone = ngZone;
18
- /** Input settings of directive */
19
- this.ngvInputMask = {};
20
- this.defaultInputMaskConfig = new InputMaskConfig();
21
- this.onInput = (_) => {
22
- // Empty method
23
- };
24
- this.onTouched = (_) => {
25
- // Empty method
26
- };
27
- this.validate = (control) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin.isValid()
28
- ? null
29
- : { invalidformat: true };
30
- if (this.ngControl) {
31
- this.ngControl.valueAccessor = this;
32
- }
33
- this.setNativeInputElement(config);
34
- }
35
- onKeyUp(event) {
36
- // Trigger "onInput" when pressing delete or backspace, when input is focused
37
- if (['Delete', 'Backspace'].includes(event.key)) {
38
- this.elementRef.nativeElement.dispatchEvent(new Event('input', {
39
- bubbles: true,
40
- cancelable: true,
41
- }));
42
- }
43
- }
44
- ngOnInit() {
45
- if (this.control) {
46
- this.control.setValidators(this.control.validator
47
- ? [this.control.validator, this.validate]
48
- : [this.validate]);
49
- this.control.updateValueAndValidity();
50
- }
51
- }
52
- ngOnDestroy() {
53
- this.inputMaskPlugin?.remove();
54
- this.mutationObserver?.disconnect();
55
- }
56
- initInputMask() {
57
- if (isPlatformServer(this.platformId) ||
58
- !this.nativeInputElement ||
59
- !Object.keys(this.ngvInputMask).length) {
60
- return;
61
- }
62
- this.inputMaskPlugin = this.ngZone.runOutsideAngular(() => new InputmaskConstructor(this.inputMaskOptions).mask(this.nativeInputElement));
63
- if (this.control) {
64
- setTimeout(() => {
65
- this.control.updateValueAndValidity();
66
- });
67
- }
68
- }
69
- ngAfterViewInit() {
70
- this.initInputMask();
71
- }
72
- get inputMaskOptions() {
73
- const { parser, ...options } = this.ngvInputMask;
74
- return options;
75
- }
76
- writeValue(value) {
77
- if (this.nativeInputElement) {
78
- this.renderer.setProperty(this.nativeInputElement, 'value', value ?? '');
79
- }
80
- }
81
- registerOnChange(fn) {
82
- // Use injected parser from settings to modify value
83
- // of users desire
84
- this.onInput = (value) => {
85
- const parser = this.ngvInputMask?.parser;
86
- const newValue = parser && value ? parser(value) : value;
87
- fn(newValue);
88
- };
89
- }
90
- registerOnTouched(fn) {
91
- this.onTouched = fn;
92
- }
93
- setDisabledState(disabled) {
94
- if (this.nativeInputElement) {
95
- this.renderer.setProperty(this.nativeInputElement, 'disabled', disabled);
96
- }
97
- }
98
- get control() {
99
- return this.ngControl?.control;
100
- }
101
- setNativeInputElement(config) {
102
- if (this.elementRef.nativeElement.tagName === 'INPUT') {
103
- this.nativeInputElement = this.elementRef.nativeElement;
104
- }
105
- else {
106
- this.defaultInputMaskConfig = {
107
- ...this.defaultInputMaskConfig,
108
- ...config,
109
- };
110
- if (this.defaultInputMaskConfig.isAsync) {
111
- // Create an observer instance linked to the callback function
112
- this.mutationObserver = new MutationObserver((mutationsList) => {
113
- for (const mutation of mutationsList) {
114
- if (mutation.type === 'childList') {
115
- const nativeInputElement = this.elementRef.nativeElement.querySelector(this.defaultInputMaskConfig.inputSelector);
116
- if (nativeInputElement) {
117
- this.nativeInputElement = nativeInputElement;
118
- this.mutationObserver?.disconnect();
119
- this.initInputMask();
120
- }
121
- }
122
- }
123
- });
124
- // Start observing the target node for configured mutations
125
- this.mutationObserver.observe(this.elementRef.nativeElement, {
126
- childList: true,
127
- subtree: true,
128
- });
129
- }
130
- else {
131
- this.nativeInputElement = this.elementRef.nativeElement.querySelector(this.defaultInputMaskConfig.inputSelector);
132
- }
133
- }
134
- }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: INPUT_MASK_CONFIG }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
136
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvInputMaskDirective, selector: "[ngvInputMask]", inputs: { ngvInputMask: "ngvInputMask" }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)", "keyup": "onKeyUp($event)" } }, ngImport: i0 }); }
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputMaskDirective, decorators: [{
139
- type: Directive,
140
- args: [{
141
- selector: '[ngvInputMask]',
142
- }]
143
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
144
- type: Optional
145
- }, {
146
- type: Self
147
- }] }, { type: i2.InputMaskConfig, decorators: [{
148
- type: Inject,
149
- args: [INPUT_MASK_CONFIG]
150
- }] }, { type: undefined, decorators: [{
151
- type: Inject,
152
- args: [PLATFORM_ID]
153
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { ngvInputMask: [{
154
- type: Input
155
- }], onInput: [{
156
- type: HostListener,
157
- args: ['input', ['$event.target.value']]
158
- }], onTouched: [{
159
- type: HostListener,
160
- args: ['blur', ['$event.target.value']]
161
- }], onKeyUp: [{
162
- type: HostListener,
163
- args: ['keyup', ['$event']]
164
- }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2xELE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUdMLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFBO0FBR3ZCLE9BQU8sVUFBVSxNQUFNLFdBQVcsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBOzs7O0FBRzdELE1BQU0sb0JBQW9CLEdBQ3ZCLFVBQXdELENBQUMsT0FBTztJQUNqRSxVQUFVLENBQUE7QUFLWixNQUFNLE9BQU8scUJBQXFCO0lBWWhDLFlBQzZCLFNBQW9CLEVBQ3BCLE1BQXVCLEVBQ3JCLFVBQWtCLEVBQ3ZDLFVBQThDLEVBQzlDLFFBQW1CLEVBQ25CLE1BQWM7UUFMSyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsZUFBVSxHQUFWLFVBQVUsQ0FBb0M7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZnhCLGtDQUFrQztRQUN6QixpQkFBWSxHQUF3QixFQUFFLENBQUE7UUFJL0MsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtRQW1COUMsWUFBTyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDbkIsZUFBZTtRQUNq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QUFNOzJCQUFDLFdBQVc7a0hBWFosWUFBWTtzQkFBcEIsS0FBSztnQkF1Qk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQU05QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBTTdDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgdHlwZSBJbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJ1xuaW1wb3J0IF9JbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrJ1xuXG5pbXBvcnQgeyBJTlBVVF9NQVNLX0NPTkZJRywgSW5wdXRNYXNrQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnXG5pbXBvcnQgdHlwZSB7IElucHV0bWFza09wdGlvbnMgfSBmcm9tICcuL2lucHV0LW1hc2sudHlwZXMnXG5cbmNvbnN0IElucHV0bWFza0NvbnN0cnVjdG9yID1cbiAgKF9JbnB1dG1hc2sgYXMgdW5rbm93biBhcyB7IGRlZmF1bHQ/OiBJbnB1dG1hc2suU3RhdGljIH0pLmRlZmF1bHQgfHxcbiAgX0lucHV0bWFza1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd2SW5wdXRNYXNrXScsXG59KVxuZXhwb3J0IGNsYXNzIE5ndklucHV0TWFza0RpcmVjdGl2ZTxUID0gYW55PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKiBJbnB1dCBzZXR0aW5ncyBvZiBkaXJlY3RpdmUgKi9cbiAgQElucHV0KCkgbmd2SW5wdXRNYXNrOiBJbnB1dG1hc2tPcHRpb25zPFQ+ID0ge31cblxuICBpbnB1dE1hc2tQbHVnaW46IElucHV0bWFzay5JbnN0YW5jZSB8IHVuZGVmaW5lZFxuICBuYXRpdmVJbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgZGVmYXVsdElucHV0TWFza0NvbmZpZyA9IG5ldyBJbnB1dE1hc2tDb25maWcoKVxuXG4gIHByaXZhdGUgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBJbmplY3QoSU5QVVRfTUFTS19DT05GSUcpIGNvbmZpZzogSW5wdXRNYXNrQ29uZmlnLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50IHwgYW55PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpc1xuICAgIH1cbiAgICB0aGlzLnNldE5hdGl2ZUlucHV0RWxlbWVudChjb25maWcpXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBvbklucHV0ID0gKF86IGFueSkgPT4ge1xuICAgIC8vIEVtcHR5IG1ldGhvZFxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBvblRvdWNoZWQgPSAoXzogYW55KSA9PiB7XG4gICAgLy8gRW1wdHkgbWV0aG9kXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBUcmlnZ2VyIFwib25JbnB1dFwiIHdoZW4gcHJlc3NpbmcgZGVsZXRlIG9yIGJhY2tzcGFjZSwgd2hlbiBpbnB1dCBpcyBmb2N1c2VkXG4gICAgaWYgKFsnRGVsZXRlJywgJ0JhY2tzcGFjZSddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBFdmVudCgnaW5wdXQnLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgdGhpcy5jb250cm9sLnZhbGlkYXRvclxuICAgICAgICAgID8gW3RoaXMuY29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVdXG4gICAgICAgICAgOiBbdGhpcy52YWxpZGF0ZV0sXG4gICAgICApXG5cbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0TWFza1BsdWdpbj8ucmVtb3ZlKClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICB9XG5cbiAgaW5pdElucHV0TWFzaygpIHtcbiAgICBpZiAoXG4gICAgICBpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkgfHxcbiAgICAgICF0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCB8fFxuICAgICAgIU9iamVjdC5rZXlzKHRoaXMubmd2SW5wdXRNYXNrKS5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRNYXNrUGx1Z2luID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIG5ldyBJbnB1dG1hc2tDb25zdHJ1Y3Rvcih0aGlzLmlucHV0TWFza09wdGlvbnMpLm1hc2soXG4gICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgICApLFxuICAgIClcblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0SW5wdXRNYXNrKClcbiAgfVxuXG4gIGdldCBpbnB1dE1hc2tPcHRpb25zKCk6IElucHV0bWFzay5PcHRpb25zIHtcbiAgICBjb25zdCB7IHBhcnNlciwgLi4ub3B0aW9ucyB9ID0gdGhpcy5uZ3ZJbnB1dE1hc2tcbiAgICByZXR1cm4gb3B0aW9uc1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMubmF0aXZlSW5wdXRFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSA/PyAnJylcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyBVc2UgaW5qZWN0ZWQgcGFyc2VyIGZyb20gc2V0dGluZ3MgdG8gbW9kaWZ5IHZhbHVlXG4gICAgLy8gb2YgdXNlcnMgZGVzaXJlXG4gICAgdGhpcy5vbklucHV0ID0gKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLm5ndklucHV0TWFzaz8ucGFyc2VyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHBhcnNlciAmJiB2YWx1ZSA/IHBhcnNlcih2YWx1ZSkgOiB2YWx1ZVxuICAgICAgZm4obmV3VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIHZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+XG4gICAgIWNvbnRyb2wudmFsdWUgfHwgIXRoaXMuaW5wdXRNYXNrUGx1Z2luIHx8IHRoaXMuaW5wdXRNYXNrUGx1Z2luLmlzVmFsaWQoKVxuICAgICAgPyBudWxsXG4gICAgICA6IHsgaW52YWxpZGZvcm1hdDogdHJ1ZSB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ2Rpc2FibGVkJywgZGlzYWJsZWQpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2xcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmF0aXZlSW5wdXRFbGVtZW50KGNvbmZpZzogSW5wdXRNYXNrQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUgPT09ICdJTlBVVCcpIHtcbiAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0SW5wdXRNYXNrQ29uZmlnID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRJbnB1dE1hc2tDb25maWcsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRlZmF1bHRJbnB1dE1hc2tDb25maWcuaXNBc3luYykge1xuICAgICAgICAvLyBDcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UgbGlua2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hdGl2ZUlucHV0RWxlbWVudCA9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdElucHV0TWFza0NvbmZpZy5pbnB1dFNlbGVjdG9yLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG5hdGl2ZUlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gbmF0aXZlSW5wdXRFbGVtZW50XG4gICAgICAgICAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRJbnB1dE1hc2soKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyB0aGUgdGFyZ2V0IG5vZGUgZm9yIGNvbmZpZ3VyZWQgbXV0YXRpb25zXG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SW5wdXRNYXNrQ29uZmlnLmlucHV0U2VsZWN0b3IsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==