@softpak/components 18.6.4 → 18.6.5

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 (155) 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 +59 -59
  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 +23 -23
  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 +77 -77
  62. package/esm2022/spx-inputs/spx-input-time.component.mjs +13 -13
  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 +58 -58
  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 +22 -22
  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 +648 -648
  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 +46 -46
@@ -72,80 +72,80 @@ class SpxInputBoxComponent {
72
72
  }
73
73
  }
74
74
  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>
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>
149
149
  }`, 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
150
  }
151
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
@@ -157,80 +157,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
157
  SpxButtonComponent,
158
158
  FontAwesomeModule
159
159
  ],
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>
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>
234
234
  }`,
235
235
  }]
236
236
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
@@ -319,22 +319,22 @@ class SpxDropdownComponent {
319
319
  this.spxSelect.emit(valuePair);
320
320
  }
321
321
  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>
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>
338
338
  </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
339
  }
340
340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, decorators: [{
@@ -345,22 +345,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
345
345
  imports: [
346
346
  SpxButtonComponent
347
347
  ],
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>
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>
364
364
  </div>`,
365
365
  }]
366
366
  }], propDecorators: { spxSuggestions: [{
@@ -415,37 +415,37 @@ class SpxInputTextComponent {
415
415
  this.spxFocused = true;
416
416
  }
417
417
  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
- }
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
+ }
449
449
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
450
450
  }
451
451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, decorators: [{
@@ -456,37 +456,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
456
456
  imports: [
457
457
  SpxDropdownComponent
458
458
  ],
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
- }
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
+ }
490
490
  </div>`,
491
491
  }]
492
492
  }], propDecorators: { spxName: [{
@@ -595,62 +595,62 @@ class SpxInputFloatComponent {
595
595
  return /^[+-]?\d+(\.\d+)?$/.test(value);
596
596
  }
597
597
  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]*'" />
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]*'" />
623
623
  </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
624
  }
625
625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
626
626
  type: Component,
627
627
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
628
628
  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]*'" />
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]*'" />
654
654
  </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
655
  }], propDecorators: { spxName: [{
656
656
  type: Input
@@ -708,36 +708,36 @@ class SpxInputNumberComponent {
708
708
  this.spxChange.emit(this.value);
709
709
  }
710
710
  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)" />
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)" />
724
724
  </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
725
  }
726
726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
727
727
  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)" />
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)" />
741
741
  </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
742
  }], propDecorators: { spxName: [{
743
743
  type: Input
@@ -834,17 +834,17 @@ class SpxInputRadioComponent {
834
834
  });
835
835
  }
836
836
  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
- }
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
+ }
848
848
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
849
849
  }
850
850
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
@@ -855,17 +855,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
855
855
  imports: [
856
856
  SpxSuggestionComponent
857
857
  ],
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
- }
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
+ }
869
869
  </div>`,
870
870
  }]
871
871
  }], propDecorators: { spxName: [{
@@ -925,44 +925,44 @@ class SpxInputTimeModalComponent {
925
925
  this.modalController.dismiss(value);
926
926
  }
927
927
  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>
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
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"] }] }); }
967
967
  }
968
968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
@@ -976,44 +976,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
976
976
  SpxDropdownComponent,
977
977
  FontAwesomeModule
978
978
  ],
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>
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>
1017
1017
  `,
1018
1018
  }]
1019
1019
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { view: [{
@@ -1122,12 +1122,12 @@ class SpxInputTimeComponent {
1122
1122
  }
1123
1123
  }
1124
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>
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
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 }] }); }
1132
1132
  }
1133
1133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
@@ -1136,12 +1136,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1136
1136
  SpxButtonComponent,
1137
1137
  SpxDropdownComponent,
1138
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
+ ], 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
1146
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { spxName: [{
1147
1147
  type: Input
@@ -1322,14 +1322,14 @@ class SpxInputDateComponent {
1322
1322
  }
1323
1323
  }
1324
1324
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1325
- 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" }, ngImport: i0, template: "<div class='spx-input-date__controls'>\r\n <input\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, '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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, '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"] }] }); }
1325
+ 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" }, ngImport: i0, template: "<div class='spx-input-date__controls'>\n <input\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\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\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, '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\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, '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"] }] }); }
1326
1326
  }
1327
1327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
1328
1328
  type: Component,
1329
1329
  args: [{ selector: 'spx-input-date', standalone: true, imports: [
1330
1330
  SpxSuggestionComponent,
1331
1331
  FormsModule
1332
- ], template: "<div class='spx-input-date__controls'>\r\n <input\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, '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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, '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"] }]
1332
+ ], template: "<div class='spx-input-date__controls'>\n <input\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\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\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, '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\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, '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"] }]
1333
1333
  }] });
1334
1334
 
1335
1335
  class SpxInputComponent {
@@ -1450,115 +1450,115 @@ class SpxInputComponent {
1450
1450
  useExisting: SpxInputComponent,
1451
1451
  multi: true
1452
1452
  }
1453
- ], 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
1454
- [spxFocused]="this.spxFocused"
1455
- [spxLabel]="this.spxLabel"
1456
- [spxReadonly]="this.spxReadonly"
1457
- [spxRequired]="this.spxRequired"
1458
- [spxValue]="this.value"
1459
- [spxShowHelp]="this.spxShowHelp"
1460
- [spxCompact]="this.spxCompact"
1461
- [spxShowClear]="this.spxShowClear"
1462
- [spxShowEdit]="this.spxShowEdit"
1463
- [spxShowLabel]="this.spxShowLabel"
1464
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1465
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1466
- (spxClear)="this.handleClear()"
1467
- (spxEdit)="this.handleEdit()"
1468
- (spxHelp)="this.handleHelp()"
1469
- (spxFocus)="this.setFocusIn()"
1470
- (spxFocusOut)="this.setFocusOut()"
1471
- (spxSearch)="this.handleSearch()">
1472
- <div controls>
1473
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1474
- <spx-input-text
1475
- (spxBlurFromChild)="this.handleBlur()"
1476
- (spxChange)="this.handleChange($event)"
1477
- (spxFocus)="this.handleFocus()"
1478
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1479
- [spxAutofocus]="this.spxAutofocus"
1480
- [spxCapitalize]="this.spxCapitalize"
1481
- [spxFocused]="this.spxFocused"
1482
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1483
- [spxName]="this.spxName"
1484
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1485
- [spxReadonly]="this.spxReadonly"
1486
- [spxSuggestions]="this.spxSuggestions"
1487
- [spxType]="this.spxType"
1488
- [spxValidators]="this.spxValidators"
1489
- [value]="this.value"
1490
- ></spx-input-text>
1491
- }
1492
- @if (this.spxType === 'date') {
1493
- <spx-input-date
1494
- (spxChange)="this.handleChange($event)"
1495
- (spxFocus)="this.handleFocus()"
1496
- [spxFocused]="this.spxFocused"
1497
- [spxMax]="this.spxMax!"
1498
- [spxMin]="this.spxMin!"
1499
- [spxReadonly]="this.spxReadonly"
1500
- [spxSelectDay]="this.spxSelectDay"
1501
- [spxSelectMonth]="this.spxSelectMonth"
1502
- [spxValidators]="this.spxValidators"
1503
- [(value)]="this.value"
1504
- ></spx-input-date>
1505
- }
1506
- @if (this.spxType === 'float') {
1507
- <spx-input-float
1508
- (spxChange)="this.handleChange($event)"
1509
- (spxFocus)="this.handleFocus()"
1510
- [spxAutofocus]="this.spxAutofocus"
1511
- [spxFocused]="this.spxFocused"
1512
- [spxName]="this.spxName"
1513
- [spxReadonly]="this.spxReadonly"
1514
- [spxStep]="this.spxStep"
1515
- [spxValidators]="this.spxValidators"
1516
- [value]="this.value"
1517
- ></spx-input-float>
1518
- }
1519
- @if (this.spxType === 'number') {
1520
- <spx-input-number
1521
- (spxChange)="this.handleChange($event)"
1522
- (spxFocus)="this.handleFocus()"
1523
- [spxAutofocus]="this.spxAutofocus"
1524
- [spxFocused]="this.spxFocused"
1525
- [spxInputMode]="this.spxInputMode"
1526
- [spxName]="this.spxName"
1527
- [spxReadonly]="this.spxReadonly"
1528
- [spxStep]="this.spxStep"
1529
- [spxValidators]="this.spxValidators"
1530
- [value]="this.value"
1531
- ></spx-input-number>
1532
- }
1533
- @if (this.spxType === 'radio') {
1534
- <spx-input-radio
1535
- #radioInput
1536
- (spxChange)="this.handleChange($event)"
1537
- [spxFocused]="this.spxFocused"
1538
- [spxName]="this.spxName"
1539
- [spxReadonly]="this.spxReadonly"
1540
- [spxShowLabel]="this.spxShowLabel"
1541
- [spxSuggestions]="this.spxSuggestions"
1542
- [spxValidators]="this.spxValidators"
1543
- [value]="this.value"
1544
- ></spx-input-radio>
1545
- }
1546
- @if (this.spxType === 'time') {
1547
- <spx-input-time
1548
- #timeInput
1549
- (spxChange)="this.handleChange($event)"
1550
- (spxFocus)="this.handleFocus()"
1551
- [spxFocused]="this.spxFocused"
1552
- [spxName]="this.spxName"
1553
- [spxReadonly]="this.spxReadonly"
1554
- [spxValidators]="this.spxValidators"
1555
- [value]="this.value"
1556
- ></spx-input-time>
1557
- }
1558
- </div>
1559
- <div validation-messages>
1560
- <ng-content></ng-content>
1561
- </div>
1453
+ ], 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
1454
+ [spxFocused]="this.spxFocused"
1455
+ [spxLabel]="this.spxLabel"
1456
+ [spxReadonly]="this.spxReadonly"
1457
+ [spxRequired]="this.spxRequired"
1458
+ [spxValue]="this.value"
1459
+ [spxShowHelp]="this.spxShowHelp"
1460
+ [spxCompact]="this.spxCompact"
1461
+ [spxShowClear]="this.spxShowClear"
1462
+ [spxShowEdit]="this.spxShowEdit"
1463
+ [spxShowLabel]="this.spxShowLabel"
1464
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1465
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1466
+ (spxClear)="this.handleClear()"
1467
+ (spxEdit)="this.handleEdit()"
1468
+ (spxHelp)="this.handleHelp()"
1469
+ (spxFocus)="this.setFocusIn()"
1470
+ (spxFocusOut)="this.setFocusOut()"
1471
+ (spxSearch)="this.handleSearch()">
1472
+ <div controls>
1473
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1474
+ <spx-input-text
1475
+ (spxBlurFromChild)="this.handleBlur()"
1476
+ (spxChange)="this.handleChange($event)"
1477
+ (spxFocus)="this.handleFocus()"
1478
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1479
+ [spxAutofocus]="this.spxAutofocus"
1480
+ [spxCapitalize]="this.spxCapitalize"
1481
+ [spxFocused]="this.spxFocused"
1482
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1483
+ [spxName]="this.spxName"
1484
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1485
+ [spxReadonly]="this.spxReadonly"
1486
+ [spxSuggestions]="this.spxSuggestions"
1487
+ [spxType]="this.spxType"
1488
+ [spxValidators]="this.spxValidators"
1489
+ [value]="this.value"
1490
+ ></spx-input-text>
1491
+ }
1492
+ @if (this.spxType === 'date') {
1493
+ <spx-input-date
1494
+ (spxChange)="this.handleChange($event)"
1495
+ (spxFocus)="this.handleFocus()"
1496
+ [spxFocused]="this.spxFocused"
1497
+ [spxMax]="this.spxMax!"
1498
+ [spxMin]="this.spxMin!"
1499
+ [spxReadonly]="this.spxReadonly"
1500
+ [spxSelectDay]="this.spxSelectDay"
1501
+ [spxSelectMonth]="this.spxSelectMonth"
1502
+ [spxValidators]="this.spxValidators"
1503
+ [(value)]="this.value"
1504
+ ></spx-input-date>
1505
+ }
1506
+ @if (this.spxType === 'float') {
1507
+ <spx-input-float
1508
+ (spxChange)="this.handleChange($event)"
1509
+ (spxFocus)="this.handleFocus()"
1510
+ [spxAutofocus]="this.spxAutofocus"
1511
+ [spxFocused]="this.spxFocused"
1512
+ [spxName]="this.spxName"
1513
+ [spxReadonly]="this.spxReadonly"
1514
+ [spxStep]="this.spxStep"
1515
+ [spxValidators]="this.spxValidators"
1516
+ [value]="this.value"
1517
+ ></spx-input-float>
1518
+ }
1519
+ @if (this.spxType === 'number') {
1520
+ <spx-input-number
1521
+ (spxChange)="this.handleChange($event)"
1522
+ (spxFocus)="this.handleFocus()"
1523
+ [spxAutofocus]="this.spxAutofocus"
1524
+ [spxFocused]="this.spxFocused"
1525
+ [spxInputMode]="this.spxInputMode"
1526
+ [spxName]="this.spxName"
1527
+ [spxReadonly]="this.spxReadonly"
1528
+ [spxStep]="this.spxStep"
1529
+ [spxValidators]="this.spxValidators"
1530
+ [value]="this.value"
1531
+ ></spx-input-number>
1532
+ }
1533
+ @if (this.spxType === 'radio') {
1534
+ <spx-input-radio
1535
+ #radioInput
1536
+ (spxChange)="this.handleChange($event)"
1537
+ [spxFocused]="this.spxFocused"
1538
+ [spxName]="this.spxName"
1539
+ [spxReadonly]="this.spxReadonly"
1540
+ [spxShowLabel]="this.spxShowLabel"
1541
+ [spxSuggestions]="this.spxSuggestions"
1542
+ [spxValidators]="this.spxValidators"
1543
+ [value]="this.value"
1544
+ ></spx-input-radio>
1545
+ }
1546
+ @if (this.spxType === 'time') {
1547
+ <spx-input-time
1548
+ #timeInput
1549
+ (spxChange)="this.handleChange($event)"
1550
+ (spxFocus)="this.handleFocus()"
1551
+ [spxFocused]="this.spxFocused"
1552
+ [spxName]="this.spxName"
1553
+ [spxReadonly]="this.spxReadonly"
1554
+ [spxValidators]="this.spxValidators"
1555
+ [value]="this.value"
1556
+ ></spx-input-time>
1557
+ }
1558
+ </div>
1559
+ <div validation-messages>
1560
+ <ng-content></ng-content>
1561
+ </div>
1562
1562
  </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"] }] }); }
1563
1563
  }
1564
1564
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
@@ -1585,115 +1585,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1585
1585
  multi: true
1586
1586
  }
1587
1587
  ],
1588
- template: `<spx-input-box
1589
- [spxFocused]="this.spxFocused"
1590
- [spxLabel]="this.spxLabel"
1591
- [spxReadonly]="this.spxReadonly"
1592
- [spxRequired]="this.spxRequired"
1593
- [spxValue]="this.value"
1594
- [spxShowHelp]="this.spxShowHelp"
1595
- [spxCompact]="this.spxCompact"
1596
- [spxShowClear]="this.spxShowClear"
1597
- [spxShowEdit]="this.spxShowEdit"
1598
- [spxShowLabel]="this.spxShowLabel"
1599
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1600
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1601
- (spxClear)="this.handleClear()"
1602
- (spxEdit)="this.handleEdit()"
1603
- (spxHelp)="this.handleHelp()"
1604
- (spxFocus)="this.setFocusIn()"
1605
- (spxFocusOut)="this.setFocusOut()"
1606
- (spxSearch)="this.handleSearch()">
1607
- <div controls>
1608
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1609
- <spx-input-text
1610
- (spxBlurFromChild)="this.handleBlur()"
1611
- (spxChange)="this.handleChange($event)"
1612
- (spxFocus)="this.handleFocus()"
1613
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1614
- [spxAutofocus]="this.spxAutofocus"
1615
- [spxCapitalize]="this.spxCapitalize"
1616
- [spxFocused]="this.spxFocused"
1617
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1618
- [spxName]="this.spxName"
1619
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1620
- [spxReadonly]="this.spxReadonly"
1621
- [spxSuggestions]="this.spxSuggestions"
1622
- [spxType]="this.spxType"
1623
- [spxValidators]="this.spxValidators"
1624
- [value]="this.value"
1625
- ></spx-input-text>
1626
- }
1627
- @if (this.spxType === 'date') {
1628
- <spx-input-date
1629
- (spxChange)="this.handleChange($event)"
1630
- (spxFocus)="this.handleFocus()"
1631
- [spxFocused]="this.spxFocused"
1632
- [spxMax]="this.spxMax!"
1633
- [spxMin]="this.spxMin!"
1634
- [spxReadonly]="this.spxReadonly"
1635
- [spxSelectDay]="this.spxSelectDay"
1636
- [spxSelectMonth]="this.spxSelectMonth"
1637
- [spxValidators]="this.spxValidators"
1638
- [(value)]="this.value"
1639
- ></spx-input-date>
1640
- }
1641
- @if (this.spxType === 'float') {
1642
- <spx-input-float
1643
- (spxChange)="this.handleChange($event)"
1644
- (spxFocus)="this.handleFocus()"
1645
- [spxAutofocus]="this.spxAutofocus"
1646
- [spxFocused]="this.spxFocused"
1647
- [spxName]="this.spxName"
1648
- [spxReadonly]="this.spxReadonly"
1649
- [spxStep]="this.spxStep"
1650
- [spxValidators]="this.spxValidators"
1651
- [value]="this.value"
1652
- ></spx-input-float>
1653
- }
1654
- @if (this.spxType === 'number') {
1655
- <spx-input-number
1656
- (spxChange)="this.handleChange($event)"
1657
- (spxFocus)="this.handleFocus()"
1658
- [spxAutofocus]="this.spxAutofocus"
1659
- [spxFocused]="this.spxFocused"
1660
- [spxInputMode]="this.spxInputMode"
1661
- [spxName]="this.spxName"
1662
- [spxReadonly]="this.spxReadonly"
1663
- [spxStep]="this.spxStep"
1664
- [spxValidators]="this.spxValidators"
1665
- [value]="this.value"
1666
- ></spx-input-number>
1667
- }
1668
- @if (this.spxType === 'radio') {
1669
- <spx-input-radio
1670
- #radioInput
1671
- (spxChange)="this.handleChange($event)"
1672
- [spxFocused]="this.spxFocused"
1673
- [spxName]="this.spxName"
1674
- [spxReadonly]="this.spxReadonly"
1675
- [spxShowLabel]="this.spxShowLabel"
1676
- [spxSuggestions]="this.spxSuggestions"
1677
- [spxValidators]="this.spxValidators"
1678
- [value]="this.value"
1679
- ></spx-input-radio>
1680
- }
1681
- @if (this.spxType === 'time') {
1682
- <spx-input-time
1683
- #timeInput
1684
- (spxChange)="this.handleChange($event)"
1685
- (spxFocus)="this.handleFocus()"
1686
- [spxFocused]="this.spxFocused"
1687
- [spxName]="this.spxName"
1688
- [spxReadonly]="this.spxReadonly"
1689
- [spxValidators]="this.spxValidators"
1690
- [value]="this.value"
1691
- ></spx-input-time>
1692
- }
1693
- </div>
1694
- <div validation-messages>
1695
- <ng-content></ng-content>
1696
- </div>
1588
+ template: `<spx-input-box
1589
+ [spxFocused]="this.spxFocused"
1590
+ [spxLabel]="this.spxLabel"
1591
+ [spxReadonly]="this.spxReadonly"
1592
+ [spxRequired]="this.spxRequired"
1593
+ [spxValue]="this.value"
1594
+ [spxShowHelp]="this.spxShowHelp"
1595
+ [spxCompact]="this.spxCompact"
1596
+ [spxShowClear]="this.spxShowClear"
1597
+ [spxShowEdit]="this.spxShowEdit"
1598
+ [spxShowLabel]="this.spxShowLabel"
1599
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1600
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1601
+ (spxClear)="this.handleClear()"
1602
+ (spxEdit)="this.handleEdit()"
1603
+ (spxHelp)="this.handleHelp()"
1604
+ (spxFocus)="this.setFocusIn()"
1605
+ (spxFocusOut)="this.setFocusOut()"
1606
+ (spxSearch)="this.handleSearch()">
1607
+ <div controls>
1608
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1609
+ <spx-input-text
1610
+ (spxBlurFromChild)="this.handleBlur()"
1611
+ (spxChange)="this.handleChange($event)"
1612
+ (spxFocus)="this.handleFocus()"
1613
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1614
+ [spxAutofocus]="this.spxAutofocus"
1615
+ [spxCapitalize]="this.spxCapitalize"
1616
+ [spxFocused]="this.spxFocused"
1617
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1618
+ [spxName]="this.spxName"
1619
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1620
+ [spxReadonly]="this.spxReadonly"
1621
+ [spxSuggestions]="this.spxSuggestions"
1622
+ [spxType]="this.spxType"
1623
+ [spxValidators]="this.spxValidators"
1624
+ [value]="this.value"
1625
+ ></spx-input-text>
1626
+ }
1627
+ @if (this.spxType === 'date') {
1628
+ <spx-input-date
1629
+ (spxChange)="this.handleChange($event)"
1630
+ (spxFocus)="this.handleFocus()"
1631
+ [spxFocused]="this.spxFocused"
1632
+ [spxMax]="this.spxMax!"
1633
+ [spxMin]="this.spxMin!"
1634
+ [spxReadonly]="this.spxReadonly"
1635
+ [spxSelectDay]="this.spxSelectDay"
1636
+ [spxSelectMonth]="this.spxSelectMonth"
1637
+ [spxValidators]="this.spxValidators"
1638
+ [(value)]="this.value"
1639
+ ></spx-input-date>
1640
+ }
1641
+ @if (this.spxType === 'float') {
1642
+ <spx-input-float
1643
+ (spxChange)="this.handleChange($event)"
1644
+ (spxFocus)="this.handleFocus()"
1645
+ [spxAutofocus]="this.spxAutofocus"
1646
+ [spxFocused]="this.spxFocused"
1647
+ [spxName]="this.spxName"
1648
+ [spxReadonly]="this.spxReadonly"
1649
+ [spxStep]="this.spxStep"
1650
+ [spxValidators]="this.spxValidators"
1651
+ [value]="this.value"
1652
+ ></spx-input-float>
1653
+ }
1654
+ @if (this.spxType === 'number') {
1655
+ <spx-input-number
1656
+ (spxChange)="this.handleChange($event)"
1657
+ (spxFocus)="this.handleFocus()"
1658
+ [spxAutofocus]="this.spxAutofocus"
1659
+ [spxFocused]="this.spxFocused"
1660
+ [spxInputMode]="this.spxInputMode"
1661
+ [spxName]="this.spxName"
1662
+ [spxReadonly]="this.spxReadonly"
1663
+ [spxStep]="this.spxStep"
1664
+ [spxValidators]="this.spxValidators"
1665
+ [value]="this.value"
1666
+ ></spx-input-number>
1667
+ }
1668
+ @if (this.spxType === 'radio') {
1669
+ <spx-input-radio
1670
+ #radioInput
1671
+ (spxChange)="this.handleChange($event)"
1672
+ [spxFocused]="this.spxFocused"
1673
+ [spxName]="this.spxName"
1674
+ [spxReadonly]="this.spxReadonly"
1675
+ [spxShowLabel]="this.spxShowLabel"
1676
+ [spxSuggestions]="this.spxSuggestions"
1677
+ [spxValidators]="this.spxValidators"
1678
+ [value]="this.value"
1679
+ ></spx-input-radio>
1680
+ }
1681
+ @if (this.spxType === 'time') {
1682
+ <spx-input-time
1683
+ #timeInput
1684
+ (spxChange)="this.handleChange($event)"
1685
+ (spxFocus)="this.handleFocus()"
1686
+ [spxFocused]="this.spxFocused"
1687
+ [spxName]="this.spxName"
1688
+ [spxReadonly]="this.spxReadonly"
1689
+ [spxValidators]="this.spxValidators"
1690
+ [value]="this.value"
1691
+ ></spx-input-time>
1692
+ }
1693
+ </div>
1694
+ <div validation-messages>
1695
+ <ng-content></ng-content>
1696
+ </div>
1697
1697
  </spx-input-box>`,
1698
1698
  }]
1699
1699
  }], propDecorators: { spxLabel: [{