@softpak/components 18.6.0 → 18.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) 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 +21 -21
  41. package/esm2022/spx-form-view/public-api.mjs +1 -1
  42. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +3 -3
  43. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +1 -1
  44. package/esm2022/spx-form-view/spx-form-button.interface.mjs +1 -1
  45. package/esm2022/spx-form-view/spx-form-field.interface.mjs +1 -1
  46. package/esm2022/spx-form-view/spx-form-section.interface.mjs +1 -1
  47. package/esm2022/spx-form-view/spx-form-view.component.mjs +163 -163
  48. package/esm2022/spx-form-view/spx-form.interface.mjs +1 -1
  49. package/esm2022/spx-helpers/calc-check-digit.function.mjs +1 -1
  50. package/esm2022/spx-helpers/public-api.mjs +1 -1
  51. package/esm2022/spx-helpers/spx-severity.enum.mjs +1 -1
  52. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +1 -1
  53. package/esm2022/spx-inputs/public-api.mjs +1 -1
  54. package/esm2022/spx-inputs/spx-dropdown.component.mjs +33 -33
  55. package/esm2022/spx-inputs/spx-input-box.component.mjs +149 -149
  56. package/esm2022/spx-inputs/spx-input-date.component.mjs +91 -91
  57. package/esm2022/spx-inputs/spx-input-float.component.mjs +51 -51
  58. package/esm2022/spx-inputs/spx-input-number.component.mjs +27 -27
  59. package/esm2022/spx-inputs/spx-input-radio.component.mjs +23 -23
  60. package/esm2022/spx-inputs/spx-input-text.component.mjs +63 -63
  61. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +77 -77
  62. package/esm2022/spx-inputs/spx-input-time.component.mjs +13 -13
  63. package/esm2022/spx-inputs/spx-input-type.enum.mjs +1 -1
  64. package/esm2022/spx-inputs/spx-input.component.mjs +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 +20 -20
  126. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  127. package/fesm2022/softpak-components-spx-form-view.mjs +164 -164
  128. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  129. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  130. package/fesm2022/softpak-components-spx-inputs.mjs +738 -738
  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 +35 -35
  156. package/tailwind.css +1 -1
@@ -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: [{
@@ -688,102 +688,102 @@ class SpxInputDateComponent {
688
688
  console.log('suggest years', this.spxSuggestions);
689
689
  }
690
690
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
691
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
692
- <input
693
- class='spx-input-date__input'
694
- [attr.value]="this.spxInternalValue.years"
695
- (focus)="this.handleFocus('years')"
696
- (input)="this.handleYearInput($event)"
697
- (keyDown)="this.handleKeyDown($event)"
698
- [attr.type]="'number'"
699
- [attr.min]="1900"
700
- [attr.max]="2100"
701
- [attr.step]="1"
702
- />
703
- <div class='spx-input-date__control-label'>Year</div>
704
- @if (this.spxSelectMonth) {
705
- <input
706
- class='spx-input-date__input'
707
- [attr.value]="this.spxInternalValue.months"
708
- (focus)="this.handleFocus('months')"
709
- (input)="this.handleMonthInput($event)"
710
- (keyDown)="this.handleKeyDown($event)"
711
- [attr.type]="'number'"
712
- [attr.min]="1"
713
- [attr.max]="12"
714
- [attr.step]="1" />
715
- }
716
- <div class='spx-input-date__control-label'>Month</div>
717
- @if (this.spxSelectDay) {
718
- <input
719
- class='spx-input-date__input'
720
- [attr.value]="this.spxInternalValue.days"
721
- (focus)="this.handleFocus('days')"
722
- (input)="this.handleDayInput($event)"
723
- (keyDown)="this.handleKeyDown($event)"
724
- [attr.type]="'number'"
725
- [attr.min]="1"
726
- [attr.max]="31"
727
- [attr.step]="1" />
728
- <div class='spx-input-date__control-label'>Days</div>
729
- }
730
- </div>
731
- <div class='spx-input-date__suggestions'>
732
- @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
733
- <spx-suggestion
734
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
735
- }
691
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
692
+ <input
693
+ class='spx-input-date__input'
694
+ [attr.value]="this.spxInternalValue.years"
695
+ (focus)="this.handleFocus('years')"
696
+ (input)="this.handleYearInput($event)"
697
+ (keyDown)="this.handleKeyDown($event)"
698
+ [attr.type]="'number'"
699
+ [attr.min]="1900"
700
+ [attr.max]="2100"
701
+ [attr.step]="1"
702
+ />
703
+ <div class='spx-input-date__control-label'>Year</div>
704
+ @if (this.spxSelectMonth) {
705
+ <input
706
+ class='spx-input-date__input'
707
+ [attr.value]="this.spxInternalValue.months"
708
+ (focus)="this.handleFocus('months')"
709
+ (input)="this.handleMonthInput($event)"
710
+ (keyDown)="this.handleKeyDown($event)"
711
+ [attr.type]="'number'"
712
+ [attr.min]="1"
713
+ [attr.max]="12"
714
+ [attr.step]="1" />
715
+ }
716
+ <div class='spx-input-date__control-label'>Month</div>
717
+ @if (this.spxSelectDay) {
718
+ <input
719
+ class='spx-input-date__input'
720
+ [attr.value]="this.spxInternalValue.days"
721
+ (focus)="this.handleFocus('days')"
722
+ (input)="this.handleDayInput($event)"
723
+ (keyDown)="this.handleKeyDown($event)"
724
+ [attr.type]="'number'"
725
+ [attr.min]="1"
726
+ [attr.max]="31"
727
+ [attr.step]="1" />
728
+ <div class='spx-input-date__control-label'>Days</div>
729
+ }
730
+ </div>
731
+ <div class='spx-input-date__suggestions'>
732
+ @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
733
+ <spx-suggestion
734
+ (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
735
+ }
736
736
  </div>`, isInline: true, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
737
737
  }
738
738
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
739
739
  type: Component,
740
740
  args: [{ selector: 'spx-input-date', standalone: true, imports: [
741
741
  SpxSuggestionComponent
742
- ], template: `<div class='spx-input-date__controls'>
743
- <input
744
- class='spx-input-date__input'
745
- [attr.value]="this.spxInternalValue.years"
746
- (focus)="this.handleFocus('years')"
747
- (input)="this.handleYearInput($event)"
748
- (keyDown)="this.handleKeyDown($event)"
749
- [attr.type]="'number'"
750
- [attr.min]="1900"
751
- [attr.max]="2100"
752
- [attr.step]="1"
753
- />
754
- <div class='spx-input-date__control-label'>Year</div>
755
- @if (this.spxSelectMonth) {
756
- <input
757
- class='spx-input-date__input'
758
- [attr.value]="this.spxInternalValue.months"
759
- (focus)="this.handleFocus('months')"
760
- (input)="this.handleMonthInput($event)"
761
- (keyDown)="this.handleKeyDown($event)"
762
- [attr.type]="'number'"
763
- [attr.min]="1"
764
- [attr.max]="12"
765
- [attr.step]="1" />
766
- }
767
- <div class='spx-input-date__control-label'>Month</div>
768
- @if (this.spxSelectDay) {
769
- <input
770
- class='spx-input-date__input'
771
- [attr.value]="this.spxInternalValue.days"
772
- (focus)="this.handleFocus('days')"
773
- (input)="this.handleDayInput($event)"
774
- (keyDown)="this.handleKeyDown($event)"
775
- [attr.type]="'number'"
776
- [attr.min]="1"
777
- [attr.max]="31"
778
- [attr.step]="1" />
779
- <div class='spx-input-date__control-label'>Days</div>
780
- }
781
- </div>
782
- <div class='spx-input-date__suggestions'>
783
- @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
784
- <spx-suggestion
785
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
786
- }
742
+ ], template: `<div class='spx-input-date__controls'>
743
+ <input
744
+ class='spx-input-date__input'
745
+ [attr.value]="this.spxInternalValue.years"
746
+ (focus)="this.handleFocus('years')"
747
+ (input)="this.handleYearInput($event)"
748
+ (keyDown)="this.handleKeyDown($event)"
749
+ [attr.type]="'number'"
750
+ [attr.min]="1900"
751
+ [attr.max]="2100"
752
+ [attr.step]="1"
753
+ />
754
+ <div class='spx-input-date__control-label'>Year</div>
755
+ @if (this.spxSelectMonth) {
756
+ <input
757
+ class='spx-input-date__input'
758
+ [attr.value]="this.spxInternalValue.months"
759
+ (focus)="this.handleFocus('months')"
760
+ (input)="this.handleMonthInput($event)"
761
+ (keyDown)="this.handleKeyDown($event)"
762
+ [attr.type]="'number'"
763
+ [attr.min]="1"
764
+ [attr.max]="12"
765
+ [attr.step]="1" />
766
+ }
767
+ <div class='spx-input-date__control-label'>Month</div>
768
+ @if (this.spxSelectDay) {
769
+ <input
770
+ class='spx-input-date__input'
771
+ [attr.value]="this.spxInternalValue.days"
772
+ (focus)="this.handleFocus('days')"
773
+ (input)="this.handleDayInput($event)"
774
+ (keyDown)="this.handleKeyDown($event)"
775
+ [attr.type]="'number'"
776
+ [attr.min]="1"
777
+ [attr.max]="31"
778
+ [attr.step]="1" />
779
+ <div class='spx-input-date__control-label'>Days</div>
780
+ }
781
+ </div>
782
+ <div class='spx-input-date__suggestions'>
783
+ @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
784
+ <spx-suggestion
785
+ (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
786
+ }
787
787
  </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"] }]
788
788
  }], propDecorators: { spxMax: [{
789
789
  type: Input
@@ -888,31 +888,31 @@ class SpxInputFloatComponent {
888
888
  return /^[+-]?\d+(\.\d+)?$/.test(value);
889
889
  }
890
890
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
891
- 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">
892
- <input
893
- #firstInputRef
894
- class="spx-input-float__input"
895
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
896
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
897
- [attr.pattern]="'[0-9]*'"
898
- [attr.step]="1"
899
- [attr.type]="'text'"
900
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
901
- (focus)="this.handleFocus()"
902
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
903
- (ngModelChange)="this.handleInput($event, 1)" />
904
- <span class="text-black font-bold text-2xl mx-4">,</span>
905
- <input
906
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
907
- class="spx-input-float__input"
908
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
909
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
910
- (focus)="this.handleFocus()"
911
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
912
- (ngModelChange)="this.handleInput($event, 2)"
913
- [attr.step]="1"
914
- [attr.type]="'text'"
915
- [attr.pattern]="'[0-9]*'" />
891
+ 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">
892
+ <input
893
+ #firstInputRef
894
+ class="spx-input-float__input"
895
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
896
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
897
+ [attr.pattern]="'[0-9]*'"
898
+ [attr.step]="1"
899
+ [attr.type]="'text'"
900
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
901
+ (focus)="this.handleFocus()"
902
+ [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
903
+ (ngModelChange)="this.handleInput($event, 1)" />
904
+ <span class="text-black font-bold text-2xl mx-4">,</span>
905
+ <input
906
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
907
+ class="spx-input-float__input"
908
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
909
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
910
+ (focus)="this.handleFocus()"
911
+ [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
912
+ (ngModelChange)="this.handleInput($event, 2)"
913
+ [attr.step]="1"
914
+ [attr.type]="'text'"
915
+ [attr.pattern]="'[0-9]*'" />
916
916
  </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"] }] }); }
917
917
  }
918
918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
@@ -920,31 +920,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
920
920
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
921
921
  SpxButtonComponent,
922
922
  FormsModule,
923
- ], template: `<div class="flex items-end">
924
- <input
925
- #firstInputRef
926
- class="spx-input-float__input"
927
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
928
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
929
- [attr.pattern]="'[0-9]*'"
930
- [attr.step]="1"
931
- [attr.type]="'text'"
932
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
933
- (focus)="this.handleFocus()"
934
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
935
- (ngModelChange)="this.handleInput($event, 1)" />
936
- <span class="text-black font-bold text-2xl mx-4">,</span>
937
- <input
938
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
939
- class="spx-input-float__input"
940
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
941
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
942
- (focus)="this.handleFocus()"
943
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
944
- (ngModelChange)="this.handleInput($event, 2)"
945
- [attr.step]="1"
946
- [attr.type]="'text'"
947
- [attr.pattern]="'[0-9]*'" />
923
+ ], template: `<div class="flex items-end">
924
+ <input
925
+ #firstInputRef
926
+ class="spx-input-float__input"
927
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
928
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
929
+ [attr.pattern]="'[0-9]*'"
930
+ [attr.step]="1"
931
+ [attr.type]="'text'"
932
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
933
+ (focus)="this.handleFocus()"
934
+ [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
935
+ (ngModelChange)="this.handleInput($event, 1)" />
936
+ <span class="text-black font-bold text-2xl mx-4">,</span>
937
+ <input
938
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
939
+ class="spx-input-float__input"
940
+ [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
941
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
942
+ (focus)="this.handleFocus()"
943
+ [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
944
+ (ngModelChange)="this.handleInput($event, 2)"
945
+ [attr.step]="1"
946
+ [attr.type]="'text'"
947
+ [attr.pattern]="'[0-9]*'" />
948
948
  </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"] }]
949
949
  }], propDecorators: { spxName: [{
950
950
  type: Input
@@ -1002,36 +1002,36 @@ class SpxInputNumberComponent {
1002
1002
  this.spxChange.emit(this.value);
1003
1003
  }
1004
1004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1005
- 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">
1006
- <input
1007
- #input
1008
- class="spx-input-number__input"
1009
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1010
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1011
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1012
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1013
- [attr.value]="this.value?.value ? this.value?.value : undefined"
1014
- [attr.step]="this.spxStep ? this.spxStep : undefined"
1015
- [attr.type]="'number'"
1016
- (focus)="this.handleFocus()"
1017
- (input)="this.handleInput($event)" />
1005
+ 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">
1006
+ <input
1007
+ #input
1008
+ class="spx-input-number__input"
1009
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1010
+ [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1011
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1012
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1013
+ [attr.value]="this.value?.value ? this.value?.value : undefined"
1014
+ [attr.step]="this.spxStep ? this.spxStep : undefined"
1015
+ [attr.type]="'number'"
1016
+ (focus)="this.handleFocus()"
1017
+ (input)="this.handleInput($event)" />
1018
1018
  </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"] }); }
1019
1019
  }
1020
1020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
1021
1021
  type: Component,
1022
- args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
1023
- <input
1024
- #input
1025
- class="spx-input-number__input"
1026
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1027
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1028
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1029
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1030
- [attr.value]="this.value?.value ? this.value?.value : undefined"
1031
- [attr.step]="this.spxStep ? this.spxStep : undefined"
1032
- [attr.type]="'number'"
1033
- (focus)="this.handleFocus()"
1034
- (input)="this.handleInput($event)" />
1022
+ args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
1023
+ <input
1024
+ #input
1025
+ class="spx-input-number__input"
1026
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1027
+ [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1028
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1029
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1030
+ [attr.value]="this.value?.value ? this.value?.value : undefined"
1031
+ [attr.step]="this.spxStep ? this.spxStep : undefined"
1032
+ [attr.type]="'number'"
1033
+ (focus)="this.handleFocus()"
1034
+ (input)="this.handleInput($event)" />
1035
1035
  </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"] }]
1036
1036
  }], propDecorators: { spxName: [{
1037
1037
  type: Input
@@ -1128,17 +1128,17 @@ class SpxInputRadioComponent {
1128
1128
  });
1129
1129
  }
1130
1130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1131
- 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">
1132
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1133
- <spx-suggestion
1134
- [spxDisabled]="this.spxReadonly"
1135
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1136
- [spxSelected]="this.value?.value === valuePair?.value"
1137
- [spxTabbable]="this.focusPosition === i"
1138
- (click)="this.handleSuggestionClick($event, valuePair)">
1139
- {{valuePair?.description}}
1140
- </spx-suggestion>
1141
- }
1131
+ 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">
1132
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1133
+ <spx-suggestion
1134
+ [spxDisabled]="this.spxReadonly"
1135
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
1136
+ [spxSelected]="this.value?.value === valuePair?.value"
1137
+ [spxTabbable]="this.focusPosition === i"
1138
+ (click)="this.handleSuggestionClick($event, valuePair)">
1139
+ {{valuePair?.description}}
1140
+ </spx-suggestion>
1141
+ }
1142
1142
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
1143
1143
  }
1144
1144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
@@ -1149,17 +1149,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1149
1149
  imports: [
1150
1150
  SpxSuggestionComponent
1151
1151
  ],
1152
- template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1153
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1154
- <spx-suggestion
1155
- [spxDisabled]="this.spxReadonly"
1156
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1157
- [spxSelected]="this.value?.value === valuePair?.value"
1158
- [spxTabbable]="this.focusPosition === i"
1159
- (click)="this.handleSuggestionClick($event, valuePair)">
1160
- {{valuePair?.description}}
1161
- </spx-suggestion>
1162
- }
1152
+ template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1153
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1154
+ <spx-suggestion
1155
+ [spxDisabled]="this.spxReadonly"
1156
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
1157
+ [spxSelected]="this.value?.value === valuePair?.value"
1158
+ [spxTabbable]="this.focusPosition === i"
1159
+ (click)="this.handleSuggestionClick($event, valuePair)">
1160
+ {{valuePair?.description}}
1161
+ </spx-suggestion>
1162
+ }
1163
1163
  </div>`,
1164
1164
  }]
1165
1165
  }], propDecorators: { spxName: [{
@@ -1219,44 +1219,44 @@ class SpxInputTimeModalComponent {
1219
1219
  this.modalController.dismiss(value);
1220
1220
  }
1221
1221
  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 }); }
1222
- 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>
1223
- <ion-toolbar>
1224
- <ion-title>Select {{view}}</ion-title>
1225
- <ion-buttons slot="end">
1226
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1227
- <fa-icon [icon]="faXmark"></fa-icon>
1228
- </spx-button>
1229
- </ion-buttons>
1230
- </ion-toolbar>
1231
- </ion-header>
1232
- <ion-content class="ion-padding bg-white">
1233
- <!-- Uren -->
1234
- <div class="custom-bg grid grid-cols-1 gap-3">
1235
- @if (view === 'hours') {
1236
- <div class="flex-wrap gap-2">
1237
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1238
- @for (hour of hourOptions; track hour) {
1239
- <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)">
1240
- {{ hour }}
1241
- </div>
1242
- }
1243
- </div>
1244
- </div>
1245
- }
1246
- <!-- Minuten -->
1247
- @if (view === 'minutes') {
1248
- <div class="grid grid-cols-1 gap-3">
1249
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1250
- @for (minute of minuteOptions; track minute) {
1251
- <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)">
1252
- {{ minute }}
1253
- </div>
1254
- }
1255
- </div>
1256
- </div>
1257
- }
1258
- </div>
1259
- </ion-content>
1222
+ 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>
1223
+ <ion-toolbar>
1224
+ <ion-title>Select {{view}}</ion-title>
1225
+ <ion-buttons slot="end">
1226
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1227
+ <fa-icon [icon]="faXmark"></fa-icon>
1228
+ </spx-button>
1229
+ </ion-buttons>
1230
+ </ion-toolbar>
1231
+ </ion-header>
1232
+ <ion-content class="ion-padding bg-white">
1233
+ <!-- Uren -->
1234
+ <div class="custom-bg grid grid-cols-1 gap-3">
1235
+ @if (view === 'hours') {
1236
+ <div class="flex-wrap gap-2">
1237
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1238
+ @for (hour of hourOptions; track hour) {
1239
+ <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)">
1240
+ {{ hour }}
1241
+ </div>
1242
+ }
1243
+ </div>
1244
+ </div>
1245
+ }
1246
+ <!-- Minuten -->
1247
+ @if (view === 'minutes') {
1248
+ <div class="grid grid-cols-1 gap-3">
1249
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1250
+ @for (minute of minuteOptions; track minute) {
1251
+ <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)">
1252
+ {{ minute }}
1253
+ </div>
1254
+ }
1255
+ </div>
1256
+ </div>
1257
+ }
1258
+ </div>
1259
+ </ion-content>
1260
1260
  `, 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"] }] }); }
1261
1261
  }
1262
1262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
@@ -1270,44 +1270,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1270
1270
  SpxDropdownComponent,
1271
1271
  FontAwesomeModule
1272
1272
  ],
1273
- template: `<ion-header>
1274
- <ion-toolbar>
1275
- <ion-title>Select {{view}}</ion-title>
1276
- <ion-buttons slot="end">
1277
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1278
- <fa-icon [icon]="faXmark"></fa-icon>
1279
- </spx-button>
1280
- </ion-buttons>
1281
- </ion-toolbar>
1282
- </ion-header>
1283
- <ion-content class="ion-padding bg-white">
1284
- <!-- Uren -->
1285
- <div class="custom-bg grid grid-cols-1 gap-3">
1286
- @if (view === 'hours') {
1287
- <div class="flex-wrap gap-2">
1288
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1289
- @for (hour of hourOptions; track hour) {
1290
- <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)">
1291
- {{ hour }}
1292
- </div>
1293
- }
1294
- </div>
1295
- </div>
1296
- }
1297
- <!-- Minuten -->
1298
- @if (view === 'minutes') {
1299
- <div class="grid grid-cols-1 gap-3">
1300
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1301
- @for (minute of minuteOptions; track minute) {
1302
- <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)">
1303
- {{ minute }}
1304
- </div>
1305
- }
1306
- </div>
1307
- </div>
1308
- }
1309
- </div>
1310
- </ion-content>
1273
+ template: `<ion-header>
1274
+ <ion-toolbar>
1275
+ <ion-title>Select {{view}}</ion-title>
1276
+ <ion-buttons slot="end">
1277
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1278
+ <fa-icon [icon]="faXmark"></fa-icon>
1279
+ </spx-button>
1280
+ </ion-buttons>
1281
+ </ion-toolbar>
1282
+ </ion-header>
1283
+ <ion-content class="ion-padding bg-white">
1284
+ <!-- Uren -->
1285
+ <div class="custom-bg grid grid-cols-1 gap-3">
1286
+ @if (view === 'hours') {
1287
+ <div class="flex-wrap gap-2">
1288
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1289
+ @for (hour of hourOptions; track hour) {
1290
+ <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)">
1291
+ {{ hour }}
1292
+ </div>
1293
+ }
1294
+ </div>
1295
+ </div>
1296
+ }
1297
+ <!-- Minuten -->
1298
+ @if (view === 'minutes') {
1299
+ <div class="grid grid-cols-1 gap-3">
1300
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1301
+ @for (minute of minuteOptions; track minute) {
1302
+ <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)">
1303
+ {{ minute }}
1304
+ </div>
1305
+ }
1306
+ </div>
1307
+ </div>
1308
+ }
1309
+ </div>
1310
+ </ion-content>
1311
1311
  `,
1312
1312
  }]
1313
1313
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { view: [{
@@ -1416,12 +1416,12 @@ class SpxInputTimeComponent {
1416
1416
  }
1417
1417
  }
1418
1418
  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 }); }
1419
- 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">
1420
- <div class="flex items-center justify-around gap-3">
1421
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1422
- <div class="text-gray text-xl">:</div>
1423
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1424
- </div>
1419
+ 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">
1420
+ <div class="flex items-center justify-around gap-3">
1421
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1422
+ <div class="text-gray text-xl">:</div>
1423
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1424
+ </div>
1425
1425
  </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 }] }); }
1426
1426
  }
1427
1427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
@@ -1430,12 +1430,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1430
1430
  SpxButtonComponent,
1431
1431
  SpxDropdownComponent,
1432
1432
  IonicModule
1433
- ], template: `<div class="relative text-black">
1434
- <div class="flex items-center justify-around gap-3">
1435
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1436
- <div class="text-gray text-xl">:</div>
1437
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1438
- </div>
1433
+ ], template: `<div class="relative text-black">
1434
+ <div class="flex items-center justify-around gap-3">
1435
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1436
+ <div class="text-gray text-xl">:</div>
1437
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1438
+ </div>
1439
1439
  </div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
1440
1440
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { spxName: [{
1441
1441
  type: Input
@@ -1590,116 +1590,116 @@ class SpxInputComponent {
1590
1590
  useExisting: SpxInputComponent,
1591
1591
  multi: true
1592
1592
  }
1593
- ], 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
1594
- [spxFocused]="this.spxFocused"
1595
- [spxLabel]="this.spxLabel"
1596
- [spxReadonly]="this.spxReadonly"
1597
- [spxRequired]="this.spxRequired"
1598
- [spxValue]="this.value"
1599
- [spxShowHelp]="this.spxShowHelp"
1600
- [spxCompact]="this.spxCompact"
1601
- [spxShowClear]="this.spxShowClear"
1602
- [spxShowEdit]="this.spxShowEdit"
1603
- [spxShowLabel]="this.spxShowLabel"
1604
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1605
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1606
- (spxClear)="this.handleClear()"
1607
- (spxEdit)="this.handleEdit()"
1608
- (spxHelp)="this.handleHelp()"
1609
- (spxFocus)="this.setFocusIn()"
1610
- (spxFocusOut)="this.setFocusOut()"
1611
- (spxSearch)="this.handleSearch()">
1612
- <div controls>
1613
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1614
- <spx-input-text
1615
- (spxBlurFromChild)="this.handleBlur()"
1616
- (spxChange)="this.handleChange($event)"
1617
- (spxFocus)="this.handleFocus()"
1618
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1619
- [spxAutofocus]="this.spxAutofocus"
1620
- [spxCapitalize]="this.spxCapitalize"
1621
- [spxFocused]="this.spxFocused"
1622
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1623
- [spxName]="this.spxName"
1624
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1625
- [spxReadonly]="this.spxReadonly"
1626
- [spxSuggestions]="this.spxSuggestions"
1627
- [spxType]="this.spxType"
1628
- [spxValidators]="this.spxValidators"
1629
- [value]="this.value"
1630
- ></spx-input-text>
1631
- }
1632
- @if (this.spxType === 'date') {
1633
- <spx-input-date
1634
- (spxChange)="this.handleChange($event)"
1635
- (spxFocus)="this.handleFocus()"
1636
- [spxFocused]="this.spxFocused"
1637
- [spxMax]="this.spxMax"
1638
- [spxMin]="this.spxMin"
1639
- [spxName]="this.spxName"
1640
- [spxReadonly]="this.spxReadonly"
1641
- [spxSelectDay]="this.spxSelectDay"
1642
- [spxSelectMonth]="this.spxSelectMonth"
1643
- [spxValidators]="this.spxValidators"
1644
- [value]="this.value"
1645
- ></spx-input-date>
1646
- }
1647
- @if (this.spxType === 'float') {
1648
- <spx-input-float
1649
- (spxChange)="this.handleChange($event)"
1650
- (spxFocus)="this.handleFocus()"
1651
- [spxAutofocus]="this.spxAutofocus"
1652
- [spxFocused]="this.spxFocused"
1653
- [spxName]="this.spxName"
1654
- [spxReadonly]="this.spxReadonly"
1655
- [spxStep]="this.spxStep"
1656
- [spxValidators]="this.spxValidators"
1657
- [value]="this.value"
1658
- ></spx-input-float>
1659
- }
1660
- @if (this.spxType === 'number') {
1661
- <spx-input-number
1662
- (spxChange)="this.handleChange($event)"
1663
- (spxFocus)="this.handleFocus()"
1664
- [spxAutofocus]="this.spxAutofocus"
1665
- [spxFocused]="this.spxFocused"
1666
- [spxInputMode]="this.spxInputMode"
1667
- [spxName]="this.spxName"
1668
- [spxReadonly]="this.spxReadonly"
1669
- [spxStep]="this.spxStep"
1670
- [spxValidators]="this.spxValidators"
1671
- [value]="this.value"
1672
- ></spx-input-number>
1673
- }
1674
- @if (this.spxType === 'radio') {
1675
- <spx-input-radio
1676
- #radioInput
1677
- (spxChange)="this.handleChange($event)"
1678
- [spxFocused]="this.spxFocused"
1679
- [spxName]="this.spxName"
1680
- [spxReadonly]="this.spxReadonly"
1681
- [spxShowLabel]="this.spxShowLabel"
1682
- [spxSuggestions]="this.spxSuggestions"
1683
- [spxValidators]="this.spxValidators"
1684
- [value]="this.value"
1685
- ></spx-input-radio>
1686
- }
1687
- @if (this.spxType === 'time') {
1688
- <spx-input-time
1689
- #timeInput
1690
- (spxChange)="this.handleChange($event)"
1691
- (spxFocus)="this.handleFocus()"
1692
- [spxFocused]="this.spxFocused"
1693
- [spxName]="this.spxName"
1694
- [spxReadonly]="this.spxReadonly"
1695
- [spxValidators]="this.spxValidators"
1696
- [value]="this.value"
1697
- ></spx-input-time>
1698
- }
1699
- </div>
1700
- <div validation-messages>
1701
- <ng-content></ng-content>
1702
- </div>
1593
+ ], 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
1594
+ [spxFocused]="this.spxFocused"
1595
+ [spxLabel]="this.spxLabel"
1596
+ [spxReadonly]="this.spxReadonly"
1597
+ [spxRequired]="this.spxRequired"
1598
+ [spxValue]="this.value"
1599
+ [spxShowHelp]="this.spxShowHelp"
1600
+ [spxCompact]="this.spxCompact"
1601
+ [spxShowClear]="this.spxShowClear"
1602
+ [spxShowEdit]="this.spxShowEdit"
1603
+ [spxShowLabel]="this.spxShowLabel"
1604
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1605
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1606
+ (spxClear)="this.handleClear()"
1607
+ (spxEdit)="this.handleEdit()"
1608
+ (spxHelp)="this.handleHelp()"
1609
+ (spxFocus)="this.setFocusIn()"
1610
+ (spxFocusOut)="this.setFocusOut()"
1611
+ (spxSearch)="this.handleSearch()">
1612
+ <div controls>
1613
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1614
+ <spx-input-text
1615
+ (spxBlurFromChild)="this.handleBlur()"
1616
+ (spxChange)="this.handleChange($event)"
1617
+ (spxFocus)="this.handleFocus()"
1618
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1619
+ [spxAutofocus]="this.spxAutofocus"
1620
+ [spxCapitalize]="this.spxCapitalize"
1621
+ [spxFocused]="this.spxFocused"
1622
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1623
+ [spxName]="this.spxName"
1624
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1625
+ [spxReadonly]="this.spxReadonly"
1626
+ [spxSuggestions]="this.spxSuggestions"
1627
+ [spxType]="this.spxType"
1628
+ [spxValidators]="this.spxValidators"
1629
+ [value]="this.value"
1630
+ ></spx-input-text>
1631
+ }
1632
+ @if (this.spxType === 'date') {
1633
+ <spx-input-date
1634
+ (spxChange)="this.handleChange($event)"
1635
+ (spxFocus)="this.handleFocus()"
1636
+ [spxFocused]="this.spxFocused"
1637
+ [spxMax]="this.spxMax"
1638
+ [spxMin]="this.spxMin"
1639
+ [spxName]="this.spxName"
1640
+ [spxReadonly]="this.spxReadonly"
1641
+ [spxSelectDay]="this.spxSelectDay"
1642
+ [spxSelectMonth]="this.spxSelectMonth"
1643
+ [spxValidators]="this.spxValidators"
1644
+ [value]="this.value"
1645
+ ></spx-input-date>
1646
+ }
1647
+ @if (this.spxType === 'float') {
1648
+ <spx-input-float
1649
+ (spxChange)="this.handleChange($event)"
1650
+ (spxFocus)="this.handleFocus()"
1651
+ [spxAutofocus]="this.spxAutofocus"
1652
+ [spxFocused]="this.spxFocused"
1653
+ [spxName]="this.spxName"
1654
+ [spxReadonly]="this.spxReadonly"
1655
+ [spxStep]="this.spxStep"
1656
+ [spxValidators]="this.spxValidators"
1657
+ [value]="this.value"
1658
+ ></spx-input-float>
1659
+ }
1660
+ @if (this.spxType === 'number') {
1661
+ <spx-input-number
1662
+ (spxChange)="this.handleChange($event)"
1663
+ (spxFocus)="this.handleFocus()"
1664
+ [spxAutofocus]="this.spxAutofocus"
1665
+ [spxFocused]="this.spxFocused"
1666
+ [spxInputMode]="this.spxInputMode"
1667
+ [spxName]="this.spxName"
1668
+ [spxReadonly]="this.spxReadonly"
1669
+ [spxStep]="this.spxStep"
1670
+ [spxValidators]="this.spxValidators"
1671
+ [value]="this.value"
1672
+ ></spx-input-number>
1673
+ }
1674
+ @if (this.spxType === 'radio') {
1675
+ <spx-input-radio
1676
+ #radioInput
1677
+ (spxChange)="this.handleChange($event)"
1678
+ [spxFocused]="this.spxFocused"
1679
+ [spxName]="this.spxName"
1680
+ [spxReadonly]="this.spxReadonly"
1681
+ [spxShowLabel]="this.spxShowLabel"
1682
+ [spxSuggestions]="this.spxSuggestions"
1683
+ [spxValidators]="this.spxValidators"
1684
+ [value]="this.value"
1685
+ ></spx-input-radio>
1686
+ }
1687
+ @if (this.spxType === 'time') {
1688
+ <spx-input-time
1689
+ #timeInput
1690
+ (spxChange)="this.handleChange($event)"
1691
+ (spxFocus)="this.handleFocus()"
1692
+ [spxFocused]="this.spxFocused"
1693
+ [spxName]="this.spxName"
1694
+ [spxReadonly]="this.spxReadonly"
1695
+ [spxValidators]="this.spxValidators"
1696
+ [value]="this.value"
1697
+ ></spx-input-time>
1698
+ }
1699
+ </div>
1700
+ <div validation-messages>
1701
+ <ng-content></ng-content>
1702
+ </div>
1703
1703
  </spx-input-box>`, isInline: true, dependencies: [{ kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxName", "spxReadonly", "spxValidators", "spxFocused", "spxSelectMonth", "spxSelectDay", "value", "spxLastKeyPressed", "spxSelectStep", "spxInternalValue", "spxSuggestions", "spxWasInternalUpdate"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1704
1704
  }
1705
1705
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
@@ -1726,116 +1726,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1726
1726
  multi: true
1727
1727
  }
1728
1728
  ],
1729
- template: `<spx-input-box
1730
- [spxFocused]="this.spxFocused"
1731
- [spxLabel]="this.spxLabel"
1732
- [spxReadonly]="this.spxReadonly"
1733
- [spxRequired]="this.spxRequired"
1734
- [spxValue]="this.value"
1735
- [spxShowHelp]="this.spxShowHelp"
1736
- [spxCompact]="this.spxCompact"
1737
- [spxShowClear]="this.spxShowClear"
1738
- [spxShowEdit]="this.spxShowEdit"
1739
- [spxShowLabel]="this.spxShowLabel"
1740
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1741
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1742
- (spxClear)="this.handleClear()"
1743
- (spxEdit)="this.handleEdit()"
1744
- (spxHelp)="this.handleHelp()"
1745
- (spxFocus)="this.setFocusIn()"
1746
- (spxFocusOut)="this.setFocusOut()"
1747
- (spxSearch)="this.handleSearch()">
1748
- <div controls>
1749
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1750
- <spx-input-text
1751
- (spxBlurFromChild)="this.handleBlur()"
1752
- (spxChange)="this.handleChange($event)"
1753
- (spxFocus)="this.handleFocus()"
1754
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1755
- [spxAutofocus]="this.spxAutofocus"
1756
- [spxCapitalize]="this.spxCapitalize"
1757
- [spxFocused]="this.spxFocused"
1758
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1759
- [spxName]="this.spxName"
1760
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1761
- [spxReadonly]="this.spxReadonly"
1762
- [spxSuggestions]="this.spxSuggestions"
1763
- [spxType]="this.spxType"
1764
- [spxValidators]="this.spxValidators"
1765
- [value]="this.value"
1766
- ></spx-input-text>
1767
- }
1768
- @if (this.spxType === 'date') {
1769
- <spx-input-date
1770
- (spxChange)="this.handleChange($event)"
1771
- (spxFocus)="this.handleFocus()"
1772
- [spxFocused]="this.spxFocused"
1773
- [spxMax]="this.spxMax"
1774
- [spxMin]="this.spxMin"
1775
- [spxName]="this.spxName"
1776
- [spxReadonly]="this.spxReadonly"
1777
- [spxSelectDay]="this.spxSelectDay"
1778
- [spxSelectMonth]="this.spxSelectMonth"
1779
- [spxValidators]="this.spxValidators"
1780
- [value]="this.value"
1781
- ></spx-input-date>
1782
- }
1783
- @if (this.spxType === 'float') {
1784
- <spx-input-float
1785
- (spxChange)="this.handleChange($event)"
1786
- (spxFocus)="this.handleFocus()"
1787
- [spxAutofocus]="this.spxAutofocus"
1788
- [spxFocused]="this.spxFocused"
1789
- [spxName]="this.spxName"
1790
- [spxReadonly]="this.spxReadonly"
1791
- [spxStep]="this.spxStep"
1792
- [spxValidators]="this.spxValidators"
1793
- [value]="this.value"
1794
- ></spx-input-float>
1795
- }
1796
- @if (this.spxType === 'number') {
1797
- <spx-input-number
1798
- (spxChange)="this.handleChange($event)"
1799
- (spxFocus)="this.handleFocus()"
1800
- [spxAutofocus]="this.spxAutofocus"
1801
- [spxFocused]="this.spxFocused"
1802
- [spxInputMode]="this.spxInputMode"
1803
- [spxName]="this.spxName"
1804
- [spxReadonly]="this.spxReadonly"
1805
- [spxStep]="this.spxStep"
1806
- [spxValidators]="this.spxValidators"
1807
- [value]="this.value"
1808
- ></spx-input-number>
1809
- }
1810
- @if (this.spxType === 'radio') {
1811
- <spx-input-radio
1812
- #radioInput
1813
- (spxChange)="this.handleChange($event)"
1814
- [spxFocused]="this.spxFocused"
1815
- [spxName]="this.spxName"
1816
- [spxReadonly]="this.spxReadonly"
1817
- [spxShowLabel]="this.spxShowLabel"
1818
- [spxSuggestions]="this.spxSuggestions"
1819
- [spxValidators]="this.spxValidators"
1820
- [value]="this.value"
1821
- ></spx-input-radio>
1822
- }
1823
- @if (this.spxType === 'time') {
1824
- <spx-input-time
1825
- #timeInput
1826
- (spxChange)="this.handleChange($event)"
1827
- (spxFocus)="this.handleFocus()"
1828
- [spxFocused]="this.spxFocused"
1829
- [spxName]="this.spxName"
1830
- [spxReadonly]="this.spxReadonly"
1831
- [spxValidators]="this.spxValidators"
1832
- [value]="this.value"
1833
- ></spx-input-time>
1834
- }
1835
- </div>
1836
- <div validation-messages>
1837
- <ng-content></ng-content>
1838
- </div>
1729
+ template: `<spx-input-box
1730
+ [spxFocused]="this.spxFocused"
1731
+ [spxLabel]="this.spxLabel"
1732
+ [spxReadonly]="this.spxReadonly"
1733
+ [spxRequired]="this.spxRequired"
1734
+ [spxValue]="this.value"
1735
+ [spxShowHelp]="this.spxShowHelp"
1736
+ [spxCompact]="this.spxCompact"
1737
+ [spxShowClear]="this.spxShowClear"
1738
+ [spxShowEdit]="this.spxShowEdit"
1739
+ [spxShowLabel]="this.spxShowLabel"
1740
+ [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1741
+ [spxShowValidationMessages]="this.spxShowValidationMessages"
1742
+ (spxClear)="this.handleClear()"
1743
+ (spxEdit)="this.handleEdit()"
1744
+ (spxHelp)="this.handleHelp()"
1745
+ (spxFocus)="this.setFocusIn()"
1746
+ (spxFocusOut)="this.setFocusOut()"
1747
+ (spxSearch)="this.handleSearch()">
1748
+ <div controls>
1749
+ @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1750
+ <spx-input-text
1751
+ (spxBlurFromChild)="this.handleBlur()"
1752
+ (spxChange)="this.handleChange($event)"
1753
+ (spxFocus)="this.handleFocus()"
1754
+ [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1755
+ [spxAutofocus]="this.spxAutofocus"
1756
+ [spxCapitalize]="this.spxCapitalize"
1757
+ [spxFocused]="this.spxFocused"
1758
+ [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1759
+ [spxName]="this.spxName"
1760
+ [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1761
+ [spxReadonly]="this.spxReadonly"
1762
+ [spxSuggestions]="this.spxSuggestions"
1763
+ [spxType]="this.spxType"
1764
+ [spxValidators]="this.spxValidators"
1765
+ [value]="this.value"
1766
+ ></spx-input-text>
1767
+ }
1768
+ @if (this.spxType === 'date') {
1769
+ <spx-input-date
1770
+ (spxChange)="this.handleChange($event)"
1771
+ (spxFocus)="this.handleFocus()"
1772
+ [spxFocused]="this.spxFocused"
1773
+ [spxMax]="this.spxMax"
1774
+ [spxMin]="this.spxMin"
1775
+ [spxName]="this.spxName"
1776
+ [spxReadonly]="this.spxReadonly"
1777
+ [spxSelectDay]="this.spxSelectDay"
1778
+ [spxSelectMonth]="this.spxSelectMonth"
1779
+ [spxValidators]="this.spxValidators"
1780
+ [value]="this.value"
1781
+ ></spx-input-date>
1782
+ }
1783
+ @if (this.spxType === 'float') {
1784
+ <spx-input-float
1785
+ (spxChange)="this.handleChange($event)"
1786
+ (spxFocus)="this.handleFocus()"
1787
+ [spxAutofocus]="this.spxAutofocus"
1788
+ [spxFocused]="this.spxFocused"
1789
+ [spxName]="this.spxName"
1790
+ [spxReadonly]="this.spxReadonly"
1791
+ [spxStep]="this.spxStep"
1792
+ [spxValidators]="this.spxValidators"
1793
+ [value]="this.value"
1794
+ ></spx-input-float>
1795
+ }
1796
+ @if (this.spxType === 'number') {
1797
+ <spx-input-number
1798
+ (spxChange)="this.handleChange($event)"
1799
+ (spxFocus)="this.handleFocus()"
1800
+ [spxAutofocus]="this.spxAutofocus"
1801
+ [spxFocused]="this.spxFocused"
1802
+ [spxInputMode]="this.spxInputMode"
1803
+ [spxName]="this.spxName"
1804
+ [spxReadonly]="this.spxReadonly"
1805
+ [spxStep]="this.spxStep"
1806
+ [spxValidators]="this.spxValidators"
1807
+ [value]="this.value"
1808
+ ></spx-input-number>
1809
+ }
1810
+ @if (this.spxType === 'radio') {
1811
+ <spx-input-radio
1812
+ #radioInput
1813
+ (spxChange)="this.handleChange($event)"
1814
+ [spxFocused]="this.spxFocused"
1815
+ [spxName]="this.spxName"
1816
+ [spxReadonly]="this.spxReadonly"
1817
+ [spxShowLabel]="this.spxShowLabel"
1818
+ [spxSuggestions]="this.spxSuggestions"
1819
+ [spxValidators]="this.spxValidators"
1820
+ [value]="this.value"
1821
+ ></spx-input-radio>
1822
+ }
1823
+ @if (this.spxType === 'time') {
1824
+ <spx-input-time
1825
+ #timeInput
1826
+ (spxChange)="this.handleChange($event)"
1827
+ (spxFocus)="this.handleFocus()"
1828
+ [spxFocused]="this.spxFocused"
1829
+ [spxName]="this.spxName"
1830
+ [spxReadonly]="this.spxReadonly"
1831
+ [spxValidators]="this.spxValidators"
1832
+ [value]="this.value"
1833
+ ></spx-input-time>
1834
+ }
1835
+ </div>
1836
+ <div validation-messages>
1837
+ <ng-content></ng-content>
1838
+ </div>
1839
1839
  </spx-input-box>`,
1840
1840
  }]
1841
1841
  }], propDecorators: { spxLabel: [{