@softpak/components 18.6.3 → 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 +4 -7
  57. package/esm2022/spx-inputs/spx-input-float.component.mjs +51 -53
  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 +221 -221
  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 +651 -655
  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 +47 -47
@@ -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,63 +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
- SpxButtonComponent,
629
628
  FormsModule,
630
- ], template: `<div class="flex items-end">
631
- <input
632
- #firstInputRef
633
- class="spx-input-float__input"
634
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
635
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
636
- [attr.pattern]="'[0-9]*'"
637
- [attr.step]="1"
638
- [attr.type]="'text'"
639
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
640
- (focus)="this.handleFocus()"
641
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
642
- (ngModelChange)="this.handleInput($event, 1)" />
643
- <span class="text-black font-bold text-2xl mx-4">,</span>
644
- <input
645
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
646
- class="spx-input-float__input"
647
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
648
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
649
- (focus)="this.handleFocus()"
650
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
651
- (ngModelChange)="this.handleInput($event, 2)"
652
- [attr.step]="1"
653
- [attr.type]="'text'"
654
- [attr.pattern]="'[0-9]*'" />
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]*'" />
655
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"] }]
656
655
  }], propDecorators: { spxName: [{
657
656
  type: Input
@@ -709,36 +708,36 @@ class SpxInputNumberComponent {
709
708
  this.spxChange.emit(this.value);
710
709
  }
711
710
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
712
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputNumberComponent, isStandalone: true, selector: "spx-input-number", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="spx-input-number__controls">
713
- <input
714
- #input
715
- class="spx-input-number__input"
716
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
717
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
718
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
719
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
720
- [attr.value]="this.value?.value ? this.value?.value : undefined"
721
- [attr.step]="this.spxStep ? this.spxStep : undefined"
722
- [attr.type]="'number'"
723
- (focus)="this.handleFocus()"
724
- (input)="this.handleInput($event)" />
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)" />
725
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"] }); }
726
725
  }
727
726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
728
727
  type: Component,
729
- args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
730
- <input
731
- #input
732
- class="spx-input-number__input"
733
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
734
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
735
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
736
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
737
- [attr.value]="this.value?.value ? this.value?.value : undefined"
738
- [attr.step]="this.spxStep ? this.spxStep : undefined"
739
- [attr.type]="'number'"
740
- (focus)="this.handleFocus()"
741
- (input)="this.handleInput($event)" />
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)" />
742
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"] }]
743
742
  }], propDecorators: { spxName: [{
744
743
  type: Input
@@ -835,17 +834,17 @@ class SpxInputRadioComponent {
835
834
  });
836
835
  }
837
836
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
838
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputRadioComponent, isStandalone: true, selector: "spx-input-radio", inputs: { spxName: "spxName", spxValidators: "spxValidators", spxFocused: "spxFocused", spxShowLabel: "spxShowLabel", spxReadonly: "spxReadonly", spxSuggestions: "spxSuggestions", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, usesOnChanges: true, ngImport: i0, template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
839
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
840
- <spx-suggestion
841
- [spxDisabled]="this.spxReadonly"
842
- [spxFocused]="this.spxFocused && i === this.focusPosition"
843
- [spxSelected]="this.value?.value === valuePair?.value"
844
- [spxTabbable]="this.focusPosition === i"
845
- (click)="this.handleSuggestionClick($event, valuePair)">
846
- {{valuePair?.description}}
847
- </spx-suggestion>
848
- }
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
+ }
849
848
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
850
849
  }
851
850
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
@@ -856,17 +855,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
856
855
  imports: [
857
856
  SpxSuggestionComponent
858
857
  ],
859
- template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
860
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
861
- <spx-suggestion
862
- [spxDisabled]="this.spxReadonly"
863
- [spxFocused]="this.spxFocused && i === this.focusPosition"
864
- [spxSelected]="this.value?.value === valuePair?.value"
865
- [spxTabbable]="this.focusPosition === i"
866
- (click)="this.handleSuggestionClick($event, valuePair)">
867
- {{valuePair?.description}}
868
- </spx-suggestion>
869
- }
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
+ }
870
869
  </div>`,
871
870
  }]
872
871
  }], propDecorators: { spxName: [{
@@ -926,44 +925,44 @@ class SpxInputTimeModalComponent {
926
925
  this.modalController.dismiss(value);
927
926
  }
928
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 }); }
929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
930
- <ion-toolbar>
931
- <ion-title>Select {{view}}</ion-title>
932
- <ion-buttons slot="end">
933
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
934
- <fa-icon [icon]="faXmark"></fa-icon>
935
- </spx-button>
936
- </ion-buttons>
937
- </ion-toolbar>
938
- </ion-header>
939
- <ion-content class="ion-padding bg-white">
940
- <!-- Uren -->
941
- <div class="custom-bg grid grid-cols-1 gap-3">
942
- @if (view === 'hours') {
943
- <div class="flex-wrap gap-2">
944
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
945
- @for (hour of hourOptions; track hour) {
946
- <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
947
- {{ hour }}
948
- </div>
949
- }
950
- </div>
951
- </div>
952
- }
953
- <!-- Minuten -->
954
- @if (view === 'minutes') {
955
- <div class="grid grid-cols-1 gap-3">
956
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
957
- @for (minute of minuteOptions; track minute) {
958
- <div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
959
- {{ minute }}
960
- </div>
961
- }
962
- </div>
963
- </div>
964
- }
965
- </div>
966
- </ion-content>
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>
967
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"] }] }); }
968
967
  }
969
968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
@@ -977,44 +976,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
977
976
  SpxDropdownComponent,
978
977
  FontAwesomeModule
979
978
  ],
980
- template: `<ion-header>
981
- <ion-toolbar>
982
- <ion-title>Select {{view}}</ion-title>
983
- <ion-buttons slot="end">
984
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
985
- <fa-icon [icon]="faXmark"></fa-icon>
986
- </spx-button>
987
- </ion-buttons>
988
- </ion-toolbar>
989
- </ion-header>
990
- <ion-content class="ion-padding bg-white">
991
- <!-- Uren -->
992
- <div class="custom-bg grid grid-cols-1 gap-3">
993
- @if (view === 'hours') {
994
- <div class="flex-wrap gap-2">
995
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
996
- @for (hour of hourOptions; track hour) {
997
- <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)">
998
- {{ hour }}
999
- </div>
1000
- }
1001
- </div>
1002
- </div>
1003
- }
1004
- <!-- Minuten -->
1005
- @if (view === 'minutes') {
1006
- <div class="grid grid-cols-1 gap-3">
1007
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1008
- @for (minute of minuteOptions; track minute) {
1009
- <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)">
1010
- {{ minute }}
1011
- </div>
1012
- }
1013
- </div>
1014
- </div>
1015
- }
1016
- </div>
1017
- </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>
1018
1017
  `,
1019
1018
  }]
1020
1019
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { view: [{
@@ -1123,12 +1122,12 @@ class SpxInputTimeComponent {
1123
1122
  }
1124
1123
  }
1125
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 }); }
1126
- 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">
1127
- <div class="flex items-center justify-around gap-3">
1128
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1129
- <div class="text-gray text-xl">:</div>
1130
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1131
- </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>
1132
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 }] }); }
1133
1132
  }
1134
1133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
@@ -1137,12 +1136,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1137
1136
  SpxButtonComponent,
1138
1137
  SpxDropdownComponent,
1139
1138
  IonicModule
1140
- ], template: `<div class="relative text-black">
1141
- <div class="flex items-center justify-around gap-3">
1142
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1143
- <div class="text-gray text-xl">:</div>
1144
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1145
- </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>
1146
1145
  </div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
1147
1146
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { spxName: [{
1148
1147
  type: Input
@@ -1295,10 +1294,7 @@ class SpxInputDateComponent {
1295
1294
  this.changeSelectedStep();
1296
1295
  }
1297
1296
  updateValueAndEmit() {
1298
- const concatenatedValue = `
1299
- ${this.selectedYear() ? this.selectedYear() : ``}
1300
- ${this.selectedMonth() ? `${this.selectedMonth() < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}
1301
- ${this.selectedDay() ? `-${this.selectedDay() < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`;
1297
+ const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth() < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay() < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`;
1302
1298
  const parsedValue = DateTime.fromISO(concatenatedValue);
1303
1299
  this.value.set({ value: parsedValue.toISO(), description: parsedValue.toISO() });
1304
1300
  this.spxChange.emit(this.value());
@@ -1326,14 +1322,14 @@ class SpxInputDateComponent {
1326
1322
  }
1327
1323
  }
1328
1324
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1329
- 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"] }] }); }
1330
1326
  }
1331
1327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
1332
1328
  type: Component,
1333
1329
  args: [{ selector: 'spx-input-date', standalone: true, imports: [
1334
1330
  SpxSuggestionComponent,
1335
1331
  FormsModule
1336
- ], 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"] }]
1337
1333
  }] });
1338
1334
 
1339
1335
  class SpxInputComponent {
@@ -1430,7 +1426,7 @@ class SpxInputComponent {
1430
1426
  }
1431
1427
  }
1432
1428
  writeValue(value) {
1433
- this.value = this.lastValue = value;
1429
+ this.value = this.lastValue = value; // hier komt initiele waarde van formcontrol binnen
1434
1430
  }
1435
1431
  handleChangeEvent(value) {
1436
1432
  if (value !== this.lastValue) {
@@ -1442,7 +1438,7 @@ class SpxInputComponent {
1442
1438
  this.onTouched();
1443
1439
  }
1444
1440
  registerOnChange(fn) {
1445
- this.onChange = fn;
1441
+ this.onChange = fn; // emit verandering aan formcontrol
1446
1442
  }
1447
1443
  registerOnTouched(fn) {
1448
1444
  this.onTouched = fn;
@@ -1454,115 +1450,115 @@ class SpxInputComponent {
1454
1450
  useExisting: SpxInputComponent,
1455
1451
  multi: true
1456
1452
  }
1457
- ], 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
1458
- [spxFocused]="this.spxFocused"
1459
- [spxLabel]="this.spxLabel"
1460
- [spxReadonly]="this.spxReadonly"
1461
- [spxRequired]="this.spxRequired"
1462
- [spxValue]="this.value"
1463
- [spxShowHelp]="this.spxShowHelp"
1464
- [spxCompact]="this.spxCompact"
1465
- [spxShowClear]="this.spxShowClear"
1466
- [spxShowEdit]="this.spxShowEdit"
1467
- [spxShowLabel]="this.spxShowLabel"
1468
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1469
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1470
- (spxClear)="this.handleClear()"
1471
- (spxEdit)="this.handleEdit()"
1472
- (spxHelp)="this.handleHelp()"
1473
- (spxFocus)="this.setFocusIn()"
1474
- (spxFocusOut)="this.setFocusOut()"
1475
- (spxSearch)="this.handleSearch()">
1476
- <div controls>
1477
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1478
- <spx-input-text
1479
- (spxBlurFromChild)="this.handleBlur()"
1480
- (spxChange)="this.handleChange($event)"
1481
- (spxFocus)="this.handleFocus()"
1482
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1483
- [spxAutofocus]="this.spxAutofocus"
1484
- [spxCapitalize]="this.spxCapitalize"
1485
- [spxFocused]="this.spxFocused"
1486
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1487
- [spxName]="this.spxName"
1488
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1489
- [spxReadonly]="this.spxReadonly"
1490
- [spxSuggestions]="this.spxSuggestions"
1491
- [spxType]="this.spxType"
1492
- [spxValidators]="this.spxValidators"
1493
- [value]="this.value"
1494
- ></spx-input-text>
1495
- }
1496
- @if (this.spxType === 'date') {
1497
- <spx-input-date
1498
- (spxChange)="this.handleChange($event)"
1499
- (spxFocus)="this.handleFocus()"
1500
- [spxFocused]="this.spxFocused"
1501
- [spxMax]="this.spxMax!"
1502
- [spxMin]="this.spxMin!"
1503
- [spxReadonly]="this.spxReadonly"
1504
- [spxSelectDay]="this.spxSelectDay"
1505
- [spxSelectMonth]="this.spxSelectMonth"
1506
- [spxValidators]="this.spxValidators"
1507
- [(value)]="this.value"
1508
- ></spx-input-date>
1509
- }
1510
- @if (this.spxType === 'float') {
1511
- <spx-input-float
1512
- (spxChange)="this.handleChange($event)"
1513
- (spxFocus)="this.handleFocus()"
1514
- [spxAutofocus]="this.spxAutofocus"
1515
- [spxFocused]="this.spxFocused"
1516
- [spxName]="this.spxName"
1517
- [spxReadonly]="this.spxReadonly"
1518
- [spxStep]="this.spxStep"
1519
- [spxValidators]="this.spxValidators"
1520
- [value]="this.value"
1521
- ></spx-input-float>
1522
- }
1523
- @if (this.spxType === 'number') {
1524
- <spx-input-number
1525
- (spxChange)="this.handleChange($event)"
1526
- (spxFocus)="this.handleFocus()"
1527
- [spxAutofocus]="this.spxAutofocus"
1528
- [spxFocused]="this.spxFocused"
1529
- [spxInputMode]="this.spxInputMode"
1530
- [spxName]="this.spxName"
1531
- [spxReadonly]="this.spxReadonly"
1532
- [spxStep]="this.spxStep"
1533
- [spxValidators]="this.spxValidators"
1534
- [value]="this.value"
1535
- ></spx-input-number>
1536
- }
1537
- @if (this.spxType === 'radio') {
1538
- <spx-input-radio
1539
- #radioInput
1540
- (spxChange)="this.handleChange($event)"
1541
- [spxFocused]="this.spxFocused"
1542
- [spxName]="this.spxName"
1543
- [spxReadonly]="this.spxReadonly"
1544
- [spxShowLabel]="this.spxShowLabel"
1545
- [spxSuggestions]="this.spxSuggestions"
1546
- [spxValidators]="this.spxValidators"
1547
- [value]="this.value"
1548
- ></spx-input-radio>
1549
- }
1550
- @if (this.spxType === 'time') {
1551
- <spx-input-time
1552
- #timeInput
1553
- (spxChange)="this.handleChange($event)"
1554
- (spxFocus)="this.handleFocus()"
1555
- [spxFocused]="this.spxFocused"
1556
- [spxName]="this.spxName"
1557
- [spxReadonly]="this.spxReadonly"
1558
- [spxValidators]="this.spxValidators"
1559
- [value]="this.value"
1560
- ></spx-input-time>
1561
- }
1562
- </div>
1563
- <div validation-messages>
1564
- <ng-content></ng-content>
1565
- </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>
1566
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"] }] }); }
1567
1563
  }
1568
1564
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
@@ -1589,115 +1585,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1589
1585
  multi: true
1590
1586
  }
1591
1587
  ],
1592
- template: `<spx-input-box
1593
- [spxFocused]="this.spxFocused"
1594
- [spxLabel]="this.spxLabel"
1595
- [spxReadonly]="this.spxReadonly"
1596
- [spxRequired]="this.spxRequired"
1597
- [spxValue]="this.value"
1598
- [spxShowHelp]="this.spxShowHelp"
1599
- [spxCompact]="this.spxCompact"
1600
- [spxShowClear]="this.spxShowClear"
1601
- [spxShowEdit]="this.spxShowEdit"
1602
- [spxShowLabel]="this.spxShowLabel"
1603
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1604
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1605
- (spxClear)="this.handleClear()"
1606
- (spxEdit)="this.handleEdit()"
1607
- (spxHelp)="this.handleHelp()"
1608
- (spxFocus)="this.setFocusIn()"
1609
- (spxFocusOut)="this.setFocusOut()"
1610
- (spxSearch)="this.handleSearch()">
1611
- <div controls>
1612
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1613
- <spx-input-text
1614
- (spxBlurFromChild)="this.handleBlur()"
1615
- (spxChange)="this.handleChange($event)"
1616
- (spxFocus)="this.handleFocus()"
1617
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1618
- [spxAutofocus]="this.spxAutofocus"
1619
- [spxCapitalize]="this.spxCapitalize"
1620
- [spxFocused]="this.spxFocused"
1621
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1622
- [spxName]="this.spxName"
1623
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1624
- [spxReadonly]="this.spxReadonly"
1625
- [spxSuggestions]="this.spxSuggestions"
1626
- [spxType]="this.spxType"
1627
- [spxValidators]="this.spxValidators"
1628
- [value]="this.value"
1629
- ></spx-input-text>
1630
- }
1631
- @if (this.spxType === 'date') {
1632
- <spx-input-date
1633
- (spxChange)="this.handleChange($event)"
1634
- (spxFocus)="this.handleFocus()"
1635
- [spxFocused]="this.spxFocused"
1636
- [spxMax]="this.spxMax!"
1637
- [spxMin]="this.spxMin!"
1638
- [spxReadonly]="this.spxReadonly"
1639
- [spxSelectDay]="this.spxSelectDay"
1640
- [spxSelectMonth]="this.spxSelectMonth"
1641
- [spxValidators]="this.spxValidators"
1642
- [(value)]="this.value"
1643
- ></spx-input-date>
1644
- }
1645
- @if (this.spxType === 'float') {
1646
- <spx-input-float
1647
- (spxChange)="this.handleChange($event)"
1648
- (spxFocus)="this.handleFocus()"
1649
- [spxAutofocus]="this.spxAutofocus"
1650
- [spxFocused]="this.spxFocused"
1651
- [spxName]="this.spxName"
1652
- [spxReadonly]="this.spxReadonly"
1653
- [spxStep]="this.spxStep"
1654
- [spxValidators]="this.spxValidators"
1655
- [value]="this.value"
1656
- ></spx-input-float>
1657
- }
1658
- @if (this.spxType === 'number') {
1659
- <spx-input-number
1660
- (spxChange)="this.handleChange($event)"
1661
- (spxFocus)="this.handleFocus()"
1662
- [spxAutofocus]="this.spxAutofocus"
1663
- [spxFocused]="this.spxFocused"
1664
- [spxInputMode]="this.spxInputMode"
1665
- [spxName]="this.spxName"
1666
- [spxReadonly]="this.spxReadonly"
1667
- [spxStep]="this.spxStep"
1668
- [spxValidators]="this.spxValidators"
1669
- [value]="this.value"
1670
- ></spx-input-number>
1671
- }
1672
- @if (this.spxType === 'radio') {
1673
- <spx-input-radio
1674
- #radioInput
1675
- (spxChange)="this.handleChange($event)"
1676
- [spxFocused]="this.spxFocused"
1677
- [spxName]="this.spxName"
1678
- [spxReadonly]="this.spxReadonly"
1679
- [spxShowLabel]="this.spxShowLabel"
1680
- [spxSuggestions]="this.spxSuggestions"
1681
- [spxValidators]="this.spxValidators"
1682
- [value]="this.value"
1683
- ></spx-input-radio>
1684
- }
1685
- @if (this.spxType === 'time') {
1686
- <spx-input-time
1687
- #timeInput
1688
- (spxChange)="this.handleChange($event)"
1689
- (spxFocus)="this.handleFocus()"
1690
- [spxFocused]="this.spxFocused"
1691
- [spxName]="this.spxName"
1692
- [spxReadonly]="this.spxReadonly"
1693
- [spxValidators]="this.spxValidators"
1694
- [value]="this.value"
1695
- ></spx-input-time>
1696
- }
1697
- </div>
1698
- <div validation-messages>
1699
- <ng-content></ng-content>
1700
- </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>
1701
1697
  </spx-input-box>`,
1702
1698
  }]
1703
1699
  }], propDecorators: { spxLabel: [{