@softpak/components 18.0.0 → 18.2.0-beta.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 (67) hide show
  1. package/esm2022/spx-alert/spx-alert.component.mjs +53 -43
  2. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +57 -40
  3. package/esm2022/spx-app-update/spx-app-update.component.mjs +61 -55
  4. package/esm2022/spx-card/spx-card-item.component.mjs +37 -31
  5. package/esm2022/spx-card/spx-card-line.component.mjs +63 -40
  6. package/esm2022/spx-card/spx-card.component.mjs +52 -49
  7. package/esm2022/spx-change-details/spx-change-details.component.mjs +3 -5
  8. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +3 -6
  9. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +4 -7
  10. package/esm2022/spx-form-section/spx-form-section.component.mjs +19 -14
  11. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +3 -5
  12. package/esm2022/spx-form-view/spx-form-view.component.mjs +140 -132
  13. package/esm2022/spx-inputs/spx-dropdown.component.mjs +35 -36
  14. package/esm2022/spx-inputs/spx-input-box.component.mjs +143 -125
  15. package/esm2022/spx-inputs/spx-input-date.component.mjs +86 -83
  16. package/esm2022/spx-inputs/spx-input-float.component.mjs +2 -5
  17. package/esm2022/spx-inputs/spx-input-radio.component.mjs +25 -25
  18. package/esm2022/spx-inputs/spx-input-text.component.mjs +65 -61
  19. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +73 -60
  20. package/esm2022/spx-inputs/spx-input-time.component.mjs +2 -5
  21. package/esm2022/spx-inputs/spx-input.component.mjs +223 -213
  22. package/esm2022/spx-navigation/spx-home-tile.component.mjs +40 -37
  23. package/esm2022/spx-navigation/spx-navigation.component.mjs +6 -10
  24. package/esm2022/spx-number-check/spx-number-check.component.mjs +47 -41
  25. package/esm2022/spx-patch/spx-patch.component.mjs +27 -21
  26. package/esm2022/spx-spinner/spx-spinner.component.mjs +143 -142
  27. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +6 -9
  28. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +91 -96
  29. package/esm2022/spx-update/src/spx-update-info.component.mjs +3 -5
  30. package/esm2022/spx-validation/spx-validate-control.component.mjs +4 -7
  31. package/fesm2022/softpak-components-spx-alert.mjs +52 -42
  32. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-app-expiry.mjs +56 -39
  34. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  35. package/fesm2022/softpak-components-spx-app-update.mjs +60 -54
  36. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-card.mjs +148 -115
  38. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  39. package/fesm2022/softpak-components-spx-change-details.mjs +2 -4
  40. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-channel-selection.mjs +2 -5
  42. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  43. package/fesm2022/softpak-components-spx-check-digit.mjs +3 -6
  44. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-form-section.mjs +18 -13
  46. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  47. package/fesm2022/softpak-components-spx-form-view.mjs +141 -134
  48. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-inputs.mjs +645 -595
  50. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-navigation.mjs +44 -44
  52. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  53. package/fesm2022/softpak-components-spx-number-check.mjs +46 -40
  54. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-patch.mjs +26 -20
  56. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  57. package/fesm2022/softpak-components-spx-spinner.mjs +142 -141
  58. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  59. package/fesm2022/softpak-components-spx-stock-info.mjs +5 -8
  60. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  61. package/fesm2022/softpak-components-spx-toaster.mjs +90 -95
  62. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  63. package/fesm2022/softpak-components-spx-update.mjs +2 -4
  64. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  65. package/fesm2022/softpak-components-spx-validation.mjs +3 -6
  66. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  67. package/package.json +31 -31
@@ -1,4 +1,3 @@
1
- import { NgIf, NgFor } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
2
  import { EventEmitter, Component, Input, Output, HostListener, ViewChild } from '@angular/core';
4
3
  import { SpxButtonComponent } from '@softpak/components/spx-button';
@@ -72,71 +71,81 @@ class SpxInputBoxComponent {
72
71
  }
73
72
  }
74
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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"
76
- [class.rounded-none]="this.spxShowValidationMessages"
77
- [class.rounded-t]="this.spxShowValidationMessages"
78
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
79
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
80
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
81
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
82
- [class.bg-white]="!this.spxReadonly"
83
- [class.bg-gray-300]="this.spxReadonly"
84
- [class.cursor-not-allowed]="this.spxReadonly">
85
- <div class="flex-auto p-3"
86
- [class.p-0]="this.spxCompact"
87
- [class.flex]="this.spxCompact"
88
- [class.items-center]="this.spxCompact">
89
- <div *ngIf="this.spxShowLabel" class="font-bold text-sm mb-1 text-gray-800"
90
- [class.mb-0]="this.spxCompact"
91
- [class.px-3]="this.spxCompact">
92
- {{this.spxLabel}} <span *ngIf="spxRequired" class="text-red-800">*</span>
93
- </div>
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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"
75
+ [class.rounded-none]="this.spxShowValidationMessages"
76
+ [class.rounded-t]="this.spxShowValidationMessages"
77
+ [class.outline-none]="this.spxFocused && !this.spxReadonly"
78
+ [class.ring-2]="this.spxFocused && !this.spxReadonly"
79
+ [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
80
+ [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
81
+ [class.bg-white]="!this.spxReadonly"
82
+ [class.bg-gray-300]="this.spxReadonly"
83
+ [class.cursor-not-allowed]="this.spxReadonly">
84
+ <div class="flex-auto p-3"
85
+ [class.p-0]="this.spxCompact"
86
+ [class.flex]="this.spxCompact"
87
+ [class.items-center]="this.spxCompact">
88
+ @if (this.spxShowLabel) {
89
+ <div class="font-bold text-sm mb-1 text-gray-800"
90
+ [class.mb-0]="this.spxCompact"
91
+ [class.px-3]="this.spxCompact">
92
+ {{this.spxLabel}} @if (spxRequired) {
93
+ <span class="text-red-800">*</span>
94
+ }
95
+ </div>
96
+ }
94
97
  <ng-content select="[controls]"></ng-content>
95
98
  </div>
96
99
  <div class="flex flex-none gap-1 p-1">
97
- <spx-button
98
- *ngIf="this.spxShowEdit"
99
- (spxClick)="onEdit()"
100
- [spxFullHeight]="true"
101
- [spxSize]="'xl'"
102
- [spxType]="'button'">
103
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
104
- </spx-button>
105
- <spx-button
106
- *ngIf="this.spxShowHelp"
107
- (spxClick)="onHelp()"
108
- [spxFullHeight]="true"
109
- [spxDisabled]="this.spxReadonly"
110
- [spxSize]="'xl'"
111
- [spxTabIndex]="-1"
112
- [spxType]="'button'">
113
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
114
- </spx-button>
115
- <spx-button
116
- *ngIf="this.spxShowSearch"
117
- (spxClick)="onSearch()"
118
- [spxFullHeight]="true"
119
- [spxDisabled]="this.spxReadonly"
120
- [spxSize]="'xl'"
121
- [spxTabIndex]="-1"
122
- [spxType]="'button'">
123
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
124
- </spx-button>
125
- <spx-button
126
- *ngIf="this.spxShowClear"
127
- (spxClick)="onClear()"
128
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
129
- [spxFullHeight]="true"
130
- [spxSize]="'xl'"
131
- [spxTabIndex]="-1"
132
- [spxType]="'button'">
133
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
134
- </spx-button>
100
+ @if (this.spxShowEdit) {
101
+ <spx-button
102
+ (spxClick)="onEdit()"
103
+ [spxFullHeight]="true"
104
+ [spxSize]="'xl'"
105
+ [spxType]="'button'">
106
+ <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
107
+ </spx-button>
108
+ }
109
+ @if (this.spxShowHelp) {
110
+ <spx-button
111
+ (spxClick)="onHelp()"
112
+ [spxFullHeight]="true"
113
+ [spxDisabled]="this.spxReadonly"
114
+ [spxSize]="'xl'"
115
+ [spxTabIndex]="-1"
116
+ [spxType]="'button'">
117
+ <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
118
+ </spx-button>
119
+ }
120
+ @if (this.spxShowSearch) {
121
+ <spx-button
122
+ (spxClick)="onSearch()"
123
+ [spxFullHeight]="true"
124
+ [spxDisabled]="this.spxReadonly"
125
+ [spxSize]="'xl'"
126
+ [spxTabIndex]="-1"
127
+ [spxType]="'button'">
128
+ <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
129
+ </spx-button>
130
+ }
131
+ @if (this.spxShowClear) {
132
+ <spx-button
133
+ (spxClick)="onClear()"
134
+ [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
135
+ [spxFullHeight]="true"
136
+ [spxSize]="'xl'"
137
+ [spxTabIndex]="-1"
138
+ [spxType]="'button'">
139
+ <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
140
+ </spx-button>
141
+ }
135
142
  </div>
136
- </div>
137
- <div *ngIf="this.spxShowValidationMessages" class="bg-red-600 rounded-b text-white p-3">
138
- <ng-content select="[validation-messages]"></ng-content>
139
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
143
+ </div>
144
+ @if (this.spxShowValidationMessages) {
145
+ <div class="bg-red-600 rounded-b text-white p-3">
146
+ <ng-content select="[validation-messages]"></ng-content>
147
+ </div>
148
+ }`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
140
149
  }
141
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
142
151
  type: Component,
@@ -144,75 +153,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
144
153
  selector: 'spx-input-box',
145
154
  standalone: true,
146
155
  imports: [
147
- NgIf,
148
156
  SpxButtonComponent,
149
- FontAwesomeModule,
157
+ FontAwesomeModule
150
158
  ],
151
159
  template: `<div class="flex rounded w-full gap-3"
152
- [class.rounded-none]="this.spxShowValidationMessages"
153
- [class.rounded-t]="this.spxShowValidationMessages"
154
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
155
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
156
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
157
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
158
- [class.bg-white]="!this.spxReadonly"
159
- [class.bg-gray-300]="this.spxReadonly"
160
- [class.cursor-not-allowed]="this.spxReadonly">
161
- <div class="flex-auto p-3"
162
- [class.p-0]="this.spxCompact"
163
- [class.flex]="this.spxCompact"
164
- [class.items-center]="this.spxCompact">
165
- <div *ngIf="this.spxShowLabel" class="font-bold text-sm mb-1 text-gray-800"
166
- [class.mb-0]="this.spxCompact"
167
- [class.px-3]="this.spxCompact">
168
- {{this.spxLabel}} <span *ngIf="spxRequired" class="text-red-800">*</span>
169
- </div>
160
+ [class.rounded-none]="this.spxShowValidationMessages"
161
+ [class.rounded-t]="this.spxShowValidationMessages"
162
+ [class.outline-none]="this.spxFocused && !this.spxReadonly"
163
+ [class.ring-2]="this.spxFocused && !this.spxReadonly"
164
+ [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
165
+ [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
166
+ [class.bg-white]="!this.spxReadonly"
167
+ [class.bg-gray-300]="this.spxReadonly"
168
+ [class.cursor-not-allowed]="this.spxReadonly">
169
+ <div class="flex-auto p-3"
170
+ [class.p-0]="this.spxCompact"
171
+ [class.flex]="this.spxCompact"
172
+ [class.items-center]="this.spxCompact">
173
+ @if (this.spxShowLabel) {
174
+ <div class="font-bold text-sm mb-1 text-gray-800"
175
+ [class.mb-0]="this.spxCompact"
176
+ [class.px-3]="this.spxCompact">
177
+ {{this.spxLabel}} @if (spxRequired) {
178
+ <span class="text-red-800">*</span>
179
+ }
180
+ </div>
181
+ }
170
182
  <ng-content select="[controls]"></ng-content>
171
183
  </div>
172
184
  <div class="flex flex-none gap-1 p-1">
173
- <spx-button
174
- *ngIf="this.spxShowEdit"
175
- (spxClick)="onEdit()"
176
- [spxFullHeight]="true"
177
- [spxSize]="'xl'"
178
- [spxType]="'button'">
179
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
180
- </spx-button>
181
- <spx-button
182
- *ngIf="this.spxShowHelp"
183
- (spxClick)="onHelp()"
184
- [spxFullHeight]="true"
185
- [spxDisabled]="this.spxReadonly"
186
- [spxSize]="'xl'"
187
- [spxTabIndex]="-1"
188
- [spxType]="'button'">
189
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
190
- </spx-button>
191
- <spx-button
192
- *ngIf="this.spxShowSearch"
193
- (spxClick)="onSearch()"
194
- [spxFullHeight]="true"
195
- [spxDisabled]="this.spxReadonly"
196
- [spxSize]="'xl'"
197
- [spxTabIndex]="-1"
198
- [spxType]="'button'">
199
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
200
- </spx-button>
201
- <spx-button
202
- *ngIf="this.spxShowClear"
203
- (spxClick)="onClear()"
204
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
205
- [spxFullHeight]="true"
206
- [spxSize]="'xl'"
207
- [spxTabIndex]="-1"
208
- [spxType]="'button'">
209
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
210
- </spx-button>
185
+ @if (this.spxShowEdit) {
186
+ <spx-button
187
+ (spxClick)="onEdit()"
188
+ [spxFullHeight]="true"
189
+ [spxSize]="'xl'"
190
+ [spxType]="'button'">
191
+ <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
192
+ </spx-button>
193
+ }
194
+ @if (this.spxShowHelp) {
195
+ <spx-button
196
+ (spxClick)="onHelp()"
197
+ [spxFullHeight]="true"
198
+ [spxDisabled]="this.spxReadonly"
199
+ [spxSize]="'xl'"
200
+ [spxTabIndex]="-1"
201
+ [spxType]="'button'">
202
+ <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
203
+ </spx-button>
204
+ }
205
+ @if (this.spxShowSearch) {
206
+ <spx-button
207
+ (spxClick)="onSearch()"
208
+ [spxFullHeight]="true"
209
+ [spxDisabled]="this.spxReadonly"
210
+ [spxSize]="'xl'"
211
+ [spxTabIndex]="-1"
212
+ [spxType]="'button'">
213
+ <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
214
+ </spx-button>
215
+ }
216
+ @if (this.spxShowClear) {
217
+ <spx-button
218
+ (spxClick)="onClear()"
219
+ [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
220
+ [spxFullHeight]="true"
221
+ [spxSize]="'xl'"
222
+ [spxTabIndex]="-1"
223
+ [spxType]="'button'">
224
+ <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
225
+ </spx-button>
226
+ }
211
227
  </div>
212
- </div>
213
- <div *ngIf="this.spxShowValidationMessages" class="bg-red-600 rounded-b text-white p-3">
214
- <ng-content select="[validation-messages]"></ng-content>
215
- </div>`,
228
+ </div>
229
+ @if (this.spxShowValidationMessages) {
230
+ <div class="bg-red-600 rounded-b text-white p-3">
231
+ <ng-content select="[validation-messages]"></ng-content>
232
+ </div>
233
+ }`,
216
234
  }]
217
235
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
218
236
  type: Input
@@ -300,22 +318,23 @@ class SpxDropdownComponent {
300
318
  this.spxSelect.emit(valuePair);
301
319
  }
302
320
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxDropdownComponent, isStandalone: true, selector: "spx-dropdown", inputs: { spxSuggestions: "spxSuggestions" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<div class="relative text-black">
304
- <div
305
- class="absolute bg-gray-100 left-0 right-0 z-20">
306
- <button
307
- *ngFor="let valuePair of this.spxSuggestions; let i = index"
308
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
309
- [class.bg-gray-100]="i === this.focusPosition"
310
- [class.bg-white]="i !== this.focusPosition"
311
- (click)="this.handleSuggestionClick(valuePair)"
312
- [attr.tabindex]="-1"
313
- [attr.type]="'button'">
314
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
315
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
316
- </button>
317
- </div>
318
- </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"] }] }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxDropdownComponent, isStandalone: true, selector: "spx-dropdown", inputs: { spxSuggestions: "spxSuggestions" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<div class="relative text-black">
322
+ <div
323
+ class="absolute bg-gray-100 left-0 right-0 z-20">
324
+ @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
325
+ <button
326
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
327
+ [class.bg-gray-100]="i === this.focusPosition"
328
+ [class.bg-white]="i !== this.focusPosition"
329
+ (click)="this.handleSuggestionClick(valuePair)"
330
+ [attr.tabindex]="-1"
331
+ [attr.type]="'button'">
332
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
333
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
334
+ </button>
335
+ }
336
+ </div>
337
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
319
338
  }
320
339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, decorators: [{
321
340
  type: Component,
@@ -323,26 +342,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
323
342
  selector: 'spx-dropdown',
324
343
  standalone: true,
325
344
  imports: [
326
- NgIf,
327
- NgFor,
328
- SpxButtonComponent,
345
+ SpxButtonComponent
329
346
  ],
330
347
  template: `<div class="relative text-black">
331
- <div
332
- class="absolute bg-gray-100 left-0 right-0 z-20">
333
- <button
334
- *ngFor="let valuePair of this.spxSuggestions; let i = index"
335
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
336
- [class.bg-gray-100]="i === this.focusPosition"
337
- [class.bg-white]="i !== this.focusPosition"
338
- (click)="this.handleSuggestionClick(valuePair)"
339
- [attr.tabindex]="-1"
340
- [attr.type]="'button'">
341
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
342
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
343
- </button>
344
- </div>
345
- </div>`,
348
+ <div
349
+ class="absolute bg-gray-100 left-0 right-0 z-20">
350
+ @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
351
+ <button
352
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
353
+ [class.bg-gray-100]="i === this.focusPosition"
354
+ [class.bg-white]="i !== this.focusPosition"
355
+ (click)="this.handleSuggestionClick(valuePair)"
356
+ [attr.tabindex]="-1"
357
+ [attr.type]="'button'">
358
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
359
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
360
+ </button>
361
+ }
362
+ </div>
363
+ </div>`,
346
364
  }]
347
365
  }], propDecorators: { spxSuggestions: [{
348
366
  type: Input
@@ -396,35 +414,38 @@ class SpxInputTextComponent {
396
414
  this.spxFocused = true;
397
415
  }
398
416
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxAutocomplete: "spxAutocomplete", 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">
400
- <input
401
- #input
402
- class="font-bold text-lg w-full outline-none"
403
- autocomplete="off"
404
- spellcheck="false"
405
- [class.bg-white]="!this.spxReadonly"
406
- [class.bg-gray-300]="this.spxReadonly"
407
- [class.cursor-not-allowed]="this.spxReadonly"
408
- [class.uppercase]="this.spxCapitalize"
409
- [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
410
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
411
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
412
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
413
- [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
414
- [attr.name]="this.spxName"
415
- [attr.type]="this.spxType"
416
- [value]="this.value?.description ? this.value?.description : this.value?.value"
417
- (blur)="this.handleBlur()"
418
- (keyUp)="this.handleKeyUp()"
419
- (focus)="this.handleFocus()"
420
- (input)="this.handleDescriptionInput($event)"
421
- />
422
- <span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
423
- <spx-dropdown
424
- *ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
425
- [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
426
- </spx-dropdown>
427
- </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"] }] }); }
417
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxAutocomplete: "spxAutocomplete", 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">
418
+ <input
419
+ #input
420
+ class="font-bold text-lg w-full outline-none"
421
+ autocomplete="off"
422
+ spellcheck="false"
423
+ [class.bg-white]="!this.spxReadonly"
424
+ [class.bg-gray-300]="this.spxReadonly"
425
+ [class.cursor-not-allowed]="this.spxReadonly"
426
+ [class.uppercase]="this.spxCapitalize"
427
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
428
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
429
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
430
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
431
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
432
+ [attr.name]="this.spxName"
433
+ [attr.type]="this.spxType"
434
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
435
+ (blur)="this.handleBlur()"
436
+ (keyUp)="this.handleKeyUp()"
437
+ (focus)="this.handleFocus()"
438
+ (input)="this.handleDescriptionInput($event)"
439
+ />
440
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
441
+ <span>{{this.value?.value}}</span>
442
+ }
443
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
444
+ <spx-dropdown
445
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
446
+ </spx-dropdown>
447
+ }
448
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
428
449
  }
429
450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, decorators: [{
430
451
  type: Component,
@@ -432,38 +453,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
432
453
  selector: 'spx-input-text',
433
454
  standalone: true,
434
455
  imports: [
435
- NgIf,
436
- SpxDropdownComponent,
456
+ SpxDropdownComponent
437
457
  ],
438
458
  template: `<div class="relative text-black">
439
- <input
440
- #input
441
- class="font-bold text-lg w-full outline-none"
442
- autocomplete="off"
443
- spellcheck="false"
444
- [class.bg-white]="!this.spxReadonly"
445
- [class.bg-gray-300]="this.spxReadonly"
446
- [class.cursor-not-allowed]="this.spxReadonly"
447
- [class.uppercase]="this.spxCapitalize"
448
- [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
449
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
450
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
451
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
452
- [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
453
- [attr.name]="this.spxName"
454
- [attr.type]="this.spxType"
455
- [value]="this.value?.description ? this.value?.description : this.value?.value"
456
- (blur)="this.handleBlur()"
457
- (keyUp)="this.handleKeyUp()"
458
- (focus)="this.handleFocus()"
459
- (input)="this.handleDescriptionInput($event)"
460
- />
461
- <span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
462
- <spx-dropdown
463
- *ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
464
- [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
465
- </spx-dropdown>
466
- </div>`,
459
+ <input
460
+ #input
461
+ class="font-bold text-lg w-full outline-none"
462
+ autocomplete="off"
463
+ spellcheck="false"
464
+ [class.bg-white]="!this.spxReadonly"
465
+ [class.bg-gray-300]="this.spxReadonly"
466
+ [class.cursor-not-allowed]="this.spxReadonly"
467
+ [class.uppercase]="this.spxCapitalize"
468
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
469
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
470
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
471
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
472
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
473
+ [attr.name]="this.spxName"
474
+ [attr.type]="this.spxType"
475
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
476
+ (blur)="this.handleBlur()"
477
+ (keyUp)="this.handleKeyUp()"
478
+ (focus)="this.handleFocus()"
479
+ (input)="this.handleDescriptionInput($event)"
480
+ />
481
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
482
+ <span>{{this.value?.value}}</span>
483
+ }
484
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
485
+ <spx-dropdown
486
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
487
+ </spx-dropdown>
488
+ }
489
+ </div>`,
467
490
  }]
468
491
  }], propDecorators: { spxName: [{
469
492
  type: Input
@@ -589,7 +612,7 @@ class SpxInputDateComponent {
589
612
  }
590
613
  afterMonthChange() {
591
614
  if (this.spxInternalValue.months.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
592
- // this.elDay!.focus();
615
+ this.elDay?.focus();
593
616
  }
594
617
  this.updateValue();
595
618
  }
@@ -599,7 +622,7 @@ class SpxInputDateComponent {
599
622
  }
600
623
  afterYearChange() {
601
624
  if (this.spxInternalValue.years.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
602
- // this.elMonth!.focus();
625
+ this.elMonth?.focus();
603
626
  }
604
627
  this.updateValue();
605
628
  }
@@ -653,6 +676,7 @@ class SpxInputDateComponent {
653
676
  this.spxWasInternalUpdate = true;
654
677
  }
655
678
  suggestYears() {
679
+ console.log('suggest years');
656
680
  this.spxSuggestions.years = [];
657
681
  for (let year = DateTime.fromISO(this.spxMin).year; year <= DateTime.fromISO(this.spxMax).year; year++) {
658
682
  this.spxSuggestions.years.push({
@@ -660,102 +684,106 @@ class SpxInputDateComponent {
660
684
  value: year,
661
685
  });
662
686
  }
687
+ console.log('suggest years', this.spxSuggestions);
663
688
  }
664
689
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
665
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
666
- <input
667
- class='spx-input-date__input'
668
- [attr.value]="this.spxInternalValue.years"
669
- (focus)="this.handleFocus('years')"
670
- (input)="this.handleYearInput($event)"
671
- (keyDown)="this.handleKeyDown($event)"
672
- [attr.type]="'number'"
673
- [attr.min]="1900"
674
- [attr.max]="2100"
675
- [attr.step]="1"
676
- />
677
- <div class='spx-input-date__control-label'>Year</div>
690
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
678
691
  <input
679
- *ngIf="this.spxSelectMonth"
680
692
  class='spx-input-date__input'
681
- [attr.value]="this.spxInternalValue.months"
682
- (focus)="this.handleFocus('months')"
683
- (input)="this.handleMonthInput($event)"
693
+ [attr.value]="this.spxInternalValue.years"
694
+ (focus)="this.handleFocus('years')"
695
+ (input)="this.handleYearInput($event)"
684
696
  (keyDown)="this.handleKeyDown($event)"
685
697
  [attr.type]="'number'"
686
- [attr.min]="1"
687
- [attr.max]="12"
688
- [attr.step]="1" />
689
- <div class='spx-input-date__control-label'>Month</div>
690
- <input
691
- *ngIf="this.spxSelectDay"
692
- class='spx-input-date__input'
693
- [attr.value]="this.spxInternalValue.days"
694
- (focus)="this.handleFocus('days')"
695
- (input)="this.handleDayInput($event)"
696
- (keyDown)="this.handleKeyDown($event)"
697
- [attr.type]="'number'"
698
- [attr.min]="1"
699
- [attr.max]="31"
700
- [attr.step]="1" />
698
+ [attr.min]="1900"
699
+ [attr.max]="2100"
700
+ [attr.step]="1"
701
+ />
702
+ <div class='spx-input-date__control-label'>Year</div>
703
+ @if (this.spxSelectMonth) {
704
+ <input
705
+ class='spx-input-date__input'
706
+ [attr.value]="this.spxInternalValue.months"
707
+ (focus)="this.handleFocus('months')"
708
+ (input)="this.handleMonthInput($event)"
709
+ (keyDown)="this.handleKeyDown($event)"
710
+ [attr.type]="'number'"
711
+ [attr.min]="1"
712
+ [attr.max]="12"
713
+ [attr.step]="1" />
714
+ }
715
+ <div class='spx-input-date__control-label'>Month</div>
716
+ @if (this.spxSelectDay) {
717
+ <input
718
+ class='spx-input-date__input'
719
+ [attr.value]="this.spxInternalValue.days"
720
+ (focus)="this.handleFocus('days')"
721
+ (input)="this.handleDayInput($event)"
722
+ (keyDown)="this.handleKeyDown($event)"
723
+ [attr.type]="'number'"
724
+ [attr.min]="1"
725
+ [attr.max]="31"
726
+ [attr.step]="1" />
701
727
  <div class='spx-input-date__control-label'>Days</div>
702
- </div>
703
- <div class='spx-input-date__suggestions'>
704
- <spx-suggestion
705
- *ngFor="let valuePair of spxSuggestions[spxSelectStep]"
706
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
707
- </div>`, isInline: true, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], 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: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
728
+ }
729
+ </div>
730
+ <div class='spx-input-date__suggestions'>
731
+ @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
732
+ <spx-suggestion
733
+ (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
734
+ }
735
+ </div>`, isInline: true, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
708
736
  }
709
737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
710
738
  type: Component,
711
739
  args: [{ selector: 'spx-input-date', standalone: true, imports: [
712
- NgIf,
713
- NgFor,
714
- SpxButtonComponent,
715
740
  SpxSuggestionComponent
716
741
  ], template: `<div class='spx-input-date__controls'>
717
- <input
718
- class='spx-input-date__input'
719
- [attr.value]="this.spxInternalValue.years"
720
- (focus)="this.handleFocus('years')"
721
- (input)="this.handleYearInput($event)"
722
- (keyDown)="this.handleKeyDown($event)"
723
- [attr.type]="'number'"
724
- [attr.min]="1900"
725
- [attr.max]="2100"
726
- [attr.step]="1"
727
- />
728
- <div class='spx-input-date__control-label'>Year</div>
729
- <input
730
- *ngIf="this.spxSelectMonth"
731
- class='spx-input-date__input'
732
- [attr.value]="this.spxInternalValue.months"
733
- (focus)="this.handleFocus('months')"
734
- (input)="this.handleMonthInput($event)"
735
- (keyDown)="this.handleKeyDown($event)"
736
- [attr.type]="'number'"
737
- [attr.min]="1"
738
- [attr.max]="12"
739
- [attr.step]="1" />
740
- <div class='spx-input-date__control-label'>Month</div>
741
742
  <input
742
- *ngIf="this.spxSelectDay"
743
743
  class='spx-input-date__input'
744
- [attr.value]="this.spxInternalValue.days"
745
- (focus)="this.handleFocus('days')"
746
- (input)="this.handleDayInput($event)"
744
+ [attr.value]="this.spxInternalValue.years"
745
+ (focus)="this.handleFocus('years')"
746
+ (input)="this.handleYearInput($event)"
747
747
  (keyDown)="this.handleKeyDown($event)"
748
748
  [attr.type]="'number'"
749
- [attr.min]="1"
750
- [attr.max]="31"
751
- [attr.step]="1" />
749
+ [attr.min]="1900"
750
+ [attr.max]="2100"
751
+ [attr.step]="1"
752
+ />
753
+ <div class='spx-input-date__control-label'>Year</div>
754
+ @if (this.spxSelectMonth) {
755
+ <input
756
+ class='spx-input-date__input'
757
+ [attr.value]="this.spxInternalValue.months"
758
+ (focus)="this.handleFocus('months')"
759
+ (input)="this.handleMonthInput($event)"
760
+ (keyDown)="this.handleKeyDown($event)"
761
+ [attr.type]="'number'"
762
+ [attr.min]="1"
763
+ [attr.max]="12"
764
+ [attr.step]="1" />
765
+ }
766
+ <div class='spx-input-date__control-label'>Month</div>
767
+ @if (this.spxSelectDay) {
768
+ <input
769
+ class='spx-input-date__input'
770
+ [attr.value]="this.spxInternalValue.days"
771
+ (focus)="this.handleFocus('days')"
772
+ (input)="this.handleDayInput($event)"
773
+ (keyDown)="this.handleKeyDown($event)"
774
+ [attr.type]="'number'"
775
+ [attr.min]="1"
776
+ [attr.max]="31"
777
+ [attr.step]="1" />
752
778
  <div class='spx-input-date__control-label'>Days</div>
753
- </div>
754
- <div class='spx-input-date__suggestions'>
755
- <spx-suggestion
756
- *ngFor="let valuePair of spxSuggestions[spxSelectStep]"
757
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
758
- </div>`, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"] }]
779
+ }
780
+ </div>
781
+ <div class='spx-input-date__suggestions'>
782
+ @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
783
+ <spx-suggestion
784
+ (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
785
+ }
786
+ </div>`, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"] }]
759
787
  }], ctorParameters: () => [], propDecorators: { spxMax: [{
760
788
  type: Input
761
789
  }], spxMin: [{
@@ -889,9 +917,7 @@ class SpxInputFloatComponent {
889
917
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
890
918
  type: Component,
891
919
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
892
- NgIf,
893
- NgFor,
894
- SpxButtonComponent,
920
+ SpxButtonComponent
895
921
  ], template: `<div class="flex items-end">
896
922
  <input
897
923
  #firstInputRef
@@ -1100,17 +1126,18 @@ class SpxInputRadioComponent {
1100
1126
  });
1101
1127
  }
1102
1128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputRadioComponent, isStandalone: true, selector: "spx-input-radio", inputs: { spxName: "spxName", spxValidators: "spxValidators", spxFocused: "spxFocused", spxShowLabel: "spxShowLabel", spxReadonly: "spxReadonly", spxSuggestions: "spxSuggestions", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, usesOnChanges: true, ngImport: i0, template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1104
- <spx-suggestion
1105
- *ngFor="let valuePair of this.cachedSuggestions; let i = index"
1106
- [spxDisabled]="this.spxReadonly"
1107
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1108
- [spxSelected]="this.value?.value === valuePair?.value"
1109
- [spxTabbable]="this.focusPosition === i"
1110
- (click)="this.handleSuggestionClick($event, valuePair)">
1111
- {{valuePair?.description}}
1112
- </spx-suggestion>
1113
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
1129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputRadioComponent, isStandalone: true, selector: "spx-input-radio", inputs: { spxName: "spxName", spxValidators: "spxValidators", spxFocused: "spxFocused", spxShowLabel: "spxShowLabel", spxReadonly: "spxReadonly", spxSuggestions: "spxSuggestions", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, usesOnChanges: true, ngImport: i0, template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1130
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1131
+ <spx-suggestion
1132
+ [spxDisabled]="this.spxReadonly"
1133
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
1134
+ [spxSelected]="this.value?.value === valuePair?.value"
1135
+ [spxTabbable]="this.focusPosition === i"
1136
+ (click)="this.handleSuggestionClick($event, valuePair)">
1137
+ {{valuePair?.description}}
1138
+ </spx-suggestion>
1139
+ }
1140
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
1114
1141
  }
1115
1142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
1116
1143
  type: Component,
@@ -1118,20 +1145,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1118
1145
  selector: 'spx-input-radio',
1119
1146
  standalone: true,
1120
1147
  imports: [
1121
- NgFor,
1122
- SpxSuggestionComponent,
1148
+ SpxSuggestionComponent
1123
1149
  ],
1124
1150
  template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1125
- <spx-suggestion
1126
- *ngFor="let valuePair of this.cachedSuggestions; let i = index"
1127
- [spxDisabled]="this.spxReadonly"
1128
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1129
- [spxSelected]="this.value?.value === valuePair?.value"
1130
- [spxTabbable]="this.focusPosition === i"
1131
- (click)="this.handleSuggestionClick($event, valuePair)">
1132
- {{valuePair?.description}}
1133
- </spx-suggestion>
1134
- </div>`,
1151
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1152
+ <spx-suggestion
1153
+ [spxDisabled]="this.spxReadonly"
1154
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
1155
+ [spxSelected]="this.value?.value === valuePair?.value"
1156
+ [spxTabbable]="this.focusPosition === i"
1157
+ (click)="this.handleSuggestionClick($event, valuePair)">
1158
+ {{valuePair?.description}}
1159
+ </spx-suggestion>
1160
+ }
1161
+ </div>`,
1135
1162
  }]
1136
1163
  }], propDecorators: { spxName: [{
1137
1164
  type: Input
@@ -1190,37 +1217,45 @@ class SpxInputTimeModalComponent {
1190
1217
  this.modalController.dismiss(value);
1191
1218
  }
1192
1219
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1$1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
1193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
1194
- <ion-toolbar>
1195
- <ion-title>Select {{view}}</ion-title>
1196
- <ion-buttons slot="end">
1197
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1198
- <fa-icon [icon]="faXmark"></fa-icon>
1199
- </spx-button>
1200
- </ion-buttons>
1201
- </ion-toolbar>
1202
- </ion-header>
1203
- <ion-content class="ion-padding bg-white">
1204
- <!-- Uren -->
1205
- <div class="custom-bg grid grid-cols-1 gap-3">
1206
- <div *ngIf="view === 'hours'" class="flex-wrap gap-2">
1207
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1208
- <div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
1209
- {{ hour }}
1220
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
1221
+ <ion-toolbar>
1222
+ <ion-title>Select {{view}}</ion-title>
1223
+ <ion-buttons slot="end">
1224
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1225
+ <fa-icon [icon]="faXmark"></fa-icon>
1226
+ </spx-button>
1227
+ </ion-buttons>
1228
+ </ion-toolbar>
1229
+ </ion-header>
1230
+ <ion-content class="ion-padding bg-white">
1231
+ <!-- Uren -->
1232
+ <div class="custom-bg grid grid-cols-1 gap-3">
1233
+ @if (view === 'hours') {
1234
+ <div class="flex-wrap gap-2">
1235
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1236
+ @for (hour of hourOptions; track hour) {
1237
+ <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
1238
+ {{ hour }}
1239
+ </div>
1240
+ }
1241
+ </div>
1210
1242
  </div>
1211
- </div>
1212
- </div>
1213
- <!-- Minuten -->
1214
- <div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
1215
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1216
- <div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
1217
- {{ minute }}
1243
+ }
1244
+ <!-- Minuten -->
1245
+ @if (view === 'minutes') {
1246
+ <div class="grid grid-cols-1 gap-3">
1247
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1248
+ @for (minute of minuteOptions; track minute) {
1249
+ <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
1250
+ {{ minute }}
1251
+ </div>
1252
+ }
1253
+ </div>
1218
1254
  </div>
1219
- </div>
1255
+ }
1220
1256
  </div>
1221
- </div>
1222
- </ion-content>
1223
- `, 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: "ngmodule", type: IonicModule }, { kind: "component", type: i1$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
1257
+ </ion-content>
1258
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
1224
1259
  }
1225
1260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
1226
1261
  type: Component,
@@ -1228,44 +1263,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1228
1263
  selector: 'spx-input-time-modal',
1229
1264
  standalone: true,
1230
1265
  imports: [
1231
- NgIf,
1232
- NgFor,
1233
1266
  IonicModule,
1234
1267
  SpxButtonComponent,
1235
1268
  SpxDropdownComponent,
1236
- FontAwesomeModule,
1269
+ FontAwesomeModule
1237
1270
  ],
1238
1271
  template: `<ion-header>
1239
- <ion-toolbar>
1240
- <ion-title>Select {{view}}</ion-title>
1241
- <ion-buttons slot="end">
1242
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1243
- <fa-icon [icon]="faXmark"></fa-icon>
1244
- </spx-button>
1245
- </ion-buttons>
1246
- </ion-toolbar>
1247
- </ion-header>
1248
- <ion-content class="ion-padding bg-white">
1249
- <!-- Uren -->
1250
- <div class="custom-bg grid grid-cols-1 gap-3">
1251
- <div *ngIf="view === 'hours'" class="flex-wrap gap-2">
1252
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1253
- <div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
1254
- {{ hour }}
1272
+ <ion-toolbar>
1273
+ <ion-title>Select {{view}}</ion-title>
1274
+ <ion-buttons slot="end">
1275
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1276
+ <fa-icon [icon]="faXmark"></fa-icon>
1277
+ </spx-button>
1278
+ </ion-buttons>
1279
+ </ion-toolbar>
1280
+ </ion-header>
1281
+ <ion-content class="ion-padding bg-white">
1282
+ <!-- Uren -->
1283
+ <div class="custom-bg grid grid-cols-1 gap-3">
1284
+ @if (view === 'hours') {
1285
+ <div class="flex-wrap gap-2">
1286
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1287
+ @for (hour of hourOptions; track hour) {
1288
+ <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
1289
+ {{ hour }}
1290
+ </div>
1291
+ }
1292
+ </div>
1255
1293
  </div>
1256
- </div>
1257
- </div>
1258
- <!-- Minuten -->
1259
- <div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
1260
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1261
- <div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
1262
- {{ minute }}
1294
+ }
1295
+ <!-- Minuten -->
1296
+ @if (view === 'minutes') {
1297
+ <div class="grid grid-cols-1 gap-3">
1298
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1299
+ @for (minute of minuteOptions; track minute) {
1300
+ <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
1301
+ {{ minute }}
1302
+ </div>
1303
+ }
1304
+ </div>
1263
1305
  </div>
1264
- </div>
1306
+ }
1265
1307
  </div>
1266
- </div>
1267
- </ion-content>
1268
- `,
1308
+ </ion-content>
1309
+ `,
1269
1310
  }]
1270
1311
  }], ctorParameters: () => [{ type: i1$1.ModalController }], propDecorators: { view: [{
1271
1312
  type: Input
@@ -1384,11 +1425,9 @@ class SpxInputTimeComponent {
1384
1425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
1385
1426
  type: Component,
1386
1427
  args: [{ selector: 'spx-input-time', standalone: true, imports: [
1387
- NgIf,
1388
- NgFor,
1389
1428
  SpxButtonComponent,
1390
1429
  SpxDropdownComponent,
1391
- IonicModule,
1430
+ IonicModule
1392
1431
  ], template: `<div class="relative text-black">
1393
1432
  <div class="flex items-center justify-around gap-3">
1394
1433
  <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
@@ -1539,117 +1578,123 @@ class SpxInputComponent {
1539
1578
  this.onTouched = fn;
1540
1579
  }
1541
1580
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1542
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputComponent, isStandalone: true, selector: "spx-input", inputs: { spxLabel: "spxLabel", spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxAutocomplete: "spxAutocomplete", 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: [
1581
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputComponent, isStandalone: true, selector: "spx-input", inputs: { spxLabel: "spxLabel", spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxAutocomplete: "spxAutocomplete", 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: [
1543
1582
  {
1544
1583
  provide: NG_VALUE_ACCESSOR,
1545
1584
  useExisting: SpxInputComponent,
1546
1585
  multi: true
1547
1586
  }
1548
1587
  ], viewQueries: [{ propertyName: "floatInput", first: true, predicate: SpxInputFloatComponent, descendants: true }, { propertyName: "numberInput", first: true, predicate: SpxInputNumberComponent, descendants: true }, { propertyName: "textInput", first: true, predicate: SpxInputTextComponent, descendants: true }, { propertyName: "timeInput", first: true, predicate: SpxInputTimeComponent, descendants: true }, { propertyName: "radioInput", first: true, predicate: SpxInputRadioComponent, descendants: true }], ngImport: i0, template: `<spx-input-box
1549
- [spxFocused]="this.spxFocused"
1550
- [spxLabel]="this.spxLabel"
1551
- [spxReadonly]="this.spxReadonly"
1552
- [spxRequired]="this.spxRequired"
1553
- [spxValue]="this.value"
1554
- [spxShowHelp]="this.spxShowHelp"
1555
- [spxCompact]="this.spxCompact"
1556
- [spxShowClear]="this.spxShowClear"
1557
- [spxShowEdit]="this.spxShowEdit"
1558
- [spxShowLabel]="this.spxShowLabel"
1559
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1560
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1561
- (spxClear)="this.handleClear()"
1562
- (spxEdit)="this.handleEdit()"
1563
- (spxHelp)="this.handleHelp()"
1564
- (spxFocus)="this.setFocusIn()"
1565
- (spxFocusOut)="this.setFocusOut()"
1566
- (spxSearch)="this.handleSearch()">
1567
- <div controls>
1568
- <spx-input-text
1569
- *ngIf="this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password'"
1570
- (spxBlurFromChild)="this.handleBlur()"
1571
- (spxChange)="this.handleChange($event)"
1572
- (spxFocus)="this.handleFocus()"
1573
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1574
- [spxAutofocus]="this.spxAutofocus"
1575
- [spxCapitalize]="this.spxCapitalize"
1576
- [spxFocused]="this.spxFocused"
1577
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1578
- [spxName]="this.spxName"
1579
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1580
- [spxReadonly]="this.spxReadonly"
1581
- [spxSuggestions]="this.spxSuggestions"
1582
- [spxType]="this.spxType"
1583
- [spxValidators]="this.spxValidators"
1584
- [value]="this.value"
1585
- ></spx-input-text>
1586
- <spx-input-date
1587
- *ngIf="this.spxType === 'date'"
1588
- (spxChange)="this.handleChange($event)"
1589
- (spxFocus)="this.handleFocus()"
1590
- [spxFocused]="this.spxFocused"
1591
- [spxMax]="this.spxMax"
1592
- [spxMin]="this.spxMin"
1593
- [spxName]="this.spxName"
1594
- [spxReadonly]="this.spxReadonly"
1595
- [spxSelectDay]="this.spxSelectDay"
1596
- [spxSelectMonth]="this.spxSelectMonth"
1597
- [spxValidators]="this.spxValidators"
1598
- [value]="this.value"
1599
- ></spx-input-date>
1600
- <spx-input-float
1601
- *ngIf="this.spxType === 'float'"
1602
- (spxChange)="this.handleChange($event)"
1603
- (spxFocus)="this.handleFocus()"
1604
- [spxAutofocus]="this.spxAutofocus"
1605
- [spxFocused]="this.spxFocused"
1606
- [spxName]="this.spxName"
1607
- [spxReadonly]="this.spxReadonly"
1608
- [spxStep]="this.spxStep"
1609
- [spxValidators]="this.spxValidators"
1610
- [value]="this.value"
1611
- ></spx-input-float>
1612
- <spx-input-number
1613
- *ngIf="this.spxType === 'number'"
1614
- (spxChange)="this.handleChange($event)"
1615
- (spxFocus)="this.handleFocus()"
1616
- [spxAutofocus]="this.spxAutofocus"
1617
- [spxFocused]="this.spxFocused"
1618
- [spxInputMode]="this.spxInputMode"
1619
- [spxName]="this.spxName"
1620
- [spxReadonly]="this.spxReadonly"
1621
- [spxStep]="this.spxStep"
1622
- [spxValidators]="this.spxValidators"
1623
- [value]="this.value"
1624
- ></spx-input-number>
1625
- <spx-input-radio
1626
- #radioInput
1627
- *ngIf="this.spxType === 'radio'"
1628
- (spxChange)="this.handleChange($event)"
1629
- [spxFocused]="this.spxFocused"
1630
- [spxName]="this.spxName"
1631
- [spxReadonly]="this.spxReadonly"
1632
- [spxShowLabel]="this.spxShowLabel"
1633
- [spxSuggestions]="this.spxSuggestions"
1634
- [spxValidators]="this.spxValidators"
1635
- [value]="this.value"
1636
- ></spx-input-radio>
1637
- <spx-input-time
1638
- #timeInput
1639
- *ngIf="this.spxType === 'time'"
1640
- (spxChange)="this.handleChange($event)"
1641
- (spxFocus)="this.handleFocus()"
1642
- [spxFocused]="this.spxFocused"
1643
- [spxName]="this.spxName"
1644
- [spxReadonly]="this.spxReadonly"
1645
- [spxValidators]="this.spxValidators"
1646
- [value]="this.value"
1647
- ></spx-input-time>
1648
- </div>
1649
- <div validation-messages>
1650
- <ng-content></ng-content>
1651
- </div>
1652
- </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", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1588
+ [spxFocused]="this.spxFocused"
1589
+ [spxLabel]="this.spxLabel"
1590
+ [spxReadonly]="this.spxReadonly"
1591
+ [spxRequired]="this.spxRequired"
1592
+ [spxValue]="this.value"
1593
+ [spxShowHelp]="this.spxShowHelp"
1594
+ [spxCompact]="this.spxCompact"
1595
+ [spxShowClear]="this.spxShowClear"
1596
+ [spxShowEdit]="this.spxShowEdit"
1597
+ [spxShowLabel]="this.spxShowLabel"
1598
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1599
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1600
+ (spxClear)="this.handleClear()"
1601
+ (spxEdit)="this.handleEdit()"
1602
+ (spxHelp)="this.handleHelp()"
1603
+ (spxFocus)="this.setFocusIn()"
1604
+ (spxFocusOut)="this.setFocusOut()"
1605
+ (spxSearch)="this.handleSearch()">
1606
+ <div controls>
1607
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1608
+ <spx-input-text
1609
+ (spxBlurFromChild)="this.handleBlur()"
1610
+ (spxChange)="this.handleChange($event)"
1611
+ (spxFocus)="this.handleFocus()"
1612
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1613
+ [spxAutofocus]="this.spxAutofocus"
1614
+ [spxCapitalize]="this.spxCapitalize"
1615
+ [spxFocused]="this.spxFocused"
1616
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1617
+ [spxName]="this.spxName"
1618
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1619
+ [spxReadonly]="this.spxReadonly"
1620
+ [spxSuggestions]="this.spxSuggestions"
1621
+ [spxType]="this.spxType"
1622
+ [spxValidators]="this.spxValidators"
1623
+ [value]="this.value"
1624
+ ></spx-input-text>
1625
+ }
1626
+ @if (this.spxType === 'date') {
1627
+ <spx-input-date
1628
+ (spxChange)="this.handleChange($event)"
1629
+ (spxFocus)="this.handleFocus()"
1630
+ [spxFocused]="this.spxFocused"
1631
+ [spxMax]="this.spxMax"
1632
+ [spxMin]="this.spxMin"
1633
+ [spxName]="this.spxName"
1634
+ [spxReadonly]="this.spxReadonly"
1635
+ [spxSelectDay]="this.spxSelectDay"
1636
+ [spxSelectMonth]="this.spxSelectMonth"
1637
+ [spxValidators]="this.spxValidators"
1638
+ [value]="this.value"
1639
+ ></spx-input-date>
1640
+ }
1641
+ @if (this.spxType === 'float') {
1642
+ <spx-input-float
1643
+ (spxChange)="this.handleChange($event)"
1644
+ (spxFocus)="this.handleFocus()"
1645
+ [spxAutofocus]="this.spxAutofocus"
1646
+ [spxFocused]="this.spxFocused"
1647
+ [spxName]="this.spxName"
1648
+ [spxReadonly]="this.spxReadonly"
1649
+ [spxStep]="this.spxStep"
1650
+ [spxValidators]="this.spxValidators"
1651
+ [value]="this.value"
1652
+ ></spx-input-float>
1653
+ }
1654
+ @if (this.spxType === 'number') {
1655
+ <spx-input-number
1656
+ (spxChange)="this.handleChange($event)"
1657
+ (spxFocus)="this.handleFocus()"
1658
+ [spxAutofocus]="this.spxAutofocus"
1659
+ [spxFocused]="this.spxFocused"
1660
+ [spxInputMode]="this.spxInputMode"
1661
+ [spxName]="this.spxName"
1662
+ [spxReadonly]="this.spxReadonly"
1663
+ [spxStep]="this.spxStep"
1664
+ [spxValidators]="this.spxValidators"
1665
+ [value]="this.value"
1666
+ ></spx-input-number>
1667
+ }
1668
+ @if (this.spxType === 'radio') {
1669
+ <spx-input-radio
1670
+ #radioInput
1671
+ (spxChange)="this.handleChange($event)"
1672
+ [spxFocused]="this.spxFocused"
1673
+ [spxName]="this.spxName"
1674
+ [spxReadonly]="this.spxReadonly"
1675
+ [spxShowLabel]="this.spxShowLabel"
1676
+ [spxSuggestions]="this.spxSuggestions"
1677
+ [spxValidators]="this.spxValidators"
1678
+ [value]="this.value"
1679
+ ></spx-input-radio>
1680
+ }
1681
+ @if (this.spxType === 'time') {
1682
+ <spx-input-time
1683
+ #timeInput
1684
+ (spxChange)="this.handleChange($event)"
1685
+ (spxFocus)="this.handleFocus()"
1686
+ [spxFocused]="this.spxFocused"
1687
+ [spxName]="this.spxName"
1688
+ [spxReadonly]="this.spxReadonly"
1689
+ [spxValidators]="this.spxValidators"
1690
+ [value]="this.value"
1691
+ ></spx-input-time>
1692
+ }
1693
+ </div>
1694
+ <div validation-messages>
1695
+ <ng-content></ng-content>
1696
+ </div>
1697
+ </spx-input-box>`, isInline: true, dependencies: [{ 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", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1653
1698
  }
1654
1699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
1655
1700
  type: Component,
@@ -1660,14 +1705,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1660
1705
  '(spxChange)': 'handleChangeEvent($event)'
1661
1706
  },
1662
1707
  imports: [
1663
- NgIf,
1664
1708
  SpxInputBoxComponent,
1665
1709
  SpxInputDateComponent,
1666
1710
  SpxInputFloatComponent,
1667
1711
  SpxInputNumberComponent,
1668
1712
  SpxInputRadioComponent,
1669
1713
  SpxInputTextComponent,
1670
- SpxInputTimeComponent,
1714
+ SpxInputTimeComponent
1671
1715
  ],
1672
1716
  providers: [
1673
1717
  {
@@ -1677,110 +1721,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1677
1721
  }
1678
1722
  ],
1679
1723
  template: `<spx-input-box
1680
- [spxFocused]="this.spxFocused"
1681
- [spxLabel]="this.spxLabel"
1682
- [spxReadonly]="this.spxReadonly"
1683
- [spxRequired]="this.spxRequired"
1684
- [spxValue]="this.value"
1685
- [spxShowHelp]="this.spxShowHelp"
1686
- [spxCompact]="this.spxCompact"
1687
- [spxShowClear]="this.spxShowClear"
1688
- [spxShowEdit]="this.spxShowEdit"
1689
- [spxShowLabel]="this.spxShowLabel"
1690
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1691
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1692
- (spxClear)="this.handleClear()"
1693
- (spxEdit)="this.handleEdit()"
1694
- (spxHelp)="this.handleHelp()"
1695
- (spxFocus)="this.setFocusIn()"
1696
- (spxFocusOut)="this.setFocusOut()"
1697
- (spxSearch)="this.handleSearch()">
1698
- <div controls>
1699
- <spx-input-text
1700
- *ngIf="this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password'"
1701
- (spxBlurFromChild)="this.handleBlur()"
1702
- (spxChange)="this.handleChange($event)"
1703
- (spxFocus)="this.handleFocus()"
1704
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1705
- [spxAutofocus]="this.spxAutofocus"
1706
- [spxCapitalize]="this.spxCapitalize"
1707
- [spxFocused]="this.spxFocused"
1708
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1709
- [spxName]="this.spxName"
1710
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1711
- [spxReadonly]="this.spxReadonly"
1712
- [spxSuggestions]="this.spxSuggestions"
1713
- [spxType]="this.spxType"
1714
- [spxValidators]="this.spxValidators"
1715
- [value]="this.value"
1716
- ></spx-input-text>
1717
- <spx-input-date
1718
- *ngIf="this.spxType === 'date'"
1719
- (spxChange)="this.handleChange($event)"
1720
- (spxFocus)="this.handleFocus()"
1721
- [spxFocused]="this.spxFocused"
1722
- [spxMax]="this.spxMax"
1723
- [spxMin]="this.spxMin"
1724
- [spxName]="this.spxName"
1725
- [spxReadonly]="this.spxReadonly"
1726
- [spxSelectDay]="this.spxSelectDay"
1727
- [spxSelectMonth]="this.spxSelectMonth"
1728
- [spxValidators]="this.spxValidators"
1729
- [value]="this.value"
1730
- ></spx-input-date>
1731
- <spx-input-float
1732
- *ngIf="this.spxType === 'float'"
1733
- (spxChange)="this.handleChange($event)"
1734
- (spxFocus)="this.handleFocus()"
1735
- [spxAutofocus]="this.spxAutofocus"
1736
- [spxFocused]="this.spxFocused"
1737
- [spxName]="this.spxName"
1738
- [spxReadonly]="this.spxReadonly"
1739
- [spxStep]="this.spxStep"
1740
- [spxValidators]="this.spxValidators"
1741
- [value]="this.value"
1742
- ></spx-input-float>
1743
- <spx-input-number
1744
- *ngIf="this.spxType === 'number'"
1745
- (spxChange)="this.handleChange($event)"
1746
- (spxFocus)="this.handleFocus()"
1747
- [spxAutofocus]="this.spxAutofocus"
1748
- [spxFocused]="this.spxFocused"
1749
- [spxInputMode]="this.spxInputMode"
1750
- [spxName]="this.spxName"
1751
- [spxReadonly]="this.spxReadonly"
1752
- [spxStep]="this.spxStep"
1753
- [spxValidators]="this.spxValidators"
1754
- [value]="this.value"
1755
- ></spx-input-number>
1756
- <spx-input-radio
1757
- #radioInput
1758
- *ngIf="this.spxType === 'radio'"
1759
- (spxChange)="this.handleChange($event)"
1760
- [spxFocused]="this.spxFocused"
1761
- [spxName]="this.spxName"
1762
- [spxReadonly]="this.spxReadonly"
1763
- [spxShowLabel]="this.spxShowLabel"
1764
- [spxSuggestions]="this.spxSuggestions"
1765
- [spxValidators]="this.spxValidators"
1766
- [value]="this.value"
1767
- ></spx-input-radio>
1768
- <spx-input-time
1769
- #timeInput
1770
- *ngIf="this.spxType === 'time'"
1771
- (spxChange)="this.handleChange($event)"
1772
- (spxFocus)="this.handleFocus()"
1773
- [spxFocused]="this.spxFocused"
1774
- [spxName]="this.spxName"
1775
- [spxReadonly]="this.spxReadonly"
1776
- [spxValidators]="this.spxValidators"
1777
- [value]="this.value"
1778
- ></spx-input-time>
1779
- </div>
1780
- <div validation-messages>
1781
- <ng-content></ng-content>
1782
- </div>
1783
- </spx-input-box>`,
1724
+ [spxFocused]="this.spxFocused"
1725
+ [spxLabel]="this.spxLabel"
1726
+ [spxReadonly]="this.spxReadonly"
1727
+ [spxRequired]="this.spxRequired"
1728
+ [spxValue]="this.value"
1729
+ [spxShowHelp]="this.spxShowHelp"
1730
+ [spxCompact]="this.spxCompact"
1731
+ [spxShowClear]="this.spxShowClear"
1732
+ [spxShowEdit]="this.spxShowEdit"
1733
+ [spxShowLabel]="this.spxShowLabel"
1734
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1735
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1736
+ (spxClear)="this.handleClear()"
1737
+ (spxEdit)="this.handleEdit()"
1738
+ (spxHelp)="this.handleHelp()"
1739
+ (spxFocus)="this.setFocusIn()"
1740
+ (spxFocusOut)="this.setFocusOut()"
1741
+ (spxSearch)="this.handleSearch()">
1742
+ <div controls>
1743
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1744
+ <spx-input-text
1745
+ (spxBlurFromChild)="this.handleBlur()"
1746
+ (spxChange)="this.handleChange($event)"
1747
+ (spxFocus)="this.handleFocus()"
1748
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1749
+ [spxAutofocus]="this.spxAutofocus"
1750
+ [spxCapitalize]="this.spxCapitalize"
1751
+ [spxFocused]="this.spxFocused"
1752
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1753
+ [spxName]="this.spxName"
1754
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1755
+ [spxReadonly]="this.spxReadonly"
1756
+ [spxSuggestions]="this.spxSuggestions"
1757
+ [spxType]="this.spxType"
1758
+ [spxValidators]="this.spxValidators"
1759
+ [value]="this.value"
1760
+ ></spx-input-text>
1761
+ }
1762
+ @if (this.spxType === 'date') {
1763
+ <spx-input-date
1764
+ (spxChange)="this.handleChange($event)"
1765
+ (spxFocus)="this.handleFocus()"
1766
+ [spxFocused]="this.spxFocused"
1767
+ [spxMax]="this.spxMax"
1768
+ [spxMin]="this.spxMin"
1769
+ [spxName]="this.spxName"
1770
+ [spxReadonly]="this.spxReadonly"
1771
+ [spxSelectDay]="this.spxSelectDay"
1772
+ [spxSelectMonth]="this.spxSelectMonth"
1773
+ [spxValidators]="this.spxValidators"
1774
+ [value]="this.value"
1775
+ ></spx-input-date>
1776
+ }
1777
+ @if (this.spxType === 'float') {
1778
+ <spx-input-float
1779
+ (spxChange)="this.handleChange($event)"
1780
+ (spxFocus)="this.handleFocus()"
1781
+ [spxAutofocus]="this.spxAutofocus"
1782
+ [spxFocused]="this.spxFocused"
1783
+ [spxName]="this.spxName"
1784
+ [spxReadonly]="this.spxReadonly"
1785
+ [spxStep]="this.spxStep"
1786
+ [spxValidators]="this.spxValidators"
1787
+ [value]="this.value"
1788
+ ></spx-input-float>
1789
+ }
1790
+ @if (this.spxType === 'number') {
1791
+ <spx-input-number
1792
+ (spxChange)="this.handleChange($event)"
1793
+ (spxFocus)="this.handleFocus()"
1794
+ [spxAutofocus]="this.spxAutofocus"
1795
+ [spxFocused]="this.spxFocused"
1796
+ [spxInputMode]="this.spxInputMode"
1797
+ [spxName]="this.spxName"
1798
+ [spxReadonly]="this.spxReadonly"
1799
+ [spxStep]="this.spxStep"
1800
+ [spxValidators]="this.spxValidators"
1801
+ [value]="this.value"
1802
+ ></spx-input-number>
1803
+ }
1804
+ @if (this.spxType === 'radio') {
1805
+ <spx-input-radio
1806
+ #radioInput
1807
+ (spxChange)="this.handleChange($event)"
1808
+ [spxFocused]="this.spxFocused"
1809
+ [spxName]="this.spxName"
1810
+ [spxReadonly]="this.spxReadonly"
1811
+ [spxShowLabel]="this.spxShowLabel"
1812
+ [spxSuggestions]="this.spxSuggestions"
1813
+ [spxValidators]="this.spxValidators"
1814
+ [value]="this.value"
1815
+ ></spx-input-radio>
1816
+ }
1817
+ @if (this.spxType === 'time') {
1818
+ <spx-input-time
1819
+ #timeInput
1820
+ (spxChange)="this.handleChange($event)"
1821
+ (spxFocus)="this.handleFocus()"
1822
+ [spxFocused]="this.spxFocused"
1823
+ [spxName]="this.spxName"
1824
+ [spxReadonly]="this.spxReadonly"
1825
+ [spxValidators]="this.spxValidators"
1826
+ [value]="this.value"
1827
+ ></spx-input-time>
1828
+ }
1829
+ </div>
1830
+ <div validation-messages>
1831
+ <ng-content></ng-content>
1832
+ </div>
1833
+ </spx-input-box>`,
1784
1834
  }]
1785
1835
  }], propDecorators: { spxLabel: [{
1786
1836
  type: Input