@softpak/components 18.5.0-beta.5 → 18.6.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +24 -24
  2. package/esm2022/spx-alert/public-api.mjs +1 -1
  3. package/esm2022/spx-alert/spx-alert.component.mjs +115 -115
  4. package/esm2022/spx-alert/spx-alert.interface.mjs +1 -1
  5. package/esm2022/spx-app-configuration/public-api.mjs +1 -1
  6. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +1 -1
  7. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +1 -1
  8. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +1 -1
  9. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +1 -1
  10. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +1 -1
  11. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +1 -1
  12. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +1 -1
  13. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +1 -1
  14. package/esm2022/spx-app-expiry/public-api.mjs +1 -1
  15. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +57 -57
  16. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +1 -1
  17. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +1 -1
  18. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +1 -1
  19. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +1 -1
  20. package/esm2022/spx-app-update/public-api.mjs +1 -1
  21. package/esm2022/spx-app-update/spx-app-update.component.mjs +59 -59
  22. package/esm2022/spx-button/public-api.mjs +1 -1
  23. package/esm2022/spx-button/spx-button.component.mjs +63 -63
  24. package/esm2022/spx-capitalize/public-api.mjs +1 -1
  25. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +1 -1
  26. package/esm2022/spx-card/public-api.mjs +1 -1
  27. package/esm2022/spx-card/spx-card-grid.component.mjs +27 -27
  28. package/esm2022/spx-card/spx-card-item.component.mjs +69 -69
  29. package/esm2022/spx-card/spx-card-line.component.mjs +77 -77
  30. package/esm2022/spx-card/spx-card.component.mjs +51 -51
  31. package/esm2022/spx-change-details/public-api.mjs +1 -1
  32. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +1 -1
  33. package/esm2022/spx-change-details/spx-change-details.component.mjs +3 -3
  34. package/esm2022/spx-channel-selection/public-api.mjs +1 -1
  35. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +13 -13
  36. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +13 -13
  37. package/esm2022/spx-check-digit/public-api.mjs +1 -1
  38. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +3 -3
  39. package/esm2022/spx-form-section/public-api.mjs +1 -1
  40. package/esm2022/spx-form-section/spx-form-section.component.mjs +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 -57
  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 -744
  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
@@ -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
@@ -852,19 +852,13 @@ class SpxInputFloatComponent {
852
852
  this.spxFocus.emit();
853
853
  }
854
854
  handleSetValue(newValue) {
855
- console.log('new value a', newValue);
856
855
  if (this.isNumeric(newValue?.value)) {
857
856
  this.internalValue = {
858
857
  first: Math.floor(parseFloat(newValue?.value)),
859
858
  second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,
860
859
  };
861
- console.log('new value c', {
862
- first: Math.floor(parseFloat(newValue?.value)),
863
- second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,
864
- });
865
860
  }
866
861
  else {
867
- console.log('new value b', newValue);
868
862
  this.internalValue = {
869
863
  first: null,
870
864
  second: null,
@@ -894,31 +888,31 @@ class SpxInputFloatComponent {
894
888
  return /^[+-]?\d+(\.\d+)?$/.test(value);
895
889
  }
896
890
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
897
- 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">
898
- <input
899
- #firstInputRef
900
- class="spx-input-float__input"
901
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
902
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
903
- [attr.pattern]="'[0-9]*'"
904
- [attr.step]="1"
905
- [attr.type]="'text'"
906
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
907
- (focus)="this.handleFocus()"
908
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
909
- (ngModelChange)="this.handleInput($event, 1)" />
910
- <span class="text-black font-bold text-2xl mx-4">,</span>
911
- <input
912
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
913
- class="spx-input-float__input"
914
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
915
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
916
- (focus)="this.handleFocus()"
917
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
918
- (ngModelChange)="this.handleInput($event, 2)"
919
- [attr.step]="1"
920
- [attr.type]="'text'"
921
- [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]*'" />
922
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"] }] }); }
923
917
  }
924
918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
@@ -926,31 +920,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
926
920
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
927
921
  SpxButtonComponent,
928
922
  FormsModule,
929
- ], template: `<div class="flex items-end">
930
- <input
931
- #firstInputRef
932
- class="spx-input-float__input"
933
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
934
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
935
- [attr.pattern]="'[0-9]*'"
936
- [attr.step]="1"
937
- [attr.type]="'text'"
938
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
939
- (focus)="this.handleFocus()"
940
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
941
- (ngModelChange)="this.handleInput($event, 1)" />
942
- <span class="text-black font-bold text-2xl mx-4">,</span>
943
- <input
944
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
945
- class="spx-input-float__input"
946
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
947
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
948
- (focus)="this.handleFocus()"
949
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
950
- (ngModelChange)="this.handleInput($event, 2)"
951
- [attr.step]="1"
952
- [attr.type]="'text'"
953
- [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]*'" />
954
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"] }]
955
949
  }], propDecorators: { spxName: [{
956
950
  type: Input
@@ -1008,36 +1002,36 @@ class SpxInputNumberComponent {
1008
1002
  this.spxChange.emit(this.value);
1009
1003
  }
1010
1004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1011
- 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">
1012
- <input
1013
- #input
1014
- class="spx-input-number__input"
1015
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1016
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1017
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1018
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1019
- [attr.value]="this.value?.value ? this.value?.value : undefined"
1020
- [attr.step]="this.spxStep ? this.spxStep : undefined"
1021
- [attr.type]="'number'"
1022
- (focus)="this.handleFocus()"
1023
- (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)" />
1024
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"] }); }
1025
1019
  }
1026
1020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
1027
1021
  type: Component,
1028
- args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
1029
- <input
1030
- #input
1031
- class="spx-input-number__input"
1032
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
1033
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
1034
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
1035
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
1036
- [attr.value]="this.value?.value ? this.value?.value : undefined"
1037
- [attr.step]="this.spxStep ? this.spxStep : undefined"
1038
- [attr.type]="'number'"
1039
- (focus)="this.handleFocus()"
1040
- (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)" />
1041
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"] }]
1042
1036
  }], propDecorators: { spxName: [{
1043
1037
  type: Input
@@ -1134,17 +1128,17 @@ class SpxInputRadioComponent {
1134
1128
  });
1135
1129
  }
1136
1130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1137
- 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">
1138
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1139
- <spx-suggestion
1140
- [spxDisabled]="this.spxReadonly"
1141
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1142
- [spxSelected]="this.value?.value === valuePair?.value"
1143
- [spxTabbable]="this.focusPosition === i"
1144
- (click)="this.handleSuggestionClick($event, valuePair)">
1145
- {{valuePair?.description}}
1146
- </spx-suggestion>
1147
- }
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
+ }
1148
1142
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
1149
1143
  }
1150
1144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
@@ -1155,17 +1149,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1155
1149
  imports: [
1156
1150
  SpxSuggestionComponent
1157
1151
  ],
1158
- template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
1159
- @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
1160
- <spx-suggestion
1161
- [spxDisabled]="this.spxReadonly"
1162
- [spxFocused]="this.spxFocused && i === this.focusPosition"
1163
- [spxSelected]="this.value?.value === valuePair?.value"
1164
- [spxTabbable]="this.focusPosition === i"
1165
- (click)="this.handleSuggestionClick($event, valuePair)">
1166
- {{valuePair?.description}}
1167
- </spx-suggestion>
1168
- }
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
+ }
1169
1163
  </div>`,
1170
1164
  }]
1171
1165
  }], propDecorators: { spxName: [{
@@ -1225,44 +1219,44 @@ class SpxInputTimeModalComponent {
1225
1219
  this.modalController.dismiss(value);
1226
1220
  }
1227
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 }); }
1228
- 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>
1229
- <ion-toolbar>
1230
- <ion-title>Select {{view}}</ion-title>
1231
- <ion-buttons slot="end">
1232
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1233
- <fa-icon [icon]="faXmark"></fa-icon>
1234
- </spx-button>
1235
- </ion-buttons>
1236
- </ion-toolbar>
1237
- </ion-header>
1238
- <ion-content class="ion-padding bg-white">
1239
- <!-- Uren -->
1240
- <div class="custom-bg grid grid-cols-1 gap-3">
1241
- @if (view === 'hours') {
1242
- <div class="flex-wrap gap-2">
1243
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1244
- @for (hour of hourOptions; track hour) {
1245
- <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)">
1246
- {{ hour }}
1247
- </div>
1248
- }
1249
- </div>
1250
- </div>
1251
- }
1252
- <!-- Minuten -->
1253
- @if (view === 'minutes') {
1254
- <div class="grid grid-cols-1 gap-3">
1255
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1256
- @for (minute of minuteOptions; track minute) {
1257
- <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)">
1258
- {{ minute }}
1259
- </div>
1260
- }
1261
- </div>
1262
- </div>
1263
- }
1264
- </div>
1265
- </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>
1266
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"] }] }); }
1267
1261
  }
1268
1262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
@@ -1276,44 +1270,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1276
1270
  SpxDropdownComponent,
1277
1271
  FontAwesomeModule
1278
1272
  ],
1279
- template: `<ion-header>
1280
- <ion-toolbar>
1281
- <ion-title>Select {{view}}</ion-title>
1282
- <ion-buttons slot="end">
1283
- <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
1284
- <fa-icon [icon]="faXmark"></fa-icon>
1285
- </spx-button>
1286
- </ion-buttons>
1287
- </ion-toolbar>
1288
- </ion-header>
1289
- <ion-content class="ion-padding bg-white">
1290
- <!-- Uren -->
1291
- <div class="custom-bg grid grid-cols-1 gap-3">
1292
- @if (view === 'hours') {
1293
- <div class="flex-wrap gap-2">
1294
- <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
1295
- @for (hour of hourOptions; track hour) {
1296
- <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)">
1297
- {{ hour }}
1298
- </div>
1299
- }
1300
- </div>
1301
- </div>
1302
- }
1303
- <!-- Minuten -->
1304
- @if (view === 'minutes') {
1305
- <div class="grid grid-cols-1 gap-3">
1306
- <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
1307
- @for (minute of minuteOptions; track minute) {
1308
- <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)">
1309
- {{ minute }}
1310
- </div>
1311
- }
1312
- </div>
1313
- </div>
1314
- }
1315
- </div>
1316
- </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>
1317
1311
  `,
1318
1312
  }]
1319
1313
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { view: [{
@@ -1422,12 +1416,12 @@ class SpxInputTimeComponent {
1422
1416
  }
1423
1417
  }
1424
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 }); }
1425
- 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">
1426
- <div class="flex items-center justify-around gap-3">
1427
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1428
- <div class="text-gray text-xl">:</div>
1429
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1430
- </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>
1431
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 }] }); }
1432
1426
  }
1433
1427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
@@ -1436,12 +1430,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1436
1430
  SpxButtonComponent,
1437
1431
  SpxDropdownComponent,
1438
1432
  IonicModule
1439
- ], template: `<div class="relative text-black">
1440
- <div class="flex items-center justify-around gap-3">
1441
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
1442
- <div class="text-gray text-xl">:</div>
1443
- <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
1444
- </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>
1445
1439
  </div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
1446
1440
  }], ctorParameters: () => [{ type: i1$2.ModalController }], propDecorators: { spxName: [{
1447
1441
  type: Input
@@ -1596,116 +1590,116 @@ class SpxInputComponent {
1596
1590
  useExisting: SpxInputComponent,
1597
1591
  multi: true
1598
1592
  }
1599
- ], 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
1600
- [spxFocused]="this.spxFocused"
1601
- [spxLabel]="this.spxLabel"
1602
- [spxReadonly]="this.spxReadonly"
1603
- [spxRequired]="this.spxRequired"
1604
- [spxValue]="this.value"
1605
- [spxShowHelp]="this.spxShowHelp"
1606
- [spxCompact]="this.spxCompact"
1607
- [spxShowClear]="this.spxShowClear"
1608
- [spxShowEdit]="this.spxShowEdit"
1609
- [spxShowLabel]="this.spxShowLabel"
1610
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1611
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1612
- (spxClear)="this.handleClear()"
1613
- (spxEdit)="this.handleEdit()"
1614
- (spxHelp)="this.handleHelp()"
1615
- (spxFocus)="this.setFocusIn()"
1616
- (spxFocusOut)="this.setFocusOut()"
1617
- (spxSearch)="this.handleSearch()">
1618
- <div controls>
1619
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1620
- <spx-input-text
1621
- (spxBlurFromChild)="this.handleBlur()"
1622
- (spxChange)="this.handleChange($event)"
1623
- (spxFocus)="this.handleFocus()"
1624
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1625
- [spxAutofocus]="this.spxAutofocus"
1626
- [spxCapitalize]="this.spxCapitalize"
1627
- [spxFocused]="this.spxFocused"
1628
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1629
- [spxName]="this.spxName"
1630
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1631
- [spxReadonly]="this.spxReadonly"
1632
- [spxSuggestions]="this.spxSuggestions"
1633
- [spxType]="this.spxType"
1634
- [spxValidators]="this.spxValidators"
1635
- [value]="this.value"
1636
- ></spx-input-text>
1637
- }
1638
- @if (this.spxType === 'date') {
1639
- <spx-input-date
1640
- (spxChange)="this.handleChange($event)"
1641
- (spxFocus)="this.handleFocus()"
1642
- [spxFocused]="this.spxFocused"
1643
- [spxMax]="this.spxMax"
1644
- [spxMin]="this.spxMin"
1645
- [spxName]="this.spxName"
1646
- [spxReadonly]="this.spxReadonly"
1647
- [spxSelectDay]="this.spxSelectDay"
1648
- [spxSelectMonth]="this.spxSelectMonth"
1649
- [spxValidators]="this.spxValidators"
1650
- [value]="this.value"
1651
- ></spx-input-date>
1652
- }
1653
- @if (this.spxType === 'float') {
1654
- <spx-input-float
1655
- (spxChange)="this.handleChange($event)"
1656
- (spxFocus)="this.handleFocus()"
1657
- [spxAutofocus]="this.spxAutofocus"
1658
- [spxFocused]="this.spxFocused"
1659
- [spxName]="this.spxName"
1660
- [spxReadonly]="this.spxReadonly"
1661
- [spxStep]="this.spxStep"
1662
- [spxValidators]="this.spxValidators"
1663
- [value]="this.value"
1664
- ></spx-input-float>
1665
- }
1666
- @if (this.spxType === 'number') {
1667
- <spx-input-number
1668
- (spxChange)="this.handleChange($event)"
1669
- (spxFocus)="this.handleFocus()"
1670
- [spxAutofocus]="this.spxAutofocus"
1671
- [spxFocused]="this.spxFocused"
1672
- [spxInputMode]="this.spxInputMode"
1673
- [spxName]="this.spxName"
1674
- [spxReadonly]="this.spxReadonly"
1675
- [spxStep]="this.spxStep"
1676
- [spxValidators]="this.spxValidators"
1677
- [value]="this.value"
1678
- ></spx-input-number>
1679
- }
1680
- @if (this.spxType === 'radio') {
1681
- <spx-input-radio
1682
- #radioInput
1683
- (spxChange)="this.handleChange($event)"
1684
- [spxFocused]="this.spxFocused"
1685
- [spxName]="this.spxName"
1686
- [spxReadonly]="this.spxReadonly"
1687
- [spxShowLabel]="this.spxShowLabel"
1688
- [spxSuggestions]="this.spxSuggestions"
1689
- [spxValidators]="this.spxValidators"
1690
- [value]="this.value"
1691
- ></spx-input-radio>
1692
- }
1693
- @if (this.spxType === 'time') {
1694
- <spx-input-time
1695
- #timeInput
1696
- (spxChange)="this.handleChange($event)"
1697
- (spxFocus)="this.handleFocus()"
1698
- [spxFocused]="this.spxFocused"
1699
- [spxName]="this.spxName"
1700
- [spxReadonly]="this.spxReadonly"
1701
- [spxValidators]="this.spxValidators"
1702
- [value]="this.value"
1703
- ></spx-input-time>
1704
- }
1705
- </div>
1706
- <div validation-messages>
1707
- <ng-content></ng-content>
1708
- </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>
1709
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"] }] }); }
1710
1704
  }
1711
1705
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
@@ -1732,116 +1726,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1732
1726
  multi: true
1733
1727
  }
1734
1728
  ],
1735
- template: `<spx-input-box
1736
- [spxFocused]="this.spxFocused"
1737
- [spxLabel]="this.spxLabel"
1738
- [spxReadonly]="this.spxReadonly"
1739
- [spxRequired]="this.spxRequired"
1740
- [spxValue]="this.value"
1741
- [spxShowHelp]="this.spxShowHelp"
1742
- [spxCompact]="this.spxCompact"
1743
- [spxShowClear]="this.spxShowClear"
1744
- [spxShowEdit]="this.spxShowEdit"
1745
- [spxShowLabel]="this.spxShowLabel"
1746
- [spxShowSearch]="this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'"
1747
- [spxShowValidationMessages]="this.spxShowValidationMessages"
1748
- (spxClear)="this.handleClear()"
1749
- (spxEdit)="this.handleEdit()"
1750
- (spxHelp)="this.handleHelp()"
1751
- (spxFocus)="this.setFocusIn()"
1752
- (spxFocusOut)="this.setFocusOut()"
1753
- (spxSearch)="this.handleSearch()">
1754
- <div controls>
1755
- @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {
1756
- <spx-input-text
1757
- (spxBlurFromChild)="this.handleBlur()"
1758
- (spxChange)="this.handleChange($event)"
1759
- (spxFocus)="this.handleFocus()"
1760
- [spxAutocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
1761
- [spxAutofocus]="this.spxAutofocus"
1762
- [spxCapitalize]="this.spxCapitalize"
1763
- [spxFocused]="this.spxFocused"
1764
- [spxInputMode]="this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode"
1765
- [spxName]="this.spxName"
1766
- [spxPattern]="this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern"
1767
- [spxReadonly]="this.spxReadonly"
1768
- [spxSuggestions]="this.spxSuggestions"
1769
- [spxType]="this.spxType"
1770
- [spxValidators]="this.spxValidators"
1771
- [value]="this.value"
1772
- ></spx-input-text>
1773
- }
1774
- @if (this.spxType === 'date') {
1775
- <spx-input-date
1776
- (spxChange)="this.handleChange($event)"
1777
- (spxFocus)="this.handleFocus()"
1778
- [spxFocused]="this.spxFocused"
1779
- [spxMax]="this.spxMax"
1780
- [spxMin]="this.spxMin"
1781
- [spxName]="this.spxName"
1782
- [spxReadonly]="this.spxReadonly"
1783
- [spxSelectDay]="this.spxSelectDay"
1784
- [spxSelectMonth]="this.spxSelectMonth"
1785
- [spxValidators]="this.spxValidators"
1786
- [value]="this.value"
1787
- ></spx-input-date>
1788
- }
1789
- @if (this.spxType === 'float') {
1790
- <spx-input-float
1791
- (spxChange)="this.handleChange($event)"
1792
- (spxFocus)="this.handleFocus()"
1793
- [spxAutofocus]="this.spxAutofocus"
1794
- [spxFocused]="this.spxFocused"
1795
- [spxName]="this.spxName"
1796
- [spxReadonly]="this.spxReadonly"
1797
- [spxStep]="this.spxStep"
1798
- [spxValidators]="this.spxValidators"
1799
- [value]="this.value"
1800
- ></spx-input-float>
1801
- }
1802
- @if (this.spxType === 'number') {
1803
- <spx-input-number
1804
- (spxChange)="this.handleChange($event)"
1805
- (spxFocus)="this.handleFocus()"
1806
- [spxAutofocus]="this.spxAutofocus"
1807
- [spxFocused]="this.spxFocused"
1808
- [spxInputMode]="this.spxInputMode"
1809
- [spxName]="this.spxName"
1810
- [spxReadonly]="this.spxReadonly"
1811
- [spxStep]="this.spxStep"
1812
- [spxValidators]="this.spxValidators"
1813
- [value]="this.value"
1814
- ></spx-input-number>
1815
- }
1816
- @if (this.spxType === 'radio') {
1817
- <spx-input-radio
1818
- #radioInput
1819
- (spxChange)="this.handleChange($event)"
1820
- [spxFocused]="this.spxFocused"
1821
- [spxName]="this.spxName"
1822
- [spxReadonly]="this.spxReadonly"
1823
- [spxShowLabel]="this.spxShowLabel"
1824
- [spxSuggestions]="this.spxSuggestions"
1825
- [spxValidators]="this.spxValidators"
1826
- [value]="this.value"
1827
- ></spx-input-radio>
1828
- }
1829
- @if (this.spxType === 'time') {
1830
- <spx-input-time
1831
- #timeInput
1832
- (spxChange)="this.handleChange($event)"
1833
- (spxFocus)="this.handleFocus()"
1834
- [spxFocused]="this.spxFocused"
1835
- [spxName]="this.spxName"
1836
- [spxReadonly]="this.spxReadonly"
1837
- [spxValidators]="this.spxValidators"
1838
- [value]="this.value"
1839
- ></spx-input-time>
1840
- }
1841
- </div>
1842
- <div validation-messages>
1843
- <ng-content></ng-content>
1844
- </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>
1845
1839
  </spx-input-box>`,
1846
1840
  }]
1847
1841
  }], propDecorators: { spxLabel: [{