@softpak/components 0.0.0-beta.11 → 0.0.0-beta.111

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 (84) hide show
  1. package/esm2022/spx-alert/spx-alert.component.mjs +9 -4
  2. package/esm2022/spx-change-details/public-api.mjs +2 -0
  3. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  4. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  5. package/esm2022/spx-change-details/spx-change-details.component.mjs +118 -0
  6. package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +6 -5
  7. package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +6 -5
  8. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +6 -4
  9. package/esm2022/spx-form-section/spx-form-section.component.mjs +7 -7
  10. package/esm2022/spx-form-view/public-api.mjs +4 -0
  11. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  12. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  13. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  14. package/esm2022/spx-form-view/spx-form-view.component.mjs +163 -0
  15. package/esm2022/spx-inputs/public-api.mjs +2 -1
  16. package/esm2022/spx-inputs/spx-dropdown.component.mjs +95 -0
  17. package/esm2022/spx-inputs/spx-input-box.component.mjs +69 -50
  18. package/esm2022/spx-inputs/spx-input-text.component.mjs +20 -31
  19. package/esm2022/spx-inputs/spx-input-type.enum.mjs +14 -0
  20. package/esm2022/spx-inputs/spx-input.component.mjs +27 -12
  21. package/esm2022/spx-navigation/spx-home-tile.component.mjs +29 -10
  22. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
  23. package/esm2022/spx-navigation/spx-navigation.component.mjs +11 -5
  24. package/esm2022/spx-number-check/public-api.mjs +2 -0
  25. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  26. package/esm2022/spx-number-check/spx-number-check.component.mjs +262 -0
  27. package/esm2022/spx-spinner/spx-spinner.component.mjs +5 -5
  28. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +10 -6
  29. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +15 -10
  30. package/esm2022/spx-update/src/spx-update-info.component.mjs +1 -1
  31. package/fesm2022/softpak-components-spx-alert.mjs +8 -3
  32. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-change-details.mjs +125 -0
  34. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -0
  35. package/fesm2022/softpak-components-spx-channel-selection.mjs +9 -7
  36. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-check-digit.mjs +5 -3
  38. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  39. package/fesm2022/softpak-components-spx-form-section.mjs +6 -6
  40. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-form-view.mjs +170 -0
  42. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -0
  43. package/fesm2022/softpak-components-spx-inputs.mjs +214 -88
  44. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-navigation.mjs +37 -12
  46. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  47. package/fesm2022/softpak-components-spx-number-check.mjs +269 -0
  48. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -0
  49. package/fesm2022/softpak-components-spx-spinner.mjs +4 -4
  50. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-suggestion.mjs +9 -5
  52. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  53. package/fesm2022/softpak-components-spx-toaster.mjs +14 -9
  54. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-update.mjs +1 -1
  56. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  57. package/package.json +36 -18
  58. package/spx-change-details/index.d.ts +5 -0
  59. package/spx-change-details/public-api.d.ts +1 -0
  60. package/spx-change-details/spx-change-details-value.interface.d.ts +7 -0
  61. package/spx-change-details/spx-change-details.component.d.ts +40 -0
  62. package/spx-channel-selection/src/spx-channel-selection.component.d.ts +2 -1
  63. package/spx-channel-selection/src/spx-company-selection.component.d.ts +2 -1
  64. package/spx-check-digit/spx-check-digit.component.d.ts +3 -0
  65. package/spx-form-view/index.d.ts +5 -0
  66. package/spx-form-view/public-api.d.ts +3 -0
  67. package/spx-form-view/spx-form-field.interface.d.ts +16 -0
  68. package/spx-form-view/spx-form-section.interface.d.ts +9 -0
  69. package/spx-form-view/spx-form-view.component.d.ts +27 -0
  70. package/spx-inputs/public-api.d.ts +1 -0
  71. package/spx-inputs/spx-dropdown.component.d.ts +18 -0
  72. package/spx-inputs/spx-input-box.component.d.ts +13 -8
  73. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  74. package/spx-inputs/spx-input-type.enum.d.ts +12 -0
  75. package/spx-inputs/spx-input.component.d.ts +6 -3
  76. package/spx-navigation/spx-home-tile.component.d.ts +5 -1
  77. package/spx-navigation/spx-navigation-item.interface.d.ts +1 -0
  78. package/spx-navigation/spx-navigation.component.d.ts +4 -1
  79. package/spx-number-check/index.d.ts +5 -0
  80. package/spx-number-check/public-api.d.ts +1 -0
  81. package/spx-number-check/spx-number-check.component.d.ts +48 -0
  82. package/spx-suggestion/spx-suggestion.component.d.ts +1 -0
  83. package/spx-toaster/src/spx-toaster.component.d.ts +1 -1
  84. package/tailwind.css +1 -1
@@ -1,54 +1,44 @@
1
1
  import { NgIf, NgFor } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Component, Input, Output, HostListener } from '@angular/core';
3
+ import { EventEmitter, Component, Input, Output, HostListener, ViewChild } from '@angular/core';
4
4
  import { SpxButtonComponent } from '@softpak/components/spx-button';
5
5
  import * as i1 from '@fortawesome/angular-fontawesome';
6
6
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
7
- import { faEdit, faSearch, faQuestion, faTimes } from '@fortawesome/free-solid-svg-icons';
7
+ import { faEdit } from '@fortawesome/free-solid-svg-icons/faEdit';
8
+ import { faQuestion } from '@fortawesome/free-solid-svg-icons/faQuestion';
9
+ import { faSearch } from '@fortawesome/free-solid-svg-icons/faSearch';
10
+ import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes';
11
+ import { fromEvent } from 'rxjs';
8
12
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
13
  import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
10
14
  import { DateTime } from 'luxon';
11
15
 
12
16
  class SpxInputBoxComponent {
13
- constructor() {
14
- this.faEdit = faEdit;
15
- this.faSearch = faSearch;
16
- this.faQuestion = faQuestion;
17
- this.faTimes = faTimes;
18
- this.spxReadonly = false;
19
- this.spxShowClear = true;
20
- this.spxClear = new EventEmitter();
21
- this.spxSearchOutput = new EventEmitter();
22
- this.spxFocus = new EventEmitter();
23
- this.spxFocusOut = new EventEmitter();
24
- this.spxEdit = new EventEmitter();
25
- this.spxHelp = new EventEmitter();
26
- this.spxFocused = false;
27
- }
28
- // @Listen('focusout', { capture: true })
29
- // handleFocusOut() {
30
- // this.spxFocused = false;
31
- // this.spxFocusOut.emit();
32
- // }
33
- // @Listen('click', { target: 'window' })
34
- // handleWindowClick(ev) {
35
- // if (ev.composedPath().includes(this.el)) {
36
- // if (!this.spxFocused) {
37
- // this.spxFocused = true;
38
- // this.spxFocus.emit();
39
- // }
40
- // } else {
41
- // this.spxFocused = false;
42
- // }
43
- // }
44
- async spxSetFocus() {
17
+ handleFocusIn(ev) {
45
18
  this.spxFocused = true;
46
19
  }
20
+ handleFocusOut(ev) {
21
+ const thisEl = this.elRef.nativeElement;
22
+ const relatedElement = ev.relatedTarget;
23
+ if (!relatedElement || !thisEl.contains(relatedElement)) {
24
+ this.spxFocusOut.emit();
25
+ }
26
+ }
27
+ handleWindowClick(ev) {
28
+ if (ev.composedPath().includes(this.elRef.nativeElement)) {
29
+ if (!this.spxFocused) {
30
+ this.spxFocus.emit();
31
+ }
32
+ }
33
+ else {
34
+ this.spxFocused = false;
35
+ }
36
+ }
47
37
  onClear() {
48
38
  this.spxClear.emit();
49
39
  }
50
40
  onSearch() {
51
- this.spxSearchOutput.emit();
41
+ this.spxSearch.emit();
52
42
  }
53
43
  onEdit() {
54
44
  this.spxEdit.emit();
@@ -56,8 +46,25 @@ class SpxInputBoxComponent {
56
46
  onHelp() {
57
47
  this.spxHelp.emit();
58
48
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxLabel: "spxLabel", spxRequired: "spxRequired", spxReadonly: "spxReadonly", spxShowHelp: "spxShowHelp", spxCompact: "spxCompact", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue", spxFocused: "spxFocused" }, outputs: { spxClear: "spxClear", spxSearchOutput: "spxSearchOutput", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
49
+ constructor(elRef) {
50
+ this.elRef = elRef;
51
+ this.faEdit = faEdit;
52
+ this.faSearch = faSearch;
53
+ this.faQuestion = faQuestion;
54
+ this.faTimes = faTimes;
55
+ this.spxFocused = false;
56
+ this.spxReadonly = false;
57
+ this.spxShowClear = true;
58
+ this.spxShowLabel = true;
59
+ this.spxClear = new EventEmitter();
60
+ this.spxSearch = new EventEmitter();
61
+ this.spxFocus = new EventEmitter();
62
+ this.spxFocusOut = new EventEmitter();
63
+ this.spxEdit = new EventEmitter();
64
+ this.spxHelp = new EventEmitter();
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
61
68
  [class.rounded-none]="this.spxShowValidationMessages"
62
69
  [class.rounded-t]="this.spxShowValidationMessages"
63
70
  [class.outline-none]="this.spxFocused && !this.spxReadonly"
@@ -71,7 +78,7 @@ class SpxInputBoxComponent {
71
78
  [class.p-0]="this.spxCompact"
72
79
  [class.flex]="this.spxCompact"
73
80
  [class.items-center]="this.spxCompact">
74
- <div class="text-sm mb-1 text-gray-800"
81
+ <div *ngIf="this.spxShowLabel" class="font-bold text-sm mb-1 text-gray-800"
75
82
  [class.mb-0]="this.spxCompact"
76
83
  [class.px-3]="this.spxCompact">
77
84
  {{this.spxLabel}} <span *ngIf="spxRequired" class="text-red-800">*</span>
@@ -84,7 +91,6 @@ class SpxInputBoxComponent {
84
91
  (spxClick)="onEdit()"
85
92
  [spxFullHeight]="true"
86
93
  [spxSize]="'xl'"
87
- [spxTabIndex]="-1"
88
94
  [spxType]="'button'">
89
95
  <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
90
96
  </spx-button>
@@ -92,6 +98,7 @@ class SpxInputBoxComponent {
92
98
  *ngIf="this.spxShowHelp"
93
99
  (spxClick)="onHelp()"
94
100
  [spxFullHeight]="true"
101
+ [spxDisabled]="this.spxReadonly"
95
102
  [spxSize]="'xl'"
96
103
  [spxTabIndex]="-1"
97
104
  [spxType]="'button'">
@@ -101,6 +108,7 @@ class SpxInputBoxComponent {
101
108
  *ngIf="this.spxShowSearch"
102
109
  (spxClick)="onSearch()"
103
110
  [spxFullHeight]="true"
111
+ [spxDisabled]="this.spxReadonly"
104
112
  [spxSize]="'xl'"
105
113
  [spxTabIndex]="-1"
106
114
  [spxType]="'button'">
@@ -146,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
146
154
  [class.p-0]="this.spxCompact"
147
155
  [class.flex]="this.spxCompact"
148
156
  [class.items-center]="this.spxCompact">
149
- <div class="text-sm mb-1 text-gray-800"
157
+ <div *ngIf="this.spxShowLabel" class="font-bold text-sm mb-1 text-gray-800"
150
158
  [class.mb-0]="this.spxCompact"
151
159
  [class.px-3]="this.spxCompact">
152
160
  {{this.spxLabel}} <span *ngIf="spxRequired" class="text-red-800">*</span>
@@ -159,7 +167,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
159
167
  (spxClick)="onEdit()"
160
168
  [spxFullHeight]="true"
161
169
  [spxSize]="'xl'"
162
- [spxTabIndex]="-1"
163
170
  [spxType]="'button'">
164
171
  <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
165
172
  </spx-button>
@@ -167,6 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
167
174
  *ngIf="this.spxShowHelp"
168
175
  (spxClick)="onHelp()"
169
176
  [spxFullHeight]="true"
177
+ [spxDisabled]="this.spxReadonly"
170
178
  [spxSize]="'xl'"
171
179
  [spxTabIndex]="-1"
172
180
  [spxType]="'button'">
@@ -176,6 +184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
176
184
  *ngIf="this.spxShowSearch"
177
185
  (spxClick)="onSearch()"
178
186
  [spxFullHeight]="true"
187
+ [spxDisabled]="this.spxReadonly"
179
188
  [spxSize]="'xl'"
180
189
  [spxTabIndex]="-1"
181
190
  [spxType]="'button'">
@@ -197,20 +206,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
197
206
  <ng-content select="[validation-messages]"></ng-content>
198
207
  </div>`,
199
208
  }]
200
- }], propDecorators: { spxLabel: [{
209
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
201
210
  type: Input
202
- }], spxRequired: [{
211
+ }], spxFocused: [{
203
212
  type: Input
204
- }], spxReadonly: [{
213
+ }], spxLabel: [{
205
214
  type: Input
206
- }], spxShowHelp: [{
215
+ }], spxReadonly: [{
207
216
  type: Input
208
- }], spxCompact: [{
217
+ }], spxRequired: [{
209
218
  type: Input
210
219
  }], spxShowClear: [{
211
220
  type: Input
212
221
  }], spxShowEdit: [{
213
222
  type: Input
223
+ }], spxShowHelp: [{
224
+ type: Input
225
+ }], spxShowLabel: [{
226
+ type: Input
214
227
  }], spxShowSearch: [{
215
228
  type: Input
216
229
  }], spxShowValidationMessages: [{
@@ -219,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
219
232
  type: Input
220
233
  }], spxClear: [{
221
234
  type: Output
222
- }], spxSearchOutput: [{
235
+ }], spxSearch: [{
223
236
  type: Output
224
237
  }], spxFocus: [{
225
238
  type: Output
@@ -229,8 +242,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
229
242
  type: Output
230
243
  }], spxHelp: [{
231
244
  type: Output
232
- }], spxFocused: [{
245
+ }], handleFocusIn: [{
246
+ type: HostListener,
247
+ args: ['focusin', ["$event"]]
248
+ }], handleFocusOut: [{
249
+ type: HostListener,
250
+ args: ['focusout', ["$event"]]
251
+ }], handleWindowClick: [{
252
+ type: HostListener,
253
+ args: ['document:click', ["$event"]]
254
+ }] } });
255
+
256
+ class SpxDropdownComponent {
257
+ constructor() {
258
+ this.focusPosition = 0;
259
+ this.spxSuggestions = [];
260
+ this.spxSelect = new EventEmitter();
261
+ }
262
+ ngOnInit() {
263
+ this.listenToKeyUp();
264
+ }
265
+ ngOnChanges(changes) {
266
+ this.focusPosition = 0;
267
+ }
268
+ ngOnDestroy() {
269
+ this.subscriptionKeyUp?.unsubscribe();
270
+ }
271
+ handleSuggestionClick(valuePair) {
272
+ console.log('handleSuggestionClick', valuePair);
273
+ this.select(valuePair);
274
+ }
275
+ listenToKeyUp() {
276
+ this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {
277
+ if (event.key === 'ArrowUp' && this.focusPosition > 0) {
278
+ this.focusPosition = this.focusPosition - 1;
279
+ event.preventDefault();
280
+ }
281
+ if (event.key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {
282
+ this.focusPosition = this.focusPosition + 1;
283
+ event.preventDefault();
284
+ }
285
+ if (event.key === 'Enter' && this.spxSuggestions.length > 0) {
286
+ this.select(this.spxSuggestions.at(this.focusPosition));
287
+ event.preventDefault();
288
+ }
289
+ });
290
+ }
291
+ select(valuePair) {
292
+ this.focusPosition = 0;
293
+ this.spxSelect.emit(valuePair);
294
+ }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxDropdownComponent, isStandalone: true, selector: "spx-dropdown", inputs: { spxSuggestions: "spxSuggestions" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<div class="relative text-black">
297
+ <div
298
+ class="absolute bg-gray-100 left-0 right-0 z-20">
299
+ <button
300
+ *ngFor="let valuePair of this.spxSuggestions; let i = index"
301
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
302
+ [class.bg-gray-100]="i === this.focusPosition"
303
+ [class.bg-white]="i !== this.focusPosition"
304
+ (click)="this.handleSuggestionClick(valuePair)"
305
+ [attr.tabindex]="-1"
306
+ [attr.type]="'button'">
307
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
308
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
309
+ </button>
310
+ </div>
311
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
312
+ }
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxDropdownComponent, decorators: [{
314
+ type: Component,
315
+ args: [{
316
+ selector: 'spx-dropdown',
317
+ standalone: true,
318
+ imports: [
319
+ NgIf,
320
+ NgFor,
321
+ SpxButtonComponent,
322
+ ],
323
+ template: `<div class="relative text-black">
324
+ <div
325
+ class="absolute bg-gray-100 left-0 right-0 z-20">
326
+ <button
327
+ *ngFor="let valuePair of this.spxSuggestions; let i = index"
328
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
329
+ [class.bg-gray-100]="i === this.focusPosition"
330
+ [class.bg-white]="i !== this.focusPosition"
331
+ (click)="this.handleSuggestionClick(valuePair)"
332
+ [attr.tabindex]="-1"
333
+ [attr.type]="'button'">
334
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
335
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
336
+ </button>
337
+ </div>
338
+ </div>`,
339
+ }]
340
+ }], propDecorators: { spxSuggestions: [{
233
341
  type: Input
342
+ }], spxSelect: [{
343
+ type: Output
234
344
  }] } });
235
345
 
236
346
  class SpxInputTextComponent {
@@ -247,7 +357,7 @@ class SpxInputTextComponent {
247
357
  this.spxWasInternalUpdate = false;
248
358
  }
249
359
  async spxSetFocus() {
250
- // this.elInput.focus();
360
+ this.inputRef?.nativeElement?.focus();
251
361
  }
252
362
  componentDidLoad() {
253
363
  if (this.spxAutofocus) {
@@ -279,8 +389,9 @@ class SpxInputTextComponent {
279
389
  this.spxFocused = true;
280
390
  }
281
391
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
282
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxSuggestions: "spxSuggestions", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused", spxType: "spxType", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxBlurFromChild: "spxBlurFromChild", spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class="relative text-black">
392
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxSuggestions: "spxSuggestions", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused", spxType: "spxType", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxBlurFromChild: "spxBlurFromChild", spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="relative text-black">
283
393
  <input
394
+ #input
284
395
  class="font-bold text-lg w-full outline-none"
285
396
  [class.bg-white]="!this.spxReadonly"
286
397
  [class.bg-gray-300]="this.spxReadonly"
@@ -292,27 +403,18 @@ class SpxInputTextComponent {
292
403
  [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
293
404
  [attr.name]="this.spxName"
294
405
  [attr.type]="this.spxType"
295
- [attr.value]="this.value?.description ? this.value?.description : this.value?.value"
406
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
296
407
  (blur)="this.handleBlur()"
297
408
  (keyUp)="this.handleKeyUp()"
298
409
  (focus)="this.handleFocus()"
299
410
  (input)="this.handleDescriptionInput($event)"
300
411
  />
301
412
  <span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
302
- <div
413
+ <spx-dropdown
303
414
  *ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
304
- class="absolute bg-gray-100 left-0 right-0 z-20">
305
- <div
306
- *ngFor="let valuePair of this.spxSuggestions"
307
- class="text-black block w-full p-2 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 flex items-center"
308
- (click)="this.handleSuggestionClick($event)"
309
- [attr.tabindex]="0"
310
- >
311
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
312
- <spx-button spxType="button">Select</spx-button>
313
- </div>
314
- </div>
315
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
415
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
416
+ </spx-dropdown>
417
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
316
418
  }
317
419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputTextComponent, decorators: [{
318
420
  type: Component,
@@ -323,9 +425,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
323
425
  NgIf,
324
426
  NgFor,
325
427
  SpxButtonComponent,
428
+ SpxDropdownComponent,
326
429
  ],
327
430
  template: `<div class="relative text-black">
328
431
  <input
432
+ #input
329
433
  class="font-bold text-lg w-full outline-none"
330
434
  [class.bg-white]="!this.spxReadonly"
331
435
  [class.bg-gray-300]="this.spxReadonly"
@@ -337,26 +441,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
337
441
  [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
338
442
  [attr.name]="this.spxName"
339
443
  [attr.type]="this.spxType"
340
- [attr.value]="this.value?.description ? this.value?.description : this.value?.value"
444
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
341
445
  (blur)="this.handleBlur()"
342
446
  (keyUp)="this.handleKeyUp()"
343
447
  (focus)="this.handleFocus()"
344
448
  (input)="this.handleDescriptionInput($event)"
345
449
  />
346
450
  <span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
347
- <div
451
+ <spx-dropdown
348
452
  *ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
349
- class="absolute bg-gray-100 left-0 right-0 z-20">
350
- <div
351
- *ngFor="let valuePair of this.spxSuggestions"
352
- class="text-black block w-full p-2 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 flex items-center"
353
- (click)="this.handleSuggestionClick($event)"
354
- [attr.tabindex]="0"
355
- >
356
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
357
- <spx-button spxType="button">Select</spx-button>
358
- </div>
359
- </div>
453
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
454
+ </spx-dropdown>
360
455
  </div>`,
361
456
  }]
362
457
  }], propDecorators: { spxName: [{
@@ -389,6 +484,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
389
484
  type: Output
390
485
  }], spxWasInternalUpdate: [{
391
486
  type: Input
487
+ }], inputRef: [{
488
+ type: ViewChild,
489
+ args: ['input', { static: true }]
392
490
  }] } });
393
491
 
394
492
  class SpxInputDateComponent {
@@ -968,6 +1066,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
968
1066
  type: Output
969
1067
  }] } });
970
1068
 
1069
+ var SpxInputTypeEnum;
1070
+ (function (SpxInputTypeEnum) {
1071
+ SpxInputTypeEnum["autocomplete"] = "autocomplete";
1072
+ SpxInputTypeEnum["date"] = "date";
1073
+ SpxInputTypeEnum["float"] = "float";
1074
+ SpxInputTypeEnum["overlay"] = "overlay";
1075
+ SpxInputTypeEnum["overlayNumber"] = "overlaynumber";
1076
+ SpxInputTypeEnum["radio"] = "radio";
1077
+ SpxInputTypeEnum["number"] = "number";
1078
+ SpxInputTypeEnum["password"] = "password";
1079
+ SpxInputTypeEnum["text"] = "text";
1080
+ SpxInputTypeEnum["textNumericKeyboard"] = "textNumericKeyboard";
1081
+ })(SpxInputTypeEnum || (SpxInputTypeEnum = {}));
1082
+
971
1083
  class SpxInputComponent {
972
1084
  constructor() {
973
1085
  this.spxLabel = 'label';
@@ -978,12 +1090,13 @@ class SpxInputComponent {
978
1090
  this.spxSelectDay = true;
979
1091
  this.spxShowEdit = false;
980
1092
  this.spxShowHelp = false;
1093
+ this.spxShowLabel = true;
981
1094
  this.spxCompact = false;
982
1095
  this.spxShowClear = true;
983
1096
  this.spxShowSearch = false;
984
1097
  this.spxShowValidationMessages = false;
985
1098
  this.spxSuggestions = [];
986
- this.spxType = 'text';
1099
+ this.spxType = SpxInputTypeEnum.text;
987
1100
  this.spxCapitalize = false;
988
1101
  this.spxBlur = new EventEmitter();
989
1102
  this.spxClear = new EventEmitter();
@@ -996,9 +1109,6 @@ class SpxInputComponent {
996
1109
  this.onChange = () => { };
997
1110
  this.onTouched = () => { };
998
1111
  }
999
- async spxSetFocus() {
1000
- this.passFocusToControl();
1001
- }
1002
1112
  handleBlur() {
1003
1113
  this.spxBlur.emit();
1004
1114
  }
@@ -1040,9 +1150,16 @@ class SpxInputComponent {
1040
1150
  this.spxFocused = true;
1041
1151
  }
1042
1152
  passFocusToControl() {
1153
+ switch (this.spxType) {
1154
+ case SpxInputTypeEnum.autocomplete:
1155
+ case SpxInputTypeEnum.text:
1156
+ case SpxInputTypeEnum.overlayNumber:
1157
+ this.textInput?.spxSetFocus();
1158
+ break;
1159
+ }
1043
1160
  }
1044
1161
  writeValue(value) {
1045
- this.value = this.lastValue = value == null ? '' : value;
1162
+ this.value = this.lastValue = value;
1046
1163
  }
1047
1164
  handleChangeEvent(value) {
1048
1165
  if (value !== this.lastValue) {
@@ -1060,13 +1177,14 @@ class SpxInputComponent {
1060
1177
  this.onTouched = fn;
1061
1178
  }
1062
1179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1063
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputComponent, isStandalone: true, selector: "spx-input", inputs: { spxLabel: "spxLabel", spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxRequired: "spxRequired", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxCompact: "spxCompact", spxShowClear: "spxShowClear", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxStep: "spxStep", spxSuggestions: "spxSuggestions", spxType: "spxType", spxValidators: "spxValidators", value: "value", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused" }, outputs: { spxBlur: "spxBlur", spxClear: "spxClear", spxChange: "spxChange", spxFocus: "spxFocus", spxEdit: "spxEdit", spxHelp: "spxHelp", spxSearch: "spxSearch" }, host: { listeners: { "spxChange": "handleChangeEvent($event)", "focusout": "_handleBlurEvent()" } }, providers: [
1180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputComponent, isStandalone: true, selector: "spx-input", inputs: { spxLabel: "spxLabel", spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxRequired: "spxRequired", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxCompact: "spxCompact", spxShowClear: "spxShowClear", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxStep: "spxStep", spxSuggestions: "spxSuggestions", spxType: "spxType", spxValidators: "spxValidators", value: "value", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused" }, outputs: { spxBlur: "spxBlur", spxClear: "spxClear", spxChange: "spxChange", spxFocus: "spxFocus", spxEdit: "spxEdit", spxHelp: "spxHelp", spxSearch: "spxSearch" }, host: { listeners: { "spxChange": "handleChangeEvent($event)", "focusout": "_handleBlurEvent()" } }, providers: [
1064
1181
  {
1065
1182
  provide: NG_VALUE_ACCESSOR,
1066
1183
  useExisting: SpxInputComponent,
1067
1184
  multi: true
1068
1185
  }
1069
- ], ngImport: i0, template: `<spx-input-box
1186
+ ], viewQueries: [{ propertyName: "textInput", first: true, predicate: SpxInputTextComponent, descendants: true }], ngImport: i0, template: `<spx-input-box
1187
+ [spxFocused]="this.spxFocused"
1070
1188
  [spxLabel]="this.spxLabel"
1071
1189
  [spxReadonly]="this.spxReadonly"
1072
1190
  [spxRequired]="this.spxRequired"
@@ -1075,6 +1193,7 @@ class SpxInputComponent {
1075
1193
  [spxCompact]="this.spxCompact"
1076
1194
  [spxShowClear]="this.spxShowClear"
1077
1195
  [spxShowEdit]="this.spxShowEdit"
1196
+ [spxShowLabel]="this.spxShowLabel"]
1078
1197
  [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1079
1198
  [spxShowValidationMessages]="this.spxShowValidationMessages"
1080
1199
  (spxClear)="this.handleClear()"
@@ -1082,7 +1201,7 @@ class SpxInputComponent {
1082
1201
  (spxHelp)="this.handleHelp()"
1083
1202
  (spxFocus)="this.setFocus()"
1084
1203
  (spxFocusOut)="this.setFocusOut()"
1085
- (spxSearchOutput)="this.handleSearch()">
1204
+ (spxSearch)="this.handleSearch()">
1086
1205
  <div controls>
1087
1206
  <spx-input-text
1088
1207
  *ngIf="this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password'"
@@ -1155,7 +1274,7 @@ class SpxInputComponent {
1155
1274
  <div validation-messages>
1156
1275
  <ng-content></ng-content>
1157
1276
  </div>
1158
- </spx-input-box>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxLabel", "spxRequired", "spxReadonly", "spxShowHelp", "spxCompact", "spxShowClear", "spxShowEdit", "spxShowSearch", "spxShowValidationMessages", "spxValue", "spxFocused"], outputs: ["spxClear", "spxSearchOutput", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxName", "spxReadonly", "spxValidators", "spxFocused", "spxSelectMonth", "spxSelectDay", "value", "spxLastKeyPressed", "spxSelectStep", "spxInternalValue", "spxSuggestions", "spxWasInternalUpdate"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1277
+ </spx-input-box>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxName", "spxReadonly", "spxValidators", "spxFocused", "spxSelectMonth", "spxSelectDay", "value", "spxLastKeyPressed", "spxSelectStep", "spxInternalValue", "spxSuggestions", "spxWasInternalUpdate"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1159
1278
  }
1160
1279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputComponent, decorators: [{
1161
1280
  type: Component,
@@ -1182,6 +1301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1182
1301
  }
1183
1302
  ],
1184
1303
  template: `<spx-input-box
1304
+ [spxFocused]="this.spxFocused"
1185
1305
  [spxLabel]="this.spxLabel"
1186
1306
  [spxReadonly]="this.spxReadonly"
1187
1307
  [spxRequired]="this.spxRequired"
@@ -1190,6 +1310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1190
1310
  [spxCompact]="this.spxCompact"
1191
1311
  [spxShowClear]="this.spxShowClear"
1192
1312
  [spxShowEdit]="this.spxShowEdit"
1313
+ [spxShowLabel]="this.spxShowLabel"]
1193
1314
  [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1194
1315
  [spxShowValidationMessages]="this.spxShowValidationMessages"
1195
1316
  (spxClear)="this.handleClear()"
@@ -1197,7 +1318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1197
1318
  (spxHelp)="this.handleHelp()"
1198
1319
  (spxFocus)="this.setFocus()"
1199
1320
  (spxFocusOut)="this.setFocusOut()"
1200
- (spxSearchOutput)="this.handleSearch()">
1321
+ (spxSearch)="this.handleSearch()">
1201
1322
  <div controls>
1202
1323
  <spx-input-text
1203
1324
  *ngIf="this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password'"
@@ -1298,6 +1419,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1298
1419
  type: Input
1299
1420
  }], spxShowHelp: [{
1300
1421
  type: Input
1422
+ }], spxShowLabel: [{
1423
+ type: Input
1301
1424
  }], spxCompact: [{
1302
1425
  type: Input
1303
1426
  }], spxShowClear: [{
@@ -1332,6 +1455,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1332
1455
  type: Output
1333
1456
  }], spxSearch: [{
1334
1457
  type: Output
1458
+ }], textInput: [{
1459
+ type: ViewChild,
1460
+ args: [SpxInputTextComponent]
1335
1461
  }], spxFocused: [{
1336
1462
  type: Input
1337
1463
  }], _handleBlurEvent: [{
@@ -1343,5 +1469,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1343
1469
  * Generated bundle index. Do not edit.
1344
1470
  */
1345
1471
 
1346
- export { SpxInputBoxComponent, SpxInputComponent, SpxInputTextComponent };
1472
+ export { SpxInputBoxComponent, SpxInputComponent, SpxInputTextComponent, SpxInputTypeEnum };
1347
1473
  //# sourceMappingURL=softpak-components-spx-inputs.mjs.map