@softpak/components 18.6.10 → 19.0.0-beta.10

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 (157) hide show
  1. package/README.md +24 -24
  2. package/esm2022/spx-alert/public-api.mjs +1 -1
  3. package/esm2022/spx-alert/spx-alert.component.mjs +115 -115
  4. package/esm2022/spx-alert/spx-alert.interface.mjs +1 -1
  5. package/esm2022/spx-app-configuration/public-api.mjs +1 -1
  6. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +1 -1
  7. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +1 -1
  8. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +1 -1
  9. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +1 -1
  10. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +1 -1
  11. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +1 -1
  12. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +1 -1
  13. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +1 -1
  14. package/esm2022/spx-app-expiry/public-api.mjs +1 -1
  15. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +57 -57
  16. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +1 -1
  17. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +1 -1
  18. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +1 -1
  19. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +1 -1
  20. package/esm2022/spx-app-update/public-api.mjs +1 -1
  21. package/esm2022/spx-app-update/spx-app-update.component.mjs +66 -63
  22. package/esm2022/spx-button/public-api.mjs +1 -1
  23. package/esm2022/spx-button/spx-button.component.mjs +63 -63
  24. package/esm2022/spx-capitalize/public-api.mjs +1 -1
  25. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +1 -1
  26. package/esm2022/spx-card/public-api.mjs +1 -1
  27. package/esm2022/spx-card/spx-card-grid.component.mjs +27 -27
  28. package/esm2022/spx-card/spx-card-item.component.mjs +69 -69
  29. package/esm2022/spx-card/spx-card-line.component.mjs +77 -77
  30. package/esm2022/spx-card/spx-card.component.mjs +51 -51
  31. package/esm2022/spx-change-details/public-api.mjs +1 -1
  32. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +1 -1
  33. package/esm2022/spx-change-details/spx-change-details.component.mjs +3 -3
  34. package/esm2022/spx-channel-selection/public-api.mjs +1 -1
  35. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +13 -13
  36. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +13 -13
  37. package/esm2022/spx-check-digit/public-api.mjs +1 -1
  38. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +3 -3
  39. package/esm2022/spx-form-section/public-api.mjs +1 -1
  40. package/esm2022/spx-form-section/spx-form-section.component.mjs +21 -21
  41. package/esm2022/spx-form-view/public-api.mjs +1 -1
  42. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +3 -3
  43. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +1 -1
  44. package/esm2022/spx-form-view/spx-form-button.interface.mjs +1 -1
  45. package/esm2022/spx-form-view/spx-form-field.interface.mjs +1 -1
  46. package/esm2022/spx-form-view/spx-form-section.interface.mjs +1 -1
  47. package/esm2022/spx-form-view/spx-form-view.component.mjs +163 -163
  48. package/esm2022/spx-form-view/spx-form.interface.mjs +1 -1
  49. package/esm2022/spx-helpers/calc-check-digit.function.mjs +1 -1
  50. package/esm2022/spx-helpers/public-api.mjs +1 -1
  51. package/esm2022/spx-helpers/spx-severity.enum.mjs +1 -1
  52. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +1 -1
  53. package/esm2022/spx-inputs/public-api.mjs +1 -1
  54. package/esm2022/spx-inputs/spx-dropdown.component.mjs +33 -33
  55. package/esm2022/spx-inputs/spx-input-box.component.mjs +149 -149
  56. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +3 -3
  57. package/esm2022/spx-inputs/spx-input-float.component.mjs +51 -51
  58. package/esm2022/spx-inputs/spx-input-number.component.mjs +27 -27
  59. package/esm2022/spx-inputs/spx-input-radio.component.mjs +23 -23
  60. package/esm2022/spx-inputs/spx-input-text.component.mjs +63 -63
  61. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +86 -84
  62. package/esm2022/spx-inputs/spx-input-time.component.mjs +14 -21
  63. package/esm2022/spx-inputs/spx-input-type.enum.mjs +1 -1
  64. package/esm2022/spx-inputs/spx-input.component.mjs +219 -219
  65. package/esm2022/spx-inputs/spx-value-interface.mjs +1 -1
  66. package/esm2022/spx-navigation/public-api.mjs +1 -1
  67. package/esm2022/spx-navigation/spx-home-tile.component.mjs +39 -39
  68. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +5 -5
  69. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
  70. package/esm2022/spx-navigation/spx-navigation.component.mjs +3 -3
  71. package/esm2022/spx-number-check/public-api.mjs +1 -1
  72. package/esm2022/spx-number-check/spx-number-check.component.mjs +77 -77
  73. package/esm2022/spx-pagination/public-api.mjs +1 -1
  74. package/esm2022/spx-pagination/spx-pagination.component.mjs +3 -3
  75. package/esm2022/spx-patch/patch-check.function.mjs +1 -1
  76. package/esm2022/spx-patch/public-api.mjs +1 -1
  77. package/esm2022/spx-patch/release-check.function.mjs +1 -1
  78. package/esm2022/spx-patch/spx-patch.component.mjs +25 -25
  79. package/esm2022/spx-progress-bar/public-api.mjs +1 -1
  80. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +15 -15
  81. package/esm2022/spx-spinner/public-api.mjs +1 -1
  82. package/esm2022/spx-spinner/spx-spinner.component.mjs +143 -143
  83. package/esm2022/spx-stock-info/public-api.mjs +1 -1
  84. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +1 -1
  85. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +3 -3
  86. package/esm2022/spx-storage/public-api.mjs +1 -1
  87. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +1 -1
  88. package/esm2022/spx-storage/src/spx-storage.class.mjs +1 -1
  89. package/esm2022/spx-suggestion/public-api.mjs +1 -1
  90. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +41 -41
  91. package/esm2022/spx-toaster/public-api.mjs +1 -1
  92. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +1 -1
  93. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +1 -1
  94. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +93 -93
  95. package/esm2022/spx-update/public-api.mjs +1 -1
  96. package/esm2022/spx-update/src/spx-update-info.component.mjs +23 -23
  97. package/esm2022/spx-update/src/spx-update-progress.component.mjs +3 -3
  98. package/esm2022/spx-validation/max.validator.mjs +1 -1
  99. package/esm2022/spx-validation/maxlength.validator.mjs +1 -1
  100. package/esm2022/spx-validation/min.validator.mjs +1 -1
  101. package/esm2022/spx-validation/minlength.validator.mjs +1 -1
  102. package/esm2022/spx-validation/pattern.validator.mjs +1 -1
  103. package/esm2022/spx-validation/public-api.mjs +1 -1
  104. package/esm2022/spx-validation/required.validator.mjs +1 -1
  105. package/esm2022/spx-validation/spx-validate-control.component.mjs +3 -3
  106. package/esm2022/spx-validation/year-and-month.validator.mjs +1 -1
  107. package/fesm2022/softpak-components-spx-alert.mjs +114 -114
  108. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  109. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  110. package/fesm2022/softpak-components-spx-app-expiry.mjs +56 -56
  111. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  112. package/fesm2022/softpak-components-spx-app-update.mjs +65 -62
  113. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  114. package/fesm2022/softpak-components-spx-button.mjs +62 -62
  115. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  116. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  117. package/fesm2022/softpak-components-spx-card.mjs +220 -220
  118. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  119. package/fesm2022/softpak-components-spx-change-details.mjs +2 -2
  120. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  121. package/fesm2022/softpak-components-spx-channel-selection.mjs +24 -24
  122. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  123. package/fesm2022/softpak-components-spx-check-digit.mjs +2 -2
  124. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  125. package/fesm2022/softpak-components-spx-form-section.mjs +20 -20
  126. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  127. package/fesm2022/softpak-components-spx-form-view.mjs +164 -164
  128. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  129. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  130. package/fesm2022/softpak-components-spx-inputs.mjs +661 -661
  131. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  132. package/fesm2022/softpak-components-spx-navigation.mjs +44 -44
  133. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  134. package/fesm2022/softpak-components-spx-number-check.mjs +76 -76
  135. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  136. package/fesm2022/softpak-components-spx-pagination.mjs +2 -2
  137. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  138. package/fesm2022/softpak-components-spx-patch.mjs +24 -24
  139. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-progress-bar.mjs +14 -14
  141. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-spinner.mjs +142 -142
  143. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  144. package/fesm2022/softpak-components-spx-stock-info.mjs +2 -2
  145. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  146. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  147. package/fesm2022/softpak-components-spx-suggestion.mjs +40 -40
  148. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  149. package/fesm2022/softpak-components-spx-toaster.mjs +92 -92
  150. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  151. package/fesm2022/softpak-components-spx-update.mjs +24 -24
  152. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  153. package/fesm2022/softpak-components-spx-validation.mjs +2 -2
  154. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  155. package/package.json +38 -38
  156. package/spx-app-update/spx-app-update.component.d.ts +1 -1
  157. package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
@@ -10,8 +10,9 @@ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
10
10
  import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
11
11
  import { valuePairToValue, SpxSeverityEnum } from '@softpak/components/spx-helpers';
12
12
  import { DateTime } from 'luxon';
13
- import * as i1$2 from '@ionic/angular';
14
- import { IonicModule } from '@ionic/angular';
13
+ import * as i1$2 from '@ionic/angular/standalone';
14
+ import { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone';
15
+ import * as i1$3 from '@ionic/angular';
15
16
 
16
17
  class SpxInputBoxComponent {
17
18
  handleFocusIn(ev) {
@@ -72,80 +73,80 @@ class SpxInputBoxComponent {
72
73
  }
73
74
  }
74
75
  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: "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"
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
- @if (this.spxShowLabel) {
90
- <div class="font-bold text-sm mb-1 text-gray-800"
91
- [class.mb-0]="this.spxCompact"
92
- [class.px-3]="this.spxCompact">
93
- {{this.spxLabel}} @if (spxRequired) {
94
- <span class="text-red-800">*</span>
95
- }
96
- </div>
97
- }
98
- <ng-content select="[controls]"></ng-content>
99
- </div>
100
- <div class="flex flex-none gap-1 p-1">
101
- @if (this.spxShowEdit) {
102
- <spx-button
103
- (spxClick)="onEdit()"
104
- [spxFullHeight]="true"
105
- [spxSize]="'xl'"
106
- [spxType]="'button'">
107
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
108
- </spx-button>
109
- }
110
- @if (this.spxShowHelp) {
111
- <spx-button
112
- (spxClick)="onHelp()"
113
- [spxFullHeight]="true"
114
- [spxDisabled]="this.spxReadonly"
115
- [spxSize]="'xl'"
116
- [spxTabIndex]="-1"
117
- [spxType]="'button'">
118
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
119
- </spx-button>
120
- }
121
- @if (this.spxShowSearch) {
122
- <spx-button
123
- (spxClick)="onSearch()"
124
- [spxFullHeight]="true"
125
- [spxDisabled]="this.spxReadonly"
126
- [spxSize]="'xl'"
127
- [spxTabIndex]="-1"
128
- [spxType]="'button'">
129
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
130
- </spx-button>
131
- }
132
- @if (this.spxShowClear) {
133
- <spx-button
134
- (spxClick)="onClear()"
135
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
136
- [spxFullHeight]="true"
137
- [spxSize]="'xl'"
138
- [spxTabIndex]="-1"
139
- [spxType]="'button'">
140
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
141
- </spx-button>
142
- }
143
- </div>
144
- </div>
145
- @if (this.spxShowValidationMessages) {
146
- <div class="bg-red-600 rounded-b text-white p-3">
147
- <ng-content select="[validation-messages]"></ng-content>
148
- </div>
76
+ 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"
77
+ [class.rounded-none]="this.spxShowValidationMessages"
78
+ [class.rounded-t]="this.spxShowValidationMessages"
79
+ [class.outline-none]="this.spxFocused && !this.spxReadonly"
80
+ [class.ring-2]="this.spxFocused && !this.spxReadonly"
81
+ [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
82
+ [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
83
+ [class.bg-white]="!this.spxReadonly"
84
+ [class.bg-gray-300]="this.spxReadonly"
85
+ [class.cursor-not-allowed]="this.spxReadonly">
86
+ <div class="flex-auto p-3"
87
+ [class.p-0]="this.spxCompact"
88
+ [class.flex]="this.spxCompact"
89
+ [class.items-center]="this.spxCompact">
90
+ @if (this.spxShowLabel) {
91
+ <div class="font-bold text-sm mb-1 text-gray-800"
92
+ [class.mb-0]="this.spxCompact"
93
+ [class.px-3]="this.spxCompact">
94
+ {{this.spxLabel}} @if (spxRequired) {
95
+ <span class="text-red-800">*</span>
96
+ }
97
+ </div>
98
+ }
99
+ <ng-content select="[controls]"></ng-content>
100
+ </div>
101
+ <div class="flex flex-none gap-1 p-1">
102
+ @if (this.spxShowEdit) {
103
+ <spx-button
104
+ (spxClick)="onEdit()"
105
+ [spxFullHeight]="true"
106
+ [spxSize]="'xl'"
107
+ [spxType]="'button'">
108
+ <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
109
+ </spx-button>
110
+ }
111
+ @if (this.spxShowHelp) {
112
+ <spx-button
113
+ (spxClick)="onHelp()"
114
+ [spxFullHeight]="true"
115
+ [spxDisabled]="this.spxReadonly"
116
+ [spxSize]="'xl'"
117
+ [spxTabIndex]="-1"
118
+ [spxType]="'button'">
119
+ <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
120
+ </spx-button>
121
+ }
122
+ @if (this.spxShowSearch) {
123
+ <spx-button
124
+ (spxClick)="onSearch()"
125
+ [spxFullHeight]="true"
126
+ [spxDisabled]="this.spxReadonly"
127
+ [spxSize]="'xl'"
128
+ [spxTabIndex]="-1"
129
+ [spxType]="'button'">
130
+ <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
131
+ </spx-button>
132
+ }
133
+ @if (this.spxShowClear) {
134
+ <spx-button
135
+ (spxClick)="onClear()"
136
+ [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
137
+ [spxFullHeight]="true"
138
+ [spxSize]="'xl'"
139
+ [spxTabIndex]="-1"
140
+ [spxType]="'button'">
141
+ <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
142
+ </spx-button>
143
+ }
144
+ </div>
145
+ </div>
146
+ @if (this.spxShowValidationMessages) {
147
+ <div class="bg-red-600 rounded-b text-white p-3">
148
+ <ng-content select="[validation-messages]"></ng-content>
149
+ </div>
149
150
  }`, 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"] }] }); }
150
151
  }
151
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
@@ -157,80 +158,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
158
  SpxButtonComponent,
158
159
  FontAwesomeModule
159
160
  ],
160
- template: `<div class="flex rounded w-full gap-3"
161
- [class.rounded-none]="this.spxShowValidationMessages"
162
- [class.rounded-t]="this.spxShowValidationMessages"
163
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
164
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
165
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
166
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
167
- [class.bg-white]="!this.spxReadonly"
168
- [class.bg-gray-300]="this.spxReadonly"
169
- [class.cursor-not-allowed]="this.spxReadonly">
170
- <div class="flex-auto p-3"
171
- [class.p-0]="this.spxCompact"
172
- [class.flex]="this.spxCompact"
173
- [class.items-center]="this.spxCompact">
174
- @if (this.spxShowLabel) {
175
- <div class="font-bold text-sm mb-1 text-gray-800"
176
- [class.mb-0]="this.spxCompact"
177
- [class.px-3]="this.spxCompact">
178
- {{this.spxLabel}} @if (spxRequired) {
179
- <span class="text-red-800">*</span>
180
- }
181
- </div>
182
- }
183
- <ng-content select="[controls]"></ng-content>
184
- </div>
185
- <div class="flex flex-none gap-1 p-1">
186
- @if (this.spxShowEdit) {
187
- <spx-button
188
- (spxClick)="onEdit()"
189
- [spxFullHeight]="true"
190
- [spxSize]="'xl'"
191
- [spxType]="'button'">
192
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
193
- </spx-button>
194
- }
195
- @if (this.spxShowHelp) {
196
- <spx-button
197
- (spxClick)="onHelp()"
198
- [spxFullHeight]="true"
199
- [spxDisabled]="this.spxReadonly"
200
- [spxSize]="'xl'"
201
- [spxTabIndex]="-1"
202
- [spxType]="'button'">
203
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
204
- </spx-button>
205
- }
206
- @if (this.spxShowSearch) {
207
- <spx-button
208
- (spxClick)="onSearch()"
209
- [spxFullHeight]="true"
210
- [spxDisabled]="this.spxReadonly"
211
- [spxSize]="'xl'"
212
- [spxTabIndex]="-1"
213
- [spxType]="'button'">
214
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
215
- </spx-button>
216
- }
217
- @if (this.spxShowClear) {
218
- <spx-button
219
- (spxClick)="onClear()"
220
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
221
- [spxFullHeight]="true"
222
- [spxSize]="'xl'"
223
- [spxTabIndex]="-1"
224
- [spxType]="'button'">
225
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
226
- </spx-button>
227
- }
228
- </div>
229
- </div>
230
- @if (this.spxShowValidationMessages) {
231
- <div class="bg-red-600 rounded-b text-white p-3">
232
- <ng-content select="[validation-messages]"></ng-content>
233
- </div>
161
+ template: `<div class="flex rounded w-full gap-3"
162
+ [class.rounded-none]="this.spxShowValidationMessages"
163
+ [class.rounded-t]="this.spxShowValidationMessages"
164
+ [class.outline-none]="this.spxFocused && !this.spxReadonly"
165
+ [class.ring-2]="this.spxFocused && !this.spxReadonly"
166
+ [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
167
+ [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
168
+ [class.bg-white]="!this.spxReadonly"
169
+ [class.bg-gray-300]="this.spxReadonly"
170
+ [class.cursor-not-allowed]="this.spxReadonly">
171
+ <div class="flex-auto p-3"
172
+ [class.p-0]="this.spxCompact"
173
+ [class.flex]="this.spxCompact"
174
+ [class.items-center]="this.spxCompact">
175
+ @if (this.spxShowLabel) {
176
+ <div class="font-bold text-sm mb-1 text-gray-800"
177
+ [class.mb-0]="this.spxCompact"
178
+ [class.px-3]="this.spxCompact">
179
+ {{this.spxLabel}} @if (spxRequired) {
180
+ <span class="text-red-800">*</span>
181
+ }
182
+ </div>
183
+ }
184
+ <ng-content select="[controls]"></ng-content>
185
+ </div>
186
+ <div class="flex flex-none gap-1 p-1">
187
+ @if (this.spxShowEdit) {
188
+ <spx-button
189
+ (spxClick)="onEdit()"
190
+ [spxFullHeight]="true"
191
+ [spxSize]="'xl'"
192
+ [spxType]="'button'">
193
+ <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
194
+ </spx-button>
195
+ }
196
+ @if (this.spxShowHelp) {
197
+ <spx-button
198
+ (spxClick)="onHelp()"
199
+ [spxFullHeight]="true"
200
+ [spxDisabled]="this.spxReadonly"
201
+ [spxSize]="'xl'"
202
+ [spxTabIndex]="-1"
203
+ [spxType]="'button'">
204
+ <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
205
+ </spx-button>
206
+ }
207
+ @if (this.spxShowSearch) {
208
+ <spx-button
209
+ (spxClick)="onSearch()"
210
+ [spxFullHeight]="true"
211
+ [spxDisabled]="this.spxReadonly"
212
+ [spxSize]="'xl'"
213
+ [spxTabIndex]="-1"
214
+ [spxType]="'button'">
215
+ <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
216
+ </spx-button>
217
+ }
218
+ @if (this.spxShowClear) {
219
+ <spx-button
220
+ (spxClick)="onClear()"
221
+ [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
222
+ [spxFullHeight]="true"
223
+ [spxSize]="'xl'"
224
+ [spxTabIndex]="-1"
225
+ [spxType]="'button'">
226
+ <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
227
+ </spx-button>
228
+ }
229
+ </div>
230
+ </div>
231
+ @if (this.spxShowValidationMessages) {
232
+ <div class="bg-red-600 rounded-b text-white p-3">
233
+ <ng-content select="[validation-messages]"></ng-content>
234
+ </div>
234
235
  }`,
235
236
  }]
236
237
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
@@ -319,22 +320,22 @@ class SpxDropdownComponent {
319
320
  this.spxSelect.emit(valuePair);
320
321
  }
321
322
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
322
- 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">
323
- <div
324
- class="absolute bg-gray-100 left-0 right-0 z-20">
325
- @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
326
- <button
327
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
328
- [class.bg-gray-100]="i === this.focusPosition"
329
- [class.bg-white]="i !== this.focusPosition"
330
- (click)="this.handleSuggestionClick(valuePair)"
331
- [attr.tabindex]="-1"
332
- [attr.type]="'button'">
333
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
334
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
335
- </button>
336
- }
337
- </div>
323
+ 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">
324
+ <div
325
+ class="absolute bg-gray-100 left-0 right-0 z-20">
326
+ @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
327
+ <button
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
+ }
338
+ </div>
338
339
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
339
340
  }
340
341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, decorators: [{
@@ -345,22 +346,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
345
346
  imports: [
346
347
  SpxButtonComponent
347
348
  ],
348
- template: `<div class="relative text-black">
349
- <div
350
- class="absolute bg-gray-100 left-0 right-0 z-20">
351
- @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
352
- <button
353
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
354
- [class.bg-gray-100]="i === this.focusPosition"
355
- [class.bg-white]="i !== this.focusPosition"
356
- (click)="this.handleSuggestionClick(valuePair)"
357
- [attr.tabindex]="-1"
358
- [attr.type]="'button'">
359
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
360
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
361
- </button>
362
- }
363
- </div>
349
+ template: `<div class="relative text-black">
350
+ <div
351
+ class="absolute bg-gray-100 left-0 right-0 z-20">
352
+ @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
353
+ <button
354
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
355
+ [class.bg-gray-100]="i === this.focusPosition"
356
+ [class.bg-white]="i !== this.focusPosition"
357
+ (click)="this.handleSuggestionClick(valuePair)"
358
+ [attr.tabindex]="-1"
359
+ [attr.type]="'button'">
360
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
361
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
362
+ </button>
363
+ }
364
+ </div>
364
365
  </div>`,
365
366
  }]
366
367
  }], propDecorators: { spxSuggestions: [{
@@ -415,37 +416,37 @@ class SpxInputTextComponent {
415
416
  this.spxFocused = true;
416
417
  }
417
418
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
418
- 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">
419
- <input
420
- #input
421
- class="font-bold text-lg w-full outline-none"
422
- autocomplete="off"
423
- spellcheck="false"
424
- [class.bg-white]="!this.spxReadonly"
425
- [class.bg-gray-300]="this.spxReadonly"
426
- [class.cursor-not-allowed]="this.spxReadonly"
427
- [class.uppercase]="this.spxCapitalize"
428
- [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
429
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
430
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
431
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
432
- [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
433
- [attr.name]="this.spxName"
434
- [attr.type]="this.spxType"
435
- [value]="this.value?.description ? this.value?.description : this.value?.value"
436
- (blur)="this.handleBlur()"
437
- (keyUp)="this.handleKeyUp()"
438
- (focus)="this.handleFocus()"
439
- (input)="this.handleDescriptionInput($event)"
440
- />
441
- @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
442
- <span>{{this.value?.value}}</span>
443
- }
444
- @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
445
- <spx-dropdown
446
- [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
447
- </spx-dropdown>
448
- }
419
+ 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">
420
+ <input
421
+ #input
422
+ class="font-bold text-lg w-full outline-none"
423
+ autocomplete="off"
424
+ spellcheck="false"
425
+ [class.bg-white]="!this.spxReadonly"
426
+ [class.bg-gray-300]="this.spxReadonly"
427
+ [class.cursor-not-allowed]="this.spxReadonly"
428
+ [class.uppercase]="this.spxCapitalize"
429
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
430
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
431
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
432
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
433
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
434
+ [attr.name]="this.spxName"
435
+ [attr.type]="this.spxType"
436
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
437
+ (blur)="this.handleBlur()"
438
+ (keyUp)="this.handleKeyUp()"
439
+ (focus)="this.handleFocus()"
440
+ (input)="this.handleDescriptionInput($event)"
441
+ />
442
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
443
+ <span>{{this.value?.value}}</span>
444
+ }
445
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
446
+ <spx-dropdown
447
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
448
+ </spx-dropdown>
449
+ }
449
450
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
450
451
  }
451
452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, decorators: [{
@@ -456,37 +457,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
456
457
  imports: [
457
458
  SpxDropdownComponent
458
459
  ],
459
- template: `<div class="relative text-black">
460
- <input
461
- #input
462
- class="font-bold text-lg w-full outline-none"
463
- autocomplete="off"
464
- spellcheck="false"
465
- [class.bg-white]="!this.spxReadonly"
466
- [class.bg-gray-300]="this.spxReadonly"
467
- [class.cursor-not-allowed]="this.spxReadonly"
468
- [class.uppercase]="this.spxCapitalize"
469
- [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
470
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
471
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
472
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
473
- [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
474
- [attr.name]="this.spxName"
475
- [attr.type]="this.spxType"
476
- [value]="this.value?.description ? this.value?.description : this.value?.value"
477
- (blur)="this.handleBlur()"
478
- (keyUp)="this.handleKeyUp()"
479
- (focus)="this.handleFocus()"
480
- (input)="this.handleDescriptionInput($event)"
481
- />
482
- @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
483
- <span>{{this.value?.value}}</span>
484
- }
485
- @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
486
- <spx-dropdown
487
- [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
488
- </spx-dropdown>
489
- }
460
+ template: `<div class="relative text-black">
461
+ <input
462
+ #input
463
+ class="font-bold text-lg w-full outline-none"
464
+ autocomplete="off"
465
+ spellcheck="false"
466
+ [class.bg-white]="!this.spxReadonly"
467
+ [class.bg-gray-300]="this.spxReadonly"
468
+ [class.cursor-not-allowed]="this.spxReadonly"
469
+ [class.uppercase]="this.spxCapitalize"
470
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
471
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
472
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
473
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
474
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
475
+ [attr.name]="this.spxName"
476
+ [attr.type]="this.spxType"
477
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
478
+ (blur)="this.handleBlur()"
479
+ (keyUp)="this.handleKeyUp()"
480
+ (focus)="this.handleFocus()"
481
+ (input)="this.handleDescriptionInput($event)"
482
+ />
483
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
484
+ <span>{{this.value?.value}}</span>
485
+ }
486
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
487
+ <spx-dropdown
488
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
489
+ </spx-dropdown>
490
+ }
490
491
  </div>`,
491
492
  }]
492
493
  }], propDecorators: { spxName: [{
@@ -595,62 +596,62 @@ class SpxInputFloatComponent {
595
596
  return /^[+-]?\d+(\.\d+)?$/.test(value);
596
597
  }
597
598
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
598
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputFloatComponent, isStandalone: true, selector: "spx-input-float", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate", tick: "tick" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "firstInputRef", first: true, predicate: ["firstInputRef"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `<div class="flex items-end">
599
- <input
600
- #firstInputRef
601
- class="spx-input-float__input"
602
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
603
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
604
- [attr.pattern]="'[0-9]*'"
605
- [attr.step]="1"
606
- [attr.type]="'text'"
607
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
608
- (focus)="this.handleFocus()"
609
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
610
- (ngModelChange)="this.handleInput($event, 1)" />
611
- <span class="text-black font-bold text-2xl mx-4">,</span>
612
- <input
613
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
614
- class="spx-input-float__input"
615
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
616
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
617
- (focus)="this.handleFocus()"
618
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
619
- (ngModelChange)="this.handleInput($event, 2)"
620
- [attr.step]="1"
621
- [attr.type]="'text'"
622
- [attr.pattern]="'[0-9]*'" />
599
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputFloatComponent, isStandalone: true, selector: "spx-input-float", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate", tick: "tick" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "firstInputRef", first: true, predicate: ["firstInputRef"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `<div class="flex items-end">
600
+ <input
601
+ #firstInputRef
602
+ class="spx-input-float__input"
603
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
604
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
605
+ [attr.pattern]="'[0-9]*'"
606
+ [attr.step]="1"
607
+ [attr.type]="'text'"
608
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
609
+ (focus)="this.handleFocus()"
610
+ [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
611
+ (ngModelChange)="this.handleInput($event, 1)" />
612
+ <span class="text-black font-bold text-2xl mx-4">,</span>
613
+ <input
614
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
615
+ class="spx-input-float__input"
616
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
617
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
618
+ (focus)="this.handleFocus()"
619
+ [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
620
+ (ngModelChange)="this.handleInput($event, 2)"
621
+ [attr.step]="1"
622
+ [attr.type]="'text'"
623
+ [attr.pattern]="'[0-9]*'" />
623
624
  </div>`, isInline: true, styles: [":host{display:block}.spx-input-float__input{border:1px solid #333333;border-radius:8px;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));flex:1;font-size:20px;font-weight:700;padding:8px;width:100%}.spx-input-float__input:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
624
625
  }
625
626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
626
627
  type: Component,
627
628
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
628
629
  FormsModule,
629
- ], template: `<div class="flex items-end">
630
- <input
631
- #firstInputRef
632
- class="spx-input-float__input"
633
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
634
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
635
- [attr.pattern]="'[0-9]*'"
636
- [attr.step]="1"
637
- [attr.type]="'text'"
638
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
639
- (focus)="this.handleFocus()"
640
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
641
- (ngModelChange)="this.handleInput($event, 1)" />
642
- <span class="text-black font-bold text-2xl mx-4">,</span>
643
- <input
644
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
645
- class="spx-input-float__input"
646
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
647
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
648
- (focus)="this.handleFocus()"
649
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
650
- (ngModelChange)="this.handleInput($event, 2)"
651
- [attr.step]="1"
652
- [attr.type]="'text'"
653
- [attr.pattern]="'[0-9]*'" />
630
+ ], template: `<div class="flex items-end">
631
+ <input
632
+ #firstInputRef
633
+ class="spx-input-float__input"
634
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
635
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
636
+ [attr.pattern]="'[0-9]*'"
637
+ [attr.step]="1"
638
+ [attr.type]="'text'"
639
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
640
+ (focus)="this.handleFocus()"
641
+ [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
642
+ (ngModelChange)="this.handleInput($event, 1)" />
643
+ <span class="text-black font-bold text-2xl mx-4">,</span>
644
+ <input
645
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
646
+ class="spx-input-float__input"
647
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
648
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
649
+ (focus)="this.handleFocus()"
650
+ [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
651
+ (ngModelChange)="this.handleInput($event, 2)"
652
+ [attr.step]="1"
653
+ [attr.type]="'text'"
654
+ [attr.pattern]="'[0-9]*'" />
654
655
  </div>`, styles: [":host{display:block}.spx-input-float__input{border:1px solid #333333;border-radius:8px;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));flex:1;font-size:20px;font-weight:700;padding:8px;width:100%}.spx-input-float__input:focus{outline:none}\n"] }]
655
656
  }], propDecorators: { spxName: [{
656
657
  type: Input
@@ -708,36 +709,36 @@ class SpxInputNumberComponent {
708
709
  this.spxChange.emit(this.value);
709
710
  }
710
711
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
711
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputNumberComponent, isStandalone: true, selector: "spx-input-number", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="spx-input-number__controls">
712
- <input
713
- #input
714
- class="spx-input-number__input"
715
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
716
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
717
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
718
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
719
- [attr.value]="this.value?.value ? this.value?.value : undefined"
720
- [attr.step]="this.spxStep ? this.spxStep : undefined"
721
- [attr.type]="'number'"
722
- (focus)="this.handleFocus()"
723
- (input)="this.handleInput($event)" />
712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputNumberComponent, isStandalone: true, selector: "spx-input-number", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="spx-input-number__controls">
713
+ <input
714
+ #input
715
+ class="spx-input-number__input"
716
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
717
+ [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
718
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
719
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
720
+ [attr.value]="this.value?.value ? this.value?.value : undefined"
721
+ [attr.step]="this.spxStep ? this.spxStep : undefined"
722
+ [attr.type]="'number'"
723
+ (focus)="this.handleFocus()"
724
+ (input)="this.handleInput($event)" />
724
725
  </div>`, isInline: true, styles: [":host{display:block}.spx-input-number__input{border:0;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}.spx-input-number__input:focus{outline:none}.spx-input-number__value{color:#0009;font-size:14px}\n"] }); }
725
726
  }
726
727
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
727
728
  type: Component,
728
- args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
729
- <input
730
- #input
731
- class="spx-input-number__input"
732
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
733
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
734
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
735
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
736
- [attr.value]="this.value?.value ? this.value?.value : undefined"
737
- [attr.step]="this.spxStep ? this.spxStep : undefined"
738
- [attr.type]="'number'"
739
- (focus)="this.handleFocus()"
740
- (input)="this.handleInput($event)" />
729
+ args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
730
+ <input
731
+ #input
732
+ class="spx-input-number__input"
733
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
734
+ [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
735
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
736
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
737
+ [attr.value]="this.value?.value ? this.value?.value : undefined"
738
+ [attr.step]="this.spxStep ? this.spxStep : undefined"
739
+ [attr.type]="'number'"
740
+ (focus)="this.handleFocus()"
741
+ (input)="this.handleInput($event)" />
741
742
  </div>`, styles: [":host{display:block}.spx-input-number__input{border:0;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}.spx-input-number__input:focus{outline:none}.spx-input-number__value{color:#0009;font-size:14px}\n"] }]
742
743
  }], propDecorators: { spxName: [{
743
744
  type: Input
@@ -834,17 +835,17 @@ class SpxInputRadioComponent {
834
835
  });
835
836
  }
836
837
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
837
- 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">
838
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
839
- <spx-suggestion
840
- [spxDisabled]="this.spxReadonly"
841
- [spxFocused]="this.spxFocused && i === this.focusPosition"
842
- [spxSelected]="this.value?.value === valuePair?.value"
843
- [spxTabbable]="this.focusPosition === i"
844
- (click)="this.handleSuggestionClick($event, valuePair)">
845
- {{valuePair?.description}}
846
- </spx-suggestion>
847
- }
838
+ 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">
839
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
840
+ <spx-suggestion
841
+ [spxDisabled]="this.spxReadonly"
842
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
843
+ [spxSelected]="this.value?.value === valuePair?.value"
844
+ [spxTabbable]="this.focusPosition === i"
845
+ (click)="this.handleSuggestionClick($event, valuePair)">
846
+ {{valuePair?.description}}
847
+ </spx-suggestion>
848
+ }
848
849
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
849
850
  }
850
851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
@@ -855,17 +856,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
855
856
  imports: [
856
857
  SpxSuggestionComponent
857
858
  ],
858
- template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
859
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
860
- <spx-suggestion
861
- [spxDisabled]="this.spxReadonly"
862
- [spxFocused]="this.spxFocused && i === this.focusPosition"
863
- [spxSelected]="this.value?.value === valuePair?.value"
864
- [spxTabbable]="this.focusPosition === i"
865
- (click)="this.handleSuggestionClick($event, valuePair)">
866
- {{valuePair?.description}}
867
- </spx-suggestion>
868
- }
859
+ template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
860
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
861
+ <spx-suggestion
862
+ [spxDisabled]="this.spxReadonly"
863
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
864
+ [spxSelected]="this.value?.value === valuePair?.value"
865
+ [spxTabbable]="this.focusPosition === i"
866
+ (click)="this.handleSuggestionClick($event, valuePair)">
867
+ {{valuePair?.description}}
868
+ </spx-suggestion>
869
+ }
869
870
  </div>`,
870
871
  }]
871
872
  }], propDecorators: { spxName: [{
@@ -925,45 +926,45 @@ class SpxInputTimeModalComponent {
925
926
  this.modalController.dismiss(value);
926
927
  }
927
928
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1$2.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
928
- 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>
929
- <ion-toolbar>
930
- <ion-title>Select {{view}}</ion-title>
931
- <ion-buttons slot="end">
932
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
933
- <fa-icon [icon]="faXmark"></fa-icon>
934
- </spx-button>
935
- </ion-buttons>
936
- </ion-toolbar>
937
- </ion-header>
938
- <ion-content class="ion-padding bg-white">
939
- <!-- Uren -->
940
- <div class="custom-bg grid grid-cols-1 gap-3">
941
- @if (view === 'hours') {
942
- <div class="flex-wrap gap-2">
943
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
944
- @for (hour of hourOptions; track hour) {
945
- <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)">
946
- {{ hour }}
947
- </div>
948
- }
949
- </div>
950
- </div>
951
- }
952
- <!-- Minuten -->
953
- @if (view === 'minutes') {
954
- <div class="grid grid-cols-1 gap-3">
955
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
956
- @for (minute of minuteOptions; track minute) {
957
- <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)">
958
- {{ minute }}
959
- </div>
960
- }
961
- </div>
962
- </div>
963
- }
964
- </div>
965
- </ion-content>
966
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1$2.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"] }] }); }
929
+ 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>
930
+ <ion-toolbar>
931
+ <ion-title>Select {{view}}</ion-title>
932
+ <ion-buttons slot="end">
933
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
934
+ <fa-icon [icon]="faXmark"></fa-icon>
935
+ </spx-button>
936
+ </ion-buttons>
937
+ </ion-toolbar>
938
+ </ion-header>
939
+ <ion-content class="ion-padding bg-white">
940
+ <!-- Uren -->
941
+ <div class="custom-bg grid grid-cols-1 gap-3">
942
+ @if (view === 'hours') {
943
+ <div class="flex-wrap gap-2">
944
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
945
+ @for (hour of hourOptions; track hour) {
946
+ <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)">
947
+ {{ hour }}
948
+ </div>
949
+ }
950
+ </div>
951
+ </div>
952
+ }
953
+ <!-- Minuten -->
954
+ @if (view === 'minutes') {
955
+ <div class="grid grid-cols-1 gap-3">
956
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
957
+ @for (minute of minuteOptions; track minute) {
958
+ <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)">
959
+ {{ minute }}
960
+ </div>
961
+ }
962
+ </div>
963
+ </div>
964
+ }
965
+ </div>
966
+ </ion-content>
967
+ `, isInline: true, dependencies: [{ 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"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: 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"] }] }); }
967
968
  }
968
969
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
969
970
  type: Component,
@@ -971,49 +972,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
971
972
  selector: 'spx-input-time-modal',
972
973
  standalone: true,
973
974
  imports: [
974
- IonicModule,
975
+ FontAwesomeModule,
976
+ IonButtons,
977
+ IonContent,
978
+ IonHeader,
979
+ IonTitle,
980
+ IonToolbar,
975
981
  SpxButtonComponent,
976
- SpxDropdownComponent,
977
- FontAwesomeModule
978
982
  ],
979
- template: `<ion-header>
980
- <ion-toolbar>
981
- <ion-title>Select {{view}}</ion-title>
982
- <ion-buttons slot="end">
983
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
984
- <fa-icon [icon]="faXmark"></fa-icon>
985
- </spx-button>
986
- </ion-buttons>
987
- </ion-toolbar>
988
- </ion-header>
989
- <ion-content class="ion-padding bg-white">
990
- <!-- Uren -->
991
- <div class="custom-bg grid grid-cols-1 gap-3">
992
- @if (view === 'hours') {
993
- <div class="flex-wrap gap-2">
994
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
995
- @for (hour of hourOptions; track hour) {
996
- <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)">
997
- {{ hour }}
998
- </div>
999
- }
1000
- </div>
1001
- </div>
1002
- }
1003
- <!-- Minuten -->
1004
- @if (view === 'minutes') {
1005
- <div class="grid grid-cols-1 gap-3">
1006
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1007
- @for (minute of minuteOptions; track minute) {
1008
- <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)">
1009
- {{ minute }}
1010
- </div>
1011
- }
1012
- </div>
1013
- </div>
1014
- }
1015
- </div>
1016
- </ion-content>
983
+ template: `<ion-header>
984
+ <ion-toolbar>
985
+ <ion-title>Select {{view}}</ion-title>
986
+ <ion-buttons slot="end">
987
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
988
+ <fa-icon [icon]="faXmark"></fa-icon>
989
+ </spx-button>
990
+ </ion-buttons>
991
+ </ion-toolbar>
992
+ </ion-header>
993
+ <ion-content class="ion-padding bg-white">
994
+ <!-- Uren -->
995
+ <div class="custom-bg grid grid-cols-1 gap-3">
996
+ @if (view === 'hours') {
997
+ <div class="flex-wrap gap-2">
998
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
999
+ @for (hour of hourOptions; track hour) {
1000
+ <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)">
1001
+ {{ hour }}
1002
+ </div>
1003
+ }
1004
+ </div>
1005
+ </div>
1006
+ }
1007
+ <!-- Minuten -->
1008
+ @if (view === 'minutes') {
1009
+ <div class="grid grid-cols-1 gap-3">
1010
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1011
+ @for (minute of minuteOptions; track minute) {
1012
+ <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)">
1013
+ {{ minute }}
1014
+ </div>
1015
+ }
1016
+ </div>
1017
+ </div>
1018
+ }
1019
+ </div>
1020
+ </ion-content>
1017
1021
  `,
1018
1022
  }]
1019
1023
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { view: [{
@@ -1121,29 +1125,25 @@ class SpxInputTimeComponent {
1121
1125
  this.spxChange.emit(this.value);
1122
1126
  }
1123
1127
  }
1124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, deps: [{ token: i1$2.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
1125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTimeComponent, isStandalone: true, selector: "spx-input-time", 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">
1126
- <div class="flex items-center justify-around gap-3">
1127
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1128
- <div class="text-gray text-xl">:</div>
1129
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1130
- </div>
1131
- </div>`, isInline: true, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }] }); }
1128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, deps: [{ token: i1$3.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
1129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTimeComponent, isStandalone: true, selector: "spx-input-time", 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">
1130
+ <div class="flex items-center justify-around gap-3">
1131
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1132
+ <div class="text-gray text-xl">:</div>
1133
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1134
+ </div>
1135
+ </div>`, isInline: true, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }); }
1132
1136
  }
1133
1137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
1134
1138
  type: Component,
1135
- args: [{ selector: 'spx-input-time', standalone: true, imports: [
1136
- SpxButtonComponent,
1137
- SpxDropdownComponent,
1138
- IonicModule
1139
- ], template: `<div class="relative text-black">
1140
- <div class="flex items-center justify-around gap-3">
1141
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1142
- <div class="text-gray text-xl">:</div>
1143
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1144
- </div>
1139
+ args: [{ selector: 'spx-input-time', standalone: true, imports: [], template: `<div class="relative text-black">
1140
+ <div class="flex items-center justify-around gap-3">
1141
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1142
+ <div class="text-gray text-xl">:</div>
1143
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1144
+ </div>
1145
1145
  </div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
1146
- }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { spxName: [{
1146
+ }], ctorParameters: () => [{ type: i1$3.ModalController }], propDecorators: { spxName: [{
1147
1147
  type: Input
1148
1148
  }], spxAutofocus: [{
1149
1149
  type: Input
@@ -1355,14 +1355,14 @@ class SpxInputDateComponent {
1355
1355
  }
1356
1356
  }
1357
1357
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: { classPropertyName: "spxMax", publicName: "spxMax", isSignal: true, isRequired: true, transformFunction: null }, spxMin: { classPropertyName: "spxMin", publicName: "spxMin", isSignal: true, isRequired: true, transformFunction: null }, spxReadonly: { classPropertyName: "spxReadonly", publicName: "spxReadonly", isSignal: true, isRequired: false, transformFunction: null }, spxValidators: { classPropertyName: "spxValidators", publicName: "spxValidators", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, spxFocused: { classPropertyName: "spxFocused", publicName: "spxFocused", isSignal: true, isRequired: false, transformFunction: null }, spxSelectDay: { classPropertyName: "spxSelectDay", publicName: "spxSelectDay", isSignal: true, isRequired: false, transformFunction: null }, spxSelectMonth: { classPropertyName: "spxSelectMonth", publicName: "spxSelectMonth", isSignal: true, isRequired: false, transformFunction: null }, spxSuggestions: { classPropertyName: "spxSuggestions", publicName: "spxSuggestions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "yearInputComponent", first: true, predicate: stepType.years, descendants: true, isSignal: true }, { propertyName: "monthInputComponent", first: true, predicate: stepType.months, descendants: true, isSignal: true }, { propertyName: "dayInputComponent", first: true, predicate: stepType.days, descendants: true, isSignal: true }], ngImport: i0, template: "<div class='spx-input-date__controls'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</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"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1358
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: { classPropertyName: "spxMax", publicName: "spxMax", isSignal: true, isRequired: true, transformFunction: null }, spxMin: { classPropertyName: "spxMin", publicName: "spxMin", isSignal: true, isRequired: true, transformFunction: null }, spxReadonly: { classPropertyName: "spxReadonly", publicName: "spxReadonly", isSignal: true, isRequired: false, transformFunction: null }, spxValidators: { classPropertyName: "spxValidators", publicName: "spxValidators", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, spxFocused: { classPropertyName: "spxFocused", publicName: "spxFocused", isSignal: true, isRequired: false, transformFunction: null }, spxSelectDay: { classPropertyName: "spxSelectDay", publicName: "spxSelectDay", isSignal: true, isRequired: false, transformFunction: null }, spxSelectMonth: { classPropertyName: "spxSelectMonth", publicName: "spxSelectMonth", isSignal: true, isRequired: false, transformFunction: null }, spxSuggestions: { classPropertyName: "spxSuggestions", publicName: "spxSuggestions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "yearInputComponent", first: true, predicate: stepType.years, descendants: true, isSignal: true }, { propertyName: "monthInputComponent", first: true, predicate: stepType.months, descendants: true, isSignal: true }, { propertyName: "dayInputComponent", first: true, predicate: stepType.days, descendants: true, isSignal: true }], ngImport: i0, template: "<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth()) {\n <input #months\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay()) {\n <input #days\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n <div class='spx-input-date__control-label'>Days</div>\n }\n</div>\n<div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value) ||\n (selectedMonth() === valuePair.value) || \n (selectedDay() === valuePair.value)\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</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"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1359
1359
  }
1360
1360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
1361
1361
  type: Component,
1362
1362
  args: [{ selector: 'spx-input-date', standalone: true, imports: [
1363
1363
  SpxSuggestionComponent,
1364
1364
  FormsModule
1365
- ], template: "<div class='spx-input-date__controls'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</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"] }]
1365
+ ], template: "<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth()) {\n <input #months\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay()) {\n <input #days\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n <div class='spx-input-date__control-label'>Days</div>\n }\n</div>\n<div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value) ||\n (selectedMonth() === valuePair.value) || \n (selectedDay() === valuePair.value)\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</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"] }]
1366
1366
  }] });
1367
1367
 
1368
1368
  class SpxInputComponent {
@@ -1483,115 +1483,115 @@ class SpxInputComponent {
1483
1483
  useExisting: SpxInputComponent,
1484
1484
  multi: true
1485
1485
  }
1486
- ], 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
1487
- [spxFocused]="this.spxFocused"
1488
- [spxLabel]="this.spxLabel"
1489
- [spxReadonly]="this.spxReadonly"
1490
- [spxRequired]="this.spxRequired"
1491
- [spxValue]="this.value"
1492
- [spxShowHelp]="this.spxShowHelp"
1493
- [spxCompact]="this.spxCompact"
1494
- [spxShowClear]="this.spxShowClear"
1495
- [spxShowEdit]="this.spxShowEdit"
1496
- [spxShowLabel]="this.spxShowLabel"
1497
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1498
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1499
- (spxClear)="this.handleClear()"
1500
- (spxEdit)="this.handleEdit()"
1501
- (spxHelp)="this.handleHelp()"
1502
- (spxFocus)="this.setFocusIn()"
1503
- (spxFocusOut)="this.setFocusOut()"
1504
- (spxSearch)="this.handleSearch()">
1505
- <div controls>
1506
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1507
- <spx-input-text
1508
- (spxBlurFromChild)="this.handleBlur()"
1509
- (spxChange)="this.handleChange($event)"
1510
- (spxFocus)="this.handleFocus()"
1511
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1512
- [spxAutofocus]="this.spxAutofocus"
1513
- [spxCapitalize]="this.spxCapitalize"
1514
- [spxFocused]="this.spxFocused"
1515
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1516
- [spxName]="this.spxName"
1517
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1518
- [spxReadonly]="this.spxReadonly"
1519
- [spxSuggestions]="this.spxSuggestions"
1520
- [spxType]="this.spxType"
1521
- [spxValidators]="this.spxValidators"
1522
- [value]="this.value"
1523
- ></spx-input-text>
1524
- }
1525
- @if (this.spxType === 'date') {
1526
- <spx-input-date
1527
- (spxChange)="this.handleChange($event)"
1528
- (spxFocus)="this.handleFocus()"
1529
- [spxFocused]="this.spxFocused"
1530
- [spxMax]="this.spxMax!"
1531
- [spxMin]="this.spxMin!"
1532
- [spxReadonly]="this.spxReadonly"
1533
- [spxSelectDay]="this.spxSelectDay"
1534
- [spxSelectMonth]="this.spxSelectMonth"
1535
- [spxValidators]="this.spxValidators"
1536
- [(value)]="this.value"
1537
- ></spx-input-date>
1538
- }
1539
- @if (this.spxType === 'float') {
1540
- <spx-input-float
1541
- (spxChange)="this.handleChange($event)"
1542
- (spxFocus)="this.handleFocus()"
1543
- [spxAutofocus]="this.spxAutofocus"
1544
- [spxFocused]="this.spxFocused"
1545
- [spxName]="this.spxName"
1546
- [spxReadonly]="this.spxReadonly"
1547
- [spxStep]="this.spxStep"
1548
- [spxValidators]="this.spxValidators"
1549
- [value]="this.value"
1550
- ></spx-input-float>
1551
- }
1552
- @if (this.spxType === 'number') {
1553
- <spx-input-number
1554
- (spxChange)="this.handleChange($event)"
1555
- (spxFocus)="this.handleFocus()"
1556
- [spxAutofocus]="this.spxAutofocus"
1557
- [spxFocused]="this.spxFocused"
1558
- [spxInputMode]="this.spxInputMode"
1559
- [spxName]="this.spxName"
1560
- [spxReadonly]="this.spxReadonly"
1561
- [spxStep]="this.spxStep"
1562
- [spxValidators]="this.spxValidators"
1563
- [value]="this.value"
1564
- ></spx-input-number>
1565
- }
1566
- @if (this.spxType === 'radio') {
1567
- <spx-input-radio
1568
- #radioInput
1569
- (spxChange)="this.handleChange($event)"
1570
- [spxFocused]="this.spxFocused"
1571
- [spxName]="this.spxName"
1572
- [spxReadonly]="this.spxReadonly"
1573
- [spxShowLabel]="this.spxShowLabel"
1574
- [spxSuggestions]="this.spxSuggestions"
1575
- [spxValidators]="this.spxValidators"
1576
- [value]="this.value"
1577
- ></spx-input-radio>
1578
- }
1579
- @if (this.spxType === 'time') {
1580
- <spx-input-time
1581
- #timeInput
1582
- (spxChange)="this.handleChange($event)"
1583
- (spxFocus)="this.handleFocus()"
1584
- [spxFocused]="this.spxFocused"
1585
- [spxName]="this.spxName"
1586
- [spxReadonly]="this.spxReadonly"
1587
- [spxValidators]="this.spxValidators"
1588
- [value]="this.value"
1589
- ></spx-input-time>
1590
- }
1591
- </div>
1592
- <div validation-messages>
1593
- <ng-content></ng-content>
1594
- </div>
1486
+ ], 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
1487
+ [spxFocused]="this.spxFocused"
1488
+ [spxLabel]="this.spxLabel"
1489
+ [spxReadonly]="this.spxReadonly"
1490
+ [spxRequired]="this.spxRequired"
1491
+ [spxValue]="this.value"
1492
+ [spxShowHelp]="this.spxShowHelp"
1493
+ [spxCompact]="this.spxCompact"
1494
+ [spxShowClear]="this.spxShowClear"
1495
+ [spxShowEdit]="this.spxShowEdit"
1496
+ [spxShowLabel]="this.spxShowLabel"
1497
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1498
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1499
+ (spxClear)="this.handleClear()"
1500
+ (spxEdit)="this.handleEdit()"
1501
+ (spxHelp)="this.handleHelp()"
1502
+ (spxFocus)="this.setFocusIn()"
1503
+ (spxFocusOut)="this.setFocusOut()"
1504
+ (spxSearch)="this.handleSearch()">
1505
+ <div controls>
1506
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1507
+ <spx-input-text
1508
+ (spxBlurFromChild)="this.handleBlur()"
1509
+ (spxChange)="this.handleChange($event)"
1510
+ (spxFocus)="this.handleFocus()"
1511
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1512
+ [spxAutofocus]="this.spxAutofocus"
1513
+ [spxCapitalize]="this.spxCapitalize"
1514
+ [spxFocused]="this.spxFocused"
1515
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1516
+ [spxName]="this.spxName"
1517
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1518
+ [spxReadonly]="this.spxReadonly"
1519
+ [spxSuggestions]="this.spxSuggestions"
1520
+ [spxType]="this.spxType"
1521
+ [spxValidators]="this.spxValidators"
1522
+ [value]="this.value"
1523
+ ></spx-input-text>
1524
+ }
1525
+ @if (this.spxType === 'date') {
1526
+ <spx-input-date
1527
+ (spxChange)="this.handleChange($event)"
1528
+ (spxFocus)="this.handleFocus()"
1529
+ [spxFocused]="this.spxFocused"
1530
+ [spxMax]="this.spxMax!"
1531
+ [spxMin]="this.spxMin!"
1532
+ [spxReadonly]="this.spxReadonly"
1533
+ [spxSelectDay]="this.spxSelectDay"
1534
+ [spxSelectMonth]="this.spxSelectMonth"
1535
+ [spxValidators]="this.spxValidators"
1536
+ [(value)]="this.value"
1537
+ ></spx-input-date>
1538
+ }
1539
+ @if (this.spxType === 'float') {
1540
+ <spx-input-float
1541
+ (spxChange)="this.handleChange($event)"
1542
+ (spxFocus)="this.handleFocus()"
1543
+ [spxAutofocus]="this.spxAutofocus"
1544
+ [spxFocused]="this.spxFocused"
1545
+ [spxName]="this.spxName"
1546
+ [spxReadonly]="this.spxReadonly"
1547
+ [spxStep]="this.spxStep"
1548
+ [spxValidators]="this.spxValidators"
1549
+ [value]="this.value"
1550
+ ></spx-input-float>
1551
+ }
1552
+ @if (this.spxType === 'number') {
1553
+ <spx-input-number
1554
+ (spxChange)="this.handleChange($event)"
1555
+ (spxFocus)="this.handleFocus()"
1556
+ [spxAutofocus]="this.spxAutofocus"
1557
+ [spxFocused]="this.spxFocused"
1558
+ [spxInputMode]="this.spxInputMode"
1559
+ [spxName]="this.spxName"
1560
+ [spxReadonly]="this.spxReadonly"
1561
+ [spxStep]="this.spxStep"
1562
+ [spxValidators]="this.spxValidators"
1563
+ [value]="this.value"
1564
+ ></spx-input-number>
1565
+ }
1566
+ @if (this.spxType === 'radio') {
1567
+ <spx-input-radio
1568
+ #radioInput
1569
+ (spxChange)="this.handleChange($event)"
1570
+ [spxFocused]="this.spxFocused"
1571
+ [spxName]="this.spxName"
1572
+ [spxReadonly]="this.spxReadonly"
1573
+ [spxShowLabel]="this.spxShowLabel"
1574
+ [spxSuggestions]="this.spxSuggestions"
1575
+ [spxValidators]="this.spxValidators"
1576
+ [value]="this.value"
1577
+ ></spx-input-radio>
1578
+ }
1579
+ @if (this.spxType === 'time') {
1580
+ <spx-input-time
1581
+ #timeInput
1582
+ (spxChange)="this.handleChange($event)"
1583
+ (spxFocus)="this.handleFocus()"
1584
+ [spxFocused]="this.spxFocused"
1585
+ [spxName]="this.spxName"
1586
+ [spxReadonly]="this.spxReadonly"
1587
+ [spxValidators]="this.spxValidators"
1588
+ [value]="this.value"
1589
+ ></spx-input-time>
1590
+ }
1591
+ </div>
1592
+ <div validation-messages>
1593
+ <ng-content></ng-content>
1594
+ </div>
1595
1595
  </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", "spxReadonly", "spxValidators", "value", "spxFocused", "spxSelectDay", "spxSelectMonth", "spxSuggestions"], outputs: ["valueChange", "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"] }] }); }
1596
1596
  }
1597
1597
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
@@ -1618,115 +1618,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1618
1618
  multi: true
1619
1619
  }
1620
1620
  ],
1621
- template: `<spx-input-box
1622
- [spxFocused]="this.spxFocused"
1623
- [spxLabel]="this.spxLabel"
1624
- [spxReadonly]="this.spxReadonly"
1625
- [spxRequired]="this.spxRequired"
1626
- [spxValue]="this.value"
1627
- [spxShowHelp]="this.spxShowHelp"
1628
- [spxCompact]="this.spxCompact"
1629
- [spxShowClear]="this.spxShowClear"
1630
- [spxShowEdit]="this.spxShowEdit"
1631
- [spxShowLabel]="this.spxShowLabel"
1632
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1633
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1634
- (spxClear)="this.handleClear()"
1635
- (spxEdit)="this.handleEdit()"
1636
- (spxHelp)="this.handleHelp()"
1637
- (spxFocus)="this.setFocusIn()"
1638
- (spxFocusOut)="this.setFocusOut()"
1639
- (spxSearch)="this.handleSearch()">
1640
- <div controls>
1641
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1642
- <spx-input-text
1643
- (spxBlurFromChild)="this.handleBlur()"
1644
- (spxChange)="this.handleChange($event)"
1645
- (spxFocus)="this.handleFocus()"
1646
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1647
- [spxAutofocus]="this.spxAutofocus"
1648
- [spxCapitalize]="this.spxCapitalize"
1649
- [spxFocused]="this.spxFocused"
1650
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1651
- [spxName]="this.spxName"
1652
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1653
- [spxReadonly]="this.spxReadonly"
1654
- [spxSuggestions]="this.spxSuggestions"
1655
- [spxType]="this.spxType"
1656
- [spxValidators]="this.spxValidators"
1657
- [value]="this.value"
1658
- ></spx-input-text>
1659
- }
1660
- @if (this.spxType === 'date') {
1661
- <spx-input-date
1662
- (spxChange)="this.handleChange($event)"
1663
- (spxFocus)="this.handleFocus()"
1664
- [spxFocused]="this.spxFocused"
1665
- [spxMax]="this.spxMax!"
1666
- [spxMin]="this.spxMin!"
1667
- [spxReadonly]="this.spxReadonly"
1668
- [spxSelectDay]="this.spxSelectDay"
1669
- [spxSelectMonth]="this.spxSelectMonth"
1670
- [spxValidators]="this.spxValidators"
1671
- [(value)]="this.value"
1672
- ></spx-input-date>
1673
- }
1674
- @if (this.spxType === 'float') {
1675
- <spx-input-float
1676
- (spxChange)="this.handleChange($event)"
1677
- (spxFocus)="this.handleFocus()"
1678
- [spxAutofocus]="this.spxAutofocus"
1679
- [spxFocused]="this.spxFocused"
1680
- [spxName]="this.spxName"
1681
- [spxReadonly]="this.spxReadonly"
1682
- [spxStep]="this.spxStep"
1683
- [spxValidators]="this.spxValidators"
1684
- [value]="this.value"
1685
- ></spx-input-float>
1686
- }
1687
- @if (this.spxType === 'number') {
1688
- <spx-input-number
1689
- (spxChange)="this.handleChange($event)"
1690
- (spxFocus)="this.handleFocus()"
1691
- [spxAutofocus]="this.spxAutofocus"
1692
- [spxFocused]="this.spxFocused"
1693
- [spxInputMode]="this.spxInputMode"
1694
- [spxName]="this.spxName"
1695
- [spxReadonly]="this.spxReadonly"
1696
- [spxStep]="this.spxStep"
1697
- [spxValidators]="this.spxValidators"
1698
- [value]="this.value"
1699
- ></spx-input-number>
1700
- }
1701
- @if (this.spxType === 'radio') {
1702
- <spx-input-radio
1703
- #radioInput
1704
- (spxChange)="this.handleChange($event)"
1705
- [spxFocused]="this.spxFocused"
1706
- [spxName]="this.spxName"
1707
- [spxReadonly]="this.spxReadonly"
1708
- [spxShowLabel]="this.spxShowLabel"
1709
- [spxSuggestions]="this.spxSuggestions"
1710
- [spxValidators]="this.spxValidators"
1711
- [value]="this.value"
1712
- ></spx-input-radio>
1713
- }
1714
- @if (this.spxType === 'time') {
1715
- <spx-input-time
1716
- #timeInput
1717
- (spxChange)="this.handleChange($event)"
1718
- (spxFocus)="this.handleFocus()"
1719
- [spxFocused]="this.spxFocused"
1720
- [spxName]="this.spxName"
1721
- [spxReadonly]="this.spxReadonly"
1722
- [spxValidators]="this.spxValidators"
1723
- [value]="this.value"
1724
- ></spx-input-time>
1725
- }
1726
- </div>
1727
- <div validation-messages>
1728
- <ng-content></ng-content>
1729
- </div>
1621
+ template: `<spx-input-box
1622
+ [spxFocused]="this.spxFocused"
1623
+ [spxLabel]="this.spxLabel"
1624
+ [spxReadonly]="this.spxReadonly"
1625
+ [spxRequired]="this.spxRequired"
1626
+ [spxValue]="this.value"
1627
+ [spxShowHelp]="this.spxShowHelp"
1628
+ [spxCompact]="this.spxCompact"
1629
+ [spxShowClear]="this.spxShowClear"
1630
+ [spxShowEdit]="this.spxShowEdit"
1631
+ [spxShowLabel]="this.spxShowLabel"
1632
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1633
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1634
+ (spxClear)="this.handleClear()"
1635
+ (spxEdit)="this.handleEdit()"
1636
+ (spxHelp)="this.handleHelp()"
1637
+ (spxFocus)="this.setFocusIn()"
1638
+ (spxFocusOut)="this.setFocusOut()"
1639
+ (spxSearch)="this.handleSearch()">
1640
+ <div controls>
1641
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1642
+ <spx-input-text
1643
+ (spxBlurFromChild)="this.handleBlur()"
1644
+ (spxChange)="this.handleChange($event)"
1645
+ (spxFocus)="this.handleFocus()"
1646
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1647
+ [spxAutofocus]="this.spxAutofocus"
1648
+ [spxCapitalize]="this.spxCapitalize"
1649
+ [spxFocused]="this.spxFocused"
1650
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1651
+ [spxName]="this.spxName"
1652
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1653
+ [spxReadonly]="this.spxReadonly"
1654
+ [spxSuggestions]="this.spxSuggestions"
1655
+ [spxType]="this.spxType"
1656
+ [spxValidators]="this.spxValidators"
1657
+ [value]="this.value"
1658
+ ></spx-input-text>
1659
+ }
1660
+ @if (this.spxType === 'date') {
1661
+ <spx-input-date
1662
+ (spxChange)="this.handleChange($event)"
1663
+ (spxFocus)="this.handleFocus()"
1664
+ [spxFocused]="this.spxFocused"
1665
+ [spxMax]="this.spxMax!"
1666
+ [spxMin]="this.spxMin!"
1667
+ [spxReadonly]="this.spxReadonly"
1668
+ [spxSelectDay]="this.spxSelectDay"
1669
+ [spxSelectMonth]="this.spxSelectMonth"
1670
+ [spxValidators]="this.spxValidators"
1671
+ [(value)]="this.value"
1672
+ ></spx-input-date>
1673
+ }
1674
+ @if (this.spxType === 'float') {
1675
+ <spx-input-float
1676
+ (spxChange)="this.handleChange($event)"
1677
+ (spxFocus)="this.handleFocus()"
1678
+ [spxAutofocus]="this.spxAutofocus"
1679
+ [spxFocused]="this.spxFocused"
1680
+ [spxName]="this.spxName"
1681
+ [spxReadonly]="this.spxReadonly"
1682
+ [spxStep]="this.spxStep"
1683
+ [spxValidators]="this.spxValidators"
1684
+ [value]="this.value"
1685
+ ></spx-input-float>
1686
+ }
1687
+ @if (this.spxType === 'number') {
1688
+ <spx-input-number
1689
+ (spxChange)="this.handleChange($event)"
1690
+ (spxFocus)="this.handleFocus()"
1691
+ [spxAutofocus]="this.spxAutofocus"
1692
+ [spxFocused]="this.spxFocused"
1693
+ [spxInputMode]="this.spxInputMode"
1694
+ [spxName]="this.spxName"
1695
+ [spxReadonly]="this.spxReadonly"
1696
+ [spxStep]="this.spxStep"
1697
+ [spxValidators]="this.spxValidators"
1698
+ [value]="this.value"
1699
+ ></spx-input-number>
1700
+ }
1701
+ @if (this.spxType === 'radio') {
1702
+ <spx-input-radio
1703
+ #radioInput
1704
+ (spxChange)="this.handleChange($event)"
1705
+ [spxFocused]="this.spxFocused"
1706
+ [spxName]="this.spxName"
1707
+ [spxReadonly]="this.spxReadonly"
1708
+ [spxShowLabel]="this.spxShowLabel"
1709
+ [spxSuggestions]="this.spxSuggestions"
1710
+ [spxValidators]="this.spxValidators"
1711
+ [value]="this.value"
1712
+ ></spx-input-radio>
1713
+ }
1714
+ @if (this.spxType === 'time') {
1715
+ <spx-input-time
1716
+ #timeInput
1717
+ (spxChange)="this.handleChange($event)"
1718
+ (spxFocus)="this.handleFocus()"
1719
+ [spxFocused]="this.spxFocused"
1720
+ [spxName]="this.spxName"
1721
+ [spxReadonly]="this.spxReadonly"
1722
+ [spxValidators]="this.spxValidators"
1723
+ [value]="this.value"
1724
+ ></spx-input-time>
1725
+ }
1726
+ </div>
1727
+ <div validation-messages>
1728
+ <ng-content></ng-content>
1729
+ </div>
1730
1730
  </spx-input-box>`,
1731
1731
  }]
1732
1732
  }], propDecorators: { spxLabel: [{