@softpak/components 19.0.0-beta.1 → 19.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/esm2022/placeholder.mjs +2 -0
  2. package/esm2022/public_api.mjs +2 -0
  3. package/esm2022/softpak-components.mjs +5 -0
  4. package/esm2022/spx-alert/public-api.mjs +3 -0
  5. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
  6. package/esm2022/spx-alert/spx-alert.component.mjs +203 -0
  7. package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
  8. package/esm2022/spx-app-configuration/public-api.mjs +8 -0
  9. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
  10. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
  11. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
  12. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
  13. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
  14. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
  15. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
  16. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
  17. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
  18. package/esm2022/spx-app-expiry/public-api.mjs +6 -0
  19. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +5 -0
  20. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +107 -0
  21. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +2 -0
  22. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +5 -0
  23. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +5 -0
  24. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +5 -0
  25. package/esm2022/spx-app-update/public-api.mjs +2 -0
  26. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +5 -0
  27. package/esm2022/spx-app-update/spx-app-update.component.mjs +323 -0
  28. package/esm2022/spx-button/public-api.mjs +2 -0
  29. package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
  30. package/esm2022/spx-button/spx-button.component.mjs +142 -0
  31. package/esm2022/spx-capitalize/public-api.mjs +2 -0
  32. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
  33. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
  34. package/esm2022/spx-card/public-api.mjs +5 -0
  35. package/esm2022/spx-card/softpak-components-spx-card.mjs +5 -0
  36. package/esm2022/spx-card/spx-card-grid.component.mjs +46 -0
  37. package/esm2022/spx-card/spx-card-item.component.mjs +117 -0
  38. package/esm2022/spx-card/spx-card-line.component.mjs +124 -0
  39. package/esm2022/spx-card/spx-card.component.mjs +96 -0
  40. package/esm2022/spx-change-details/public-api.mjs +2 -0
  41. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  42. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  43. package/esm2022/spx-change-details/spx-change-details.component.mjs +197 -0
  44. package/esm2022/spx-channel-selection/public-api.mjs +3 -0
  45. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
  46. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
  47. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +132 -0
  48. package/esm2022/spx-check-digit/public-api.mjs +2 -0
  49. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
  50. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +91 -0
  51. package/esm2022/spx-form-section/public-api.mjs +2 -0
  52. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
  53. package/esm2022/spx-form-section/spx-form-section.component.mjs +42 -0
  54. package/esm2022/spx-form-view/public-api.mjs +7 -0
  55. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  56. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +117 -0
  57. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +6 -0
  58. package/esm2022/spx-form-view/spx-form-button.interface.mjs +2 -0
  59. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  60. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  61. package/esm2022/spx-form-view/spx-form-view.component.mjs +297 -0
  62. package/esm2022/spx-form-view/spx-form.interface.mjs +2 -0
  63. package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
  64. package/esm2022/spx-helpers/public-api.mjs +4 -0
  65. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
  66. package/esm2022/spx-helpers/spx-severity.enum.mjs +10 -0
  67. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
  68. package/esm2022/spx-inputs/public-api.mjs +6 -0
  69. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
  70. package/esm2022/spx-inputs/spx-dropdown.component.mjs +93 -0
  71. package/esm2022/spx-inputs/spx-input-box.component.mjs +273 -0
  72. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +194 -0
  73. package/esm2022/spx-inputs/spx-input-float.component.mjs +157 -0
  74. package/esm2022/spx-inputs/spx-input-number.component.mjs +87 -0
  75. package/esm2022/spx-inputs/spx-input-radio.component.mjs +129 -0
  76. package/esm2022/spx-inputs/spx-input-text.component.mjs +160 -0
  77. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +131 -0
  78. package/esm2022/spx-inputs/spx-input-time.component.mjs +156 -0
  79. package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
  80. package/esm2022/spx-inputs/spx-input.component.mjs +461 -0
  81. package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
  82. package/esm2022/spx-navigation/public-api.mjs +5 -0
  83. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
  84. package/esm2022/spx-navigation/spx-home-tile.component.mjs +71 -0
  85. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +24 -0
  86. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
  87. package/esm2022/spx-navigation/spx-navigation.component.mjs +47 -0
  88. package/esm2022/spx-number-check/public-api.mjs +2 -0
  89. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  90. package/esm2022/spx-number-check/spx-number-check.component.mjs +265 -0
  91. package/esm2022/spx-pagination/public-api.mjs +2 -0
  92. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +5 -0
  93. package/esm2022/spx-pagination/spx-pagination.component.mjs +44 -0
  94. package/esm2022/spx-patch/patch-check.function.mjs +9 -0
  95. package/esm2022/spx-patch/public-api.mjs +4 -0
  96. package/esm2022/spx-patch/release-check.function.mjs +14 -0
  97. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
  98. package/esm2022/spx-patch/spx-patch.component.mjs +54 -0
  99. package/esm2022/spx-progress-bar/public-api.mjs +2 -0
  100. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
  101. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
  102. package/esm2022/spx-spinner/public-api.mjs +2 -0
  103. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
  104. package/esm2022/spx-spinner/spx-spinner.component.mjs +160 -0
  105. package/esm2022/spx-stock-info/public-api.mjs +3 -0
  106. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +5 -0
  107. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +2 -0
  108. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +324 -0
  109. package/esm2022/spx-storage/public-api.mjs +3 -0
  110. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
  111. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
  112. package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
  113. package/esm2022/spx-suggestion/public-api.mjs +2 -0
  114. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
  115. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +61 -0
  116. package/esm2022/spx-toaster/public-api.mjs +4 -0
  117. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
  118. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
  119. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
  120. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +168 -0
  121. package/esm2022/spx-update/public-api.mjs +3 -0
  122. package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
  123. package/esm2022/spx-update/src/spx-update-info.component.mjs +86 -0
  124. package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
  125. package/esm2022/spx-validation/max.validator.mjs +17 -0
  126. package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
  127. package/esm2022/spx-validation/min.validator.mjs +17 -0
  128. package/esm2022/spx-validation/minlength.validator.mjs +20 -0
  129. package/esm2022/spx-validation/pattern.validator.mjs +12 -0
  130. package/esm2022/spx-validation/public-api.mjs +9 -0
  131. package/esm2022/spx-validation/required.validator.mjs +12 -0
  132. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
  133. package/esm2022/spx-validation/spx-validate-control.component.mjs +65 -0
  134. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  135. package/fesm2022/softpak-components-spx-alert.mjs +56 -45
  136. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  137. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  138. package/fesm2022/softpak-components-spx-app-expiry.mjs +59 -41
  139. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-app-update.mjs +74 -68
  141. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-button.mjs +5 -4
  143. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  144. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  145. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  146. package/fesm2022/softpak-components-spx-card.mjs +163 -127
  147. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  148. package/fesm2022/softpak-components-spx-change-details.mjs +5 -7
  149. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  150. package/fesm2022/softpak-components-spx-channel-selection.mjs +11 -12
  151. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  152. package/fesm2022/softpak-components-spx-check-digit.mjs +6 -9
  153. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  154. package/fesm2022/softpak-components-spx-form-section.mjs +20 -15
  155. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  156. package/fesm2022/softpak-components-spx-form-view.mjs +147 -139
  157. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  158. package/fesm2022/softpak-components-spx-helpers.mjs +1 -0
  159. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  160. package/fesm2022/softpak-components-spx-inputs.mjs +817 -862
  161. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  162. package/fesm2022/softpak-components-spx-navigation.mjs +53 -52
  163. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  164. package/fesm2022/softpak-components-spx-number-check.mjs +49 -42
  165. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  166. package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
  167. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  168. package/fesm2022/softpak-components-spx-patch.mjs +29 -22
  169. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  170. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  171. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  172. package/fesm2022/softpak-components-spx-spinner.mjs +144 -143
  173. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  174. package/fesm2022/softpak-components-spx-stock-info.mjs +8 -11
  175. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  176. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  177. package/fesm2022/softpak-components-spx-suggestion.mjs +41 -49
  178. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  179. package/fesm2022/softpak-components-spx-toaster.mjs +94 -98
  180. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  181. package/fesm2022/softpak-components-spx-update.mjs +11 -11
  182. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  183. package/fesm2022/softpak-components-spx-validation.mjs +5 -8
  184. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  185. package/package.json +76 -23
  186. package/spx-app-update/spx-app-update.component.d.ts +3 -3
  187. package/spx-helpers/spx-severity.enum.d.ts +2 -1
  188. package/spx-inputs/spx-input-date/spx-input-date.component.d.ts +43 -0
  189. package/spx-inputs/spx-input-float.component.d.ts +5 -4
  190. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  191. package/spx-inputs/spx-input-time.component.d.ts +1 -1
  192. package/spx-inputs/spx-input.component.d.ts +2 -1
  193. package/spx-suggestion/spx-suggestion.component.d.ts +5 -5
  194. package/tailwind.css +1 -1
  195. package/spx-inputs/spx-input-date.component.d.ts +0 -50
@@ -0,0 +1,129 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
3
+ import { fromEvent } from 'rxjs';
4
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
5
+ import * as i0 from "@angular/core";
6
+ export class SpxInputRadioComponent {
7
+ constructor() {
8
+ this.cachedSuggestions = [];
9
+ this.focusPosition = 0;
10
+ this.spxFocused = false;
11
+ this.spxShowLabel = true;
12
+ this.spxReadonly = false;
13
+ this.spxSuggestions = [];
14
+ this.spxChange = new EventEmitter();
15
+ this.spxFocus = new EventEmitter();
16
+ }
17
+ spxFocusIn() {
18
+ this.listenToKeys();
19
+ this.determineFocusPosition();
20
+ }
21
+ spxFocusOut() {
22
+ this.subscriptionKeyDown?.unsubscribe();
23
+ this.subscriptionKeyUp?.unsubscribe();
24
+ }
25
+ ngOnChanges(changes) {
26
+ if ((changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))) {
27
+ this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];
28
+ }
29
+ }
30
+ handleSuggestionClick(event, valuePair) {
31
+ if (this.spxReadonly) {
32
+ console.log('spxInputRadio: clicked, but readonly');
33
+ }
34
+ else {
35
+ console.log('spxInputRadio: clicked');
36
+ this.select(valuePair);
37
+ }
38
+ }
39
+ determineFocusPosition() {
40
+ if (this.value && this.spxSuggestions?.length) {
41
+ const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));
42
+ this.focusPosition = index >= 0 ? index : 0;
43
+ }
44
+ else {
45
+ this.focusPosition = 0;
46
+ }
47
+ }
48
+ select(valuePair) {
49
+ this.focusPosition = 0;
50
+ this.value = valuePair;
51
+ this.spxChange.emit(valuePair);
52
+ }
53
+ listenToKeys() {
54
+ this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {
55
+ if ((event.key === 'ArrowUp' || event.key === 'ArrowLeft') && this.focusPosition > 0) {
56
+ this.focusPosition = this.focusPosition - 1;
57
+ this.select(this.spxSuggestions.at(this.focusPosition));
58
+ event.preventDefault();
59
+ }
60
+ if ((event.key === 'ArrowDown' || event.key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {
61
+ this.focusPosition = this.focusPosition + 1;
62
+ this.select(this.spxSuggestions.at(this.focusPosition));
63
+ event.preventDefault();
64
+ }
65
+ });
66
+ this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {
67
+ if (event.key === 'ArrowDown' ||
68
+ event.key === 'ArrowLeft' ||
69
+ event.key === 'ArrowRight' ||
70
+ event.key === 'ArrowUp') {
71
+ event.preventDefault();
72
+ }
73
+ });
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
+ 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">
77
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
78
+ <spx-suggestion
79
+ [spxDisabled]="this.spxReadonly"
80
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
81
+ [spxSelected]="this.value?.value === valuePair?.value"
82
+ [spxTabbable]="this.focusPosition === i"
83
+ (click)="this.handleSuggestionClick($event, valuePair)">
84
+ {{valuePair?.description}}
85
+ </spx-suggestion>
86
+ }
87
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
90
+ type: Component,
91
+ args: [{
92
+ selector: 'spx-input-radio',
93
+ standalone: true,
94
+ imports: [
95
+ SpxSuggestionComponent
96
+ ],
97
+ template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
98
+ @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
99
+ <spx-suggestion
100
+ [spxDisabled]="this.spxReadonly"
101
+ [spxFocused]="this.spxFocused && i === this.focusPosition"
102
+ [spxSelected]="this.value?.value === valuePair?.value"
103
+ [spxTabbable]="this.focusPosition === i"
104
+ (click)="this.handleSuggestionClick($event, valuePair)">
105
+ {{valuePair?.description}}
106
+ </spx-suggestion>
107
+ }
108
+ </div>`,
109
+ }]
110
+ }], propDecorators: { spxName: [{
111
+ type: Input
112
+ }], spxValidators: [{
113
+ type: Input
114
+ }], spxFocused: [{
115
+ type: Input
116
+ }], spxShowLabel: [{
117
+ type: Input
118
+ }], spxReadonly: [{
119
+ type: Input
120
+ }], spxSuggestions: [{
121
+ type: Input
122
+ }], value: [{
123
+ type: Input
124
+ }], spxChange: [{
125
+ type: Output
126
+ }], spxFocus: [{
127
+ type: Output
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1yYWRpby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBcUJuRSxNQUFNLE9BQU8sc0JBQXNCO0lBbkJuQztRQW9CRSxzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBSW5CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBd0IsRUFBRSxDQUFDO1FBRXhDLGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDbkYsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBbUVuRTtJQWhFQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsQ0FBQyxPQUFP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QUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRSxJQUFLLEtBQXVCLENBQUMsR0FBRyxLQUFLLFdBQVc7Z0JBQzdDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFdBQVc7Z0JBQzNDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFlBQVk7Z0JBQzVDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E5RVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaVdBYnZCOzs7Ozs7Ozs7OzthQVdDLDREQWJULHNCQUFzQjs7NEZBZWIsc0JBQXNCO2tCQW5CbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDekI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7OzthQVdDO2lCQUNaOzhCQUtVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtc3VnZ2VzdGlvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtcmFkaW8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudFxuXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtMlwiIFtjbGFzcy5tdC0zXT1cInRoaXMuc3B4U2hvd0xhYmVsXCI+XG4gICAgICAgIEBmb3IgKHZhbHVlUGFpciBvZiB0aGlzLmNhY2hlZFN1Z2dlc3Rpb25zOyB0cmFjayB2YWx1ZVBhaXI7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgPHNweC1zdWdnZXN0aW9uXG4gICAgICAgICAgICBbc3B4RGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seVwiXG4gICAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWQgJiYgaSA9PT0gdGhpcy5mb2N1c1Bvc2l0aW9uXCJcbiAgICAgICAgICAgIFtzcHhTZWxlY3RlZF09XCJ0aGlzLnZhbHVlPy52YWx1ZSA9PT0gdmFsdWVQYWlyPy52YWx1ZVwiXG4gICAgICAgICAgICBbc3B4VGFiYmFibGVdPVwidGhpcy5mb2N1c1Bvc2l0aW9uID09PSBpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljaygkZXZlbnQsIHZhbHVlUGFpcilcIj5cbiAgICAgICAgICAgIHt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgPC9zcHgtc3VnZ2VzdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRSYWRpb0NvbXBvbmVudCB7XG4gIGNhY2hlZFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8YW55PltdID0gW107XG4gIHByb3RlY3RlZCBmb2N1c1Bvc2l0aW9uID0gMDtcbiAgLy8gQEVsZW1lbnQoKSBlbCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBzcHhOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzITogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4U2hvd0xhYmVsID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IFNweFZhbHVlUGFpcjxhbnk+W10gPSBbXTtcbiAgQElucHV0KCkgdmFsdWU/OiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbktleVVwPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbktleURvd24/OiBTdWJzY3JpcHRpb247XG4gIHNweEZvY3VzSW4oKSB7XG4gICAgdGhpcy5saXN0ZW5Ub0tleXMoKTtcbiAgICB0aGlzLmRldGVybWluZUZvY3VzUG9zaXRpb24oKTtcbiAgfVxuXG4gIHNweEZvY3VzT3V0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uS2V5RG93bj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleVVwPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChjaGFuZ2VzWydzcHhTdWdnZXN0aW9ucyddICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3NweFN1Z2dlc3Rpb25zJ10/LnByZXZpb3VzVmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydzcHhTdWdnZXN0aW9ucyddPy5jdXJyZW50VmFsdWUpKVxuICAgICkge1xuICAgICAgdGhpcy5jYWNoZWRTdWdnZXN0aW9ucyA9IGNoYW5nZXNbJ3NweFN1Z2dlc3Rpb25zJ10/LmN1cnJlbnRWYWx1ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2soZXZlbnQ6IEV2ZW50LCB2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxhbnk+KSB7XG4gICAgaWYgKHRoaXMuc3B4UmVhZG9ubHkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdzcHhJbnB1dFJhZGlvOiBjbGlja2VkLCBidXQgcmVhZG9ubHknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ3NweElucHV0UmFkaW86IGNsaWNrZWQnKTtcbiAgICAgIHRoaXMuc2VsZWN0KHZhbHVlUGFpcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVGb2N1c1Bvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuc3B4U3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNweFN1Z2dlc3Rpb25zLmZpbmRJbmRleCh2YWx1ZVBhaXIgPT4gdmFsdWVQYWlyVG9WYWx1ZSh2YWx1ZVBhaXIpID09PSB2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMudmFsdWUpKTtcbiAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IGluZGV4ID49IDAgPyBpbmRleCA6IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3QodmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4pOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSAwO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVBhaXI7XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh2YWx1ZVBhaXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0tleXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25LZXlVcCA9IGZyb21FdmVudCh3aW5kb3csICdrZXl1cCcpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmICgoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93VXAnIHx8IChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09ICdBcnJvd0xlZnQnKSAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPiAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IHRoaXMuZm9jdXNQb3NpdGlvbiAtIDE7XG4gICAgICAgIHRoaXMuc2VsZWN0KHRoaXMuc3B4U3VnZ2VzdGlvbnMuYXQodGhpcy5mb2N1c1Bvc2l0aW9uKSEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgaWYgKCgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyB8fCAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dSaWdodCcpICYmIHRoaXMuZm9jdXNQb3NpdGlvbiA8IHRoaXMuc3B4U3VnZ2VzdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSB0aGlzLmZvY3VzUG9zaXRpb24gKyAxO1xuICAgICAgICB0aGlzLnNlbGVjdCh0aGlzLnNweFN1Z2dlc3Rpb25zLmF0KHRoaXMuZm9jdXNQb3NpdGlvbikhKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleURvd24gPSBmcm9tRXZlbnQod2luZG93LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmICgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyB8fFxuICAgICAgICAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dMZWZ0JyB8fFxuICAgICAgICAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dSaWdodCcgfHxcbiAgICAgICAgKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,160 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { SpxDropdownComponent } from './spx-dropdown.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SpxInputTextComponent {
5
+ constructor() {
6
+ this.spxAutofocus = false;
7
+ this.spxSuggestions = [];
8
+ this.spxReadonly = false;
9
+ this.spxCapitalize = false;
10
+ this.spxFocused = true;
11
+ this.spxType = 'text';
12
+ this.spxBlurFromChild = new EventEmitter();
13
+ this.spxChange = new EventEmitter();
14
+ this.spxFocus = new EventEmitter();
15
+ this.spxWasInternalUpdate = false;
16
+ }
17
+ spxSetFocus() {
18
+ this.inputRef?.nativeElement?.focus();
19
+ }
20
+ componentDidLoad() {
21
+ if (this.spxAutofocus) {
22
+ this.spxFocus.emit();
23
+ this.spxSetFocus();
24
+ }
25
+ }
26
+ handleBlur() {
27
+ this.spxBlurFromChild.emit();
28
+ }
29
+ handleFocus() {
30
+ this.spxFocus.emit();
31
+ }
32
+ handleDescriptionInput(event) {
33
+ this.value = {
34
+ description: event.target ? event.target.value : null,
35
+ value: event.target ? event.target.value : null,
36
+ };
37
+ this.spxChange.emit(this.value);
38
+ }
39
+ handleSuggestionClick(value) {
40
+ if (!this.spxReadonly) {
41
+ this.value = value;
42
+ this.spxChange.emit(this.value);
43
+ this.spxFocused = false;
44
+ }
45
+ }
46
+ handleKeyUp() {
47
+ this.spxFocused = true;
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ 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">
51
+ <input
52
+ #input
53
+ class="font-bold text-lg w-full outline-none"
54
+ autocomplete="off"
55
+ spellcheck="false"
56
+ [class.bg-white]="!this.spxReadonly"
57
+ [class.bg-gray-300]="this.spxReadonly"
58
+ [class.cursor-not-allowed]="this.spxReadonly"
59
+ [class.uppercase]="this.spxCapitalize"
60
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
61
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
62
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
63
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
64
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
65
+ [attr.name]="this.spxName"
66
+ [attr.type]="this.spxType"
67
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
68
+ (blur)="this.handleBlur()"
69
+ (keyUp)="this.handleKeyUp()"
70
+ (focus)="this.handleFocus()"
71
+ (input)="this.handleDescriptionInput($event)"
72
+ />
73
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
74
+ <span>{{this.value?.value}}</span>
75
+ }
76
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
77
+ <spx-dropdown
78
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
79
+ </spx-dropdown>
80
+ }
81
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, decorators: [{
84
+ type: Component,
85
+ args: [{
86
+ selector: 'spx-input-text',
87
+ standalone: true,
88
+ imports: [
89
+ SpxDropdownComponent
90
+ ],
91
+ template: `<div class="relative text-black">
92
+ <input
93
+ #input
94
+ class="font-bold text-lg w-full outline-none"
95
+ autocomplete="off"
96
+ spellcheck="false"
97
+ [class.bg-white]="!this.spxReadonly"
98
+ [class.bg-gray-300]="this.spxReadonly"
99
+ [class.cursor-not-allowed]="this.spxReadonly"
100
+ [class.uppercase]="this.spxCapitalize"
101
+ [attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
102
+ [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
103
+ [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
104
+ [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
105
+ [attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
106
+ [attr.name]="this.spxName"
107
+ [attr.type]="this.spxType"
108
+ [value]="this.value?.description ? this.value?.description : this.value?.value"
109
+ (blur)="this.handleBlur()"
110
+ (keyUp)="this.handleKeyUp()"
111
+ (focus)="this.handleFocus()"
112
+ (input)="this.handleDescriptionInput($event)"
113
+ />
114
+ @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
115
+ <span>{{this.value?.value}}</span>
116
+ }
117
+ @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
118
+ <spx-dropdown
119
+ [spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
120
+ </spx-dropdown>
121
+ }
122
+ </div>`,
123
+ }]
124
+ }], propDecorators: { spxName: [{
125
+ type: Input
126
+ }], spxAutofocus: [{
127
+ type: Input
128
+ }], spxAutocomplete: [{
129
+ type: Input
130
+ }], spxInputMode: [{
131
+ type: Input
132
+ }], spxPattern: [{
133
+ type: Input
134
+ }], spxSuggestions: [{
135
+ type: Input
136
+ }], spxReadonly: [{
137
+ type: Input
138
+ }], spxValidators: [{
139
+ type: Input
140
+ }], spxCapitalize: [{
141
+ type: Input
142
+ }], spxFocused: [{
143
+ type: Input
144
+ }], spxType: [{
145
+ type: Input
146
+ }], value: [{
147
+ type: Input
148
+ }], spxBlurFromChild: [{
149
+ type: Output
150
+ }], spxChange: [{
151
+ type: Output
152
+ }], spxFocus: [{
153
+ type: Output
154
+ }], spxWasInternalUpdate: [{
155
+ type: Input
156
+ }], inputRef: [{
157
+ type: ViewChild,
158
+ args: ['input', { static: true }]
159
+ }] } });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQXlDaEUsTUFBTSxPQUFPLHFCQUFxQjtJQXZDbEM7UUEyQ1csaUJBQVksR0FBRyxLQUFLLENBQUM7UUFJckIsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQy9ELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsWUFBTyxHQUF1RSxNQUFNLENBQUM7UUFFcEYscUJBQWdCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEUsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0tBMEN2QztJQXRDQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNyRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDaEQsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDOytHQTNEVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixncUJBakN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQStCSCw0REFqQ0wsb0JBQW9COzs0RkFtQ1gscUJBQXFCO2tCQXZDakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjtxQkFDdkI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBK0JIO2lCQUNSOzhCQUlVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNnQyxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFNweERyb3Bkb3duQ29tcG9uZW50XG5dLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB0ZXh0LWJsYWNrXCI+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRcbiAgICAgIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgdy1mdWxsIG91dGxpbmUtbm9uZVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgIFtjbGFzcy5iZy13aGl0ZV09XCIhdGhpcy5zcHhSZWFkb25seVwiXG4gICAgICBbY2xhc3MuYmctZ3JheS0zMDBdPVwidGhpcy5zcHhSZWFkb25seVwiXG4gICAgICBbY2xhc3MuY3Vyc29yLW5vdC1hbGxvd2VkXT1cInRoaXMuc3B4UmVhZG9ubHlcIlxuICAgICAgW2NsYXNzLnVwcGVyY2FzZV09XCJ0aGlzLnNweENhcGl0YWxpemVcIlxuICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cInRoaXMuc3B4QXV0b2NvbXBsZXRlID8gdGhpcy5zcHhBdXRvY29tcGxldGUgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRoaXMuc3B4QXV0b2ZvY3VzID8gdGhpcy5zcHhBdXRvZm9jdXMgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuaW5wdXRNb2RlXT1cInRoaXMuc3B4SW5wdXRNb2RlID8gdGhpcy5zcHhJbnB1dE1vZGUgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIucGF0dGVybl09XCJ0aGlzLnNweFBhdHRlcm4gPyB0aGlzLnNweFBhdHRlcm4gOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJ0aGlzLnNweE5hbWVcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0aGlzLnNweFR5cGVcIlxuICAgICAgW3ZhbHVlXT1cInRoaXMudmFsdWU/LmRlc2NyaXB0aW9uID8gdGhpcy52YWx1ZT8uZGVzY3JpcHRpb24gOiB0aGlzLnZhbHVlPy52YWx1ZVwiXG4gICAgICAoYmx1cik9XCJ0aGlzLmhhbmRsZUJsdXIoKVwiXG4gICAgICAoa2V5VXApPVwidGhpcy5oYW5kbGVLZXlVcCgpXCJcbiAgICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxuICAgICAgKGlucHV0KT1cInRoaXMuaGFuZGxlRGVzY3JpcHRpb25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgQGlmICh0aGlzLnZhbHVlPy5kZXNjcmlwdGlvbiAmJiB0aGlzLnZhbHVlPy52YWx1ZSAmJiB0aGlzLnZhbHVlPy5kZXNjcmlwdGlvbj8udmFsdWVPZigpICE9PSB0aGlzLnZhbHVlPy52YWx1ZT8udmFsdWVPZigpKSB7XG4gICAgICA8c3Bhbj57e3RoaXMudmFsdWU/LnZhbHVlfX08L3NwYW4+XG4gICAgfVxuICAgIEBpZiAodGhpcy5zcHhGb2N1c2VkICYmICh0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5JyB8fCB0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5bnVtYmVyJykpIHtcbiAgICAgIDxzcHgtZHJvcGRvd25cbiAgICAgICAgW3NweFN1Z2dlc3Rpb25zXT1cInRoaXMuc3B4U3VnZ2VzdGlvbnNcIiAoc3B4U2VsZWN0KT1cInRoaXMuaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgIDwvc3B4LWRyb3Bkb3duPlxuICAgIH1cbiAgPC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRUZXh0Q29tcG9uZW50IHtcbiAgLy8gcHJpdmF0ZSBlbElucHV0PzogSFRNTEVsZW1lbnQ7XG4gIC8vIEBFbGVtZW50KCkgZWwhOiBIVE1MRWxlbWVudDtcbiAgQElucHV0KCkgc3B4TmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4QXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweEF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4SW5wdXRNb2RlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhQYXR0ZXJuPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhTdWdnZXN0aW9uczogU3B4VmFsdWVQYWlyPGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc+W10gPSBbXTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycz86IGFueVtdO1xuICBASW5wdXQoKSBzcHhDYXBpdGFsaXplID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhUeXBlOiAnYXV0b2NvbXBsZXRlJyB8ICdvdmVybGF5JyB8ICdvdmVybGF5bnVtYmVyJyB8ICd0ZXh0JyB8ICdwYXNzd29yZCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XG4gIEBPdXRwdXQoKSBzcHhCbHVyRnJvbUNoaWxkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIFxuICBcbiAgc3B4U2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZExvYWQoKSB7XG4gICAgaWYgKHRoaXMuc3B4QXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVCbHVyKCkge1xuICAgIHRoaXMuc3B4Qmx1ckZyb21DaGlsZC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVGb2N1cygpIHtcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZURlc2NyaXB0aW9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCxcbiAgICAgIHZhbHVlOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNweFJlYWRvbmx5KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5zcHhGb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5VXAoKSB7XG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,131 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
3
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
4
+ import { faXmark } from '@fortawesome/free-solid-svg-icons';
5
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
6
+ import { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ionic/angular/standalone";
9
+ import * as i2 from "@fortawesome/angular-fontawesome";
10
+ export class SpxInputTimeModalComponent {
11
+ constructor(modalController) {
12
+ this.modalController = modalController;
13
+ this.change = new EventEmitter();
14
+ this.faXmark = faXmark;
15
+ this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
16
+ this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
17
+ this.typeError = SpxSeverityEnum.error;
18
+ this.hourOptions.push(this.hourOptions.shift());
19
+ this.minuteOptions.push(this.minuteOptions.shift());
20
+ }
21
+ closeDialog() {
22
+ this.modalController.dismiss();
23
+ }
24
+ onChange(value) {
25
+ this.change.emit(value);
26
+ console.log(value);
27
+ this.modalController.dismiss(value);
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ 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>
31
+ <ion-toolbar>
32
+ <ion-title>Select {{view}}</ion-title>
33
+ <ion-buttons slot="end">
34
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
35
+ <fa-icon [icon]="faXmark"></fa-icon>
36
+ </spx-button>
37
+ </ion-buttons>
38
+ </ion-toolbar>
39
+ </ion-header>
40
+ <ion-content class="ion-padding bg-white">
41
+ <!-- Uren -->
42
+ <div class="custom-bg grid grid-cols-1 gap-3">
43
+ @if (view === 'hours') {
44
+ <div class="flex-wrap gap-2">
45
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
46
+ @for (hour of hourOptions; track hour) {
47
+ <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)">
48
+ {{ hour }}
49
+ </div>
50
+ }
51
+ </div>
52
+ </div>
53
+ }
54
+ <!-- Minuten -->
55
+ @if (view === 'minutes') {
56
+ <div class="grid grid-cols-1 gap-3">
57
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
58
+ @for (minute of minuteOptions; track minute) {
59
+ <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)">
60
+ {{ minute }}
61
+ </div>
62
+ }
63
+ </div>
64
+ </div>
65
+ }
66
+ </div>
67
+ </ion-content>
68
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
71
+ type: Component,
72
+ args: [{
73
+ selector: 'spx-input-time-modal',
74
+ standalone: true,
75
+ imports: [
76
+ FontAwesomeModule,
77
+ IonButtons,
78
+ IonContent,
79
+ IonHeader,
80
+ IonTitle,
81
+ IonToolbar,
82
+ SpxButtonComponent,
83
+ ],
84
+ template: `<ion-header>
85
+ <ion-toolbar>
86
+ <ion-title>Select {{view}}</ion-title>
87
+ <ion-buttons slot="end">
88
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
89
+ <fa-icon [icon]="faXmark"></fa-icon>
90
+ </spx-button>
91
+ </ion-buttons>
92
+ </ion-toolbar>
93
+ </ion-header>
94
+ <ion-content class="ion-padding bg-white">
95
+ <!-- Uren -->
96
+ <div class="custom-bg grid grid-cols-1 gap-3">
97
+ @if (view === 'hours') {
98
+ <div class="flex-wrap gap-2">
99
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
100
+ @for (hour of hourOptions; track hour) {
101
+ <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)">
102
+ {{ hour }}
103
+ </div>
104
+ }
105
+ </div>
106
+ </div>
107
+ }
108
+ <!-- Minuten -->
109
+ @if (view === 'minutes') {
110
+ <div class="grid grid-cols-1 gap-3">
111
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
112
+ @for (minute of minuteOptions; track minute) {
113
+ <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)">
114
+ {{ minute }}
115
+ </div>
116
+ }
117
+ </div>
118
+ </div>
119
+ }
120
+ </div>
121
+ </ion-content>
122
+ `,
123
+ }]
124
+ }], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { view: [{
125
+ type: Input
126
+ }], value: [{
127
+ type: Input
128
+ }], change: [{
129
+ type: Output
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQXNEckgsTUFBTSxPQUFPLDBCQUEwQjtJQVVyQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFQMUMsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXBFLFlBQU8sR0FBRyxPQUFPLENBQUE7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQ2pFLGtCQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQUM1RixjQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUdoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXZCVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix5SkF4QzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVCwyREE5Q0MsaUJBQWlCLDZQQUNqQixVQUFVLDhFQUNWLFVBQVUsd0tBQ1YsU0FBUyxvR0FDVCxRQUFRLGlGQUNSLFVBQVUsbUZBQ1Ysa0JBQWtCOzs0RkEwQ1QsMEJBQTBCO2tCQXBEdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixVQUFVO3dCQUNWLGtCQUFrQjtxQkFDckI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVDtpQkFDRjtvRkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IGZhWG1hcmsgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvblRpdGxlLCBJb25Ub29sYmFyLCBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRpbWUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkhlYWRlcixcbiAgICBJb25UaXRsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbl0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gICAgPGlvbi10b29sYmFyPlxuICAgICAgPGlvbi10aXRsZT5TZWxlY3Qge3t2aWV3fX08L2lvbi10aXRsZT5cbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgIDxzcHgtYnV0dG9uIFtzcHhTZXZlcml0eV09XCJ0eXBlRXJyb3JcIiAoc3B4Q2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhWG1hcmtcIj48L2ZhLWljb24+XG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPC9pb24tdG9vbGJhcj5cbiAgPC9pb24taGVhZGVyPlxuICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZyBiZy13aGl0ZVwiPlxuICAgIDwhLS0gVXJlbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJnIGdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTNcIj5cbiAgICAgIEBpZiAodmlldyA9PT0gJ2hvdXJzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTMgbWQ6Z3JpZC1jb2xzLTQgZ2FwLTNcIj5cbiAgICAgICAgICAgIEBmb3IgKGhvdXIgb2YgaG91ck9wdGlvbnM7IHRyYWNrIGhvdXIpIHtcbiAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmb250LWJvbGQgY3VzdG9tLXNxdWFyZSByb3VuZGVkIHRleHQtZ3JheS05MDAgdGV4dC1sZyBwLTMgdy1mdWxsIHRydW5jYXRlIG91dGxpbmUtbm9uZSBiZy1za3ktMTAwIGZvY3VzOnJpbmctc2t5LTMwMCBob3ZlcjpiZy1za3ktMzAwIGFjdGl2ZTpiZy1za3ktMzAwXCIgW2NsYXNzLnNlbGVjdGVkXT1cInZhbHVlID09PSBob3VyXCIgKGNsaWNrKT1cIm9uQ2hhbmdlKGhvdXIpXCI+XG4gICAgICAgICAgICAgICAge3sgaG91ciB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8IS0tIE1pbnV0ZW4gLS0+XG4gICAgICBAaWYgKHZpZXcgPT09ICdtaW51dGVzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy00IG1kOmdyaWQtY29scy01IGdhcC0zXCI+XG4gICAgICAgICAgICBAZm9yIChtaW51dGUgb2YgbWludXRlT3B0aW9uczsgdHJhY2sgbWludXRlKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmb250LWJvbGQgY3VzdG9tLXNxdWFyZSByb3VuZGVkIHRleHQtZ3JheS05MDAgdGV4dC1sZyBwLTMgdy1mdWwgdHJ1bmNhdGUgb3V0bGluZS1ub25lIGJnLXNreS0xMDAgZm9jdXM6cmluZy1za3ktMzAwIGhvdmVyOmJnLXNreS0zMDAgYWN0aXZlOmJnLXNreS0zMDBcIiBbY2xhc3Muc2VsZWN0ZWRdPVwidmFsdWUgPT09IG1pbnV0ZVwiIChjbGljayk9XCJvbkNoYW5nZShtaW51dGUpXCI+XG4gICAgICAgICAgICAgICAge3sgbWludXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9pb24tY29udGVudD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRUaW1lTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aWV3ITogJ2hvdXJzJyB8ICdtaW51dGVzJztcbiAgQElucHV0KCkgdmFsdWUhOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgZmFYbWFyayA9IGZhWG1hcmtcbiAgaG91ck9wdGlvbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9LCAoXywgaSkgPT4gaSk7IC8vIDAgdG8gMjNcbiAgbWludXRlT3B0aW9ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PiBpICogNSk7IC8vIE1pbnV0ZXMgaW4gaW5jcmVtZW50ZW4gdmFuIDVcbiAgdHlwZUVycm9yID0gU3B4U2V2ZXJpdHlFbnVtLmVycm9yO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIpe1xuICAgIHRoaXMuaG91ck9wdGlvbnMucHVzaCh0aGlzLmhvdXJPcHRpb25zLnNoaWZ0KCkhKTtcbiAgICB0aGlzLm1pbnV0ZU9wdGlvbnMucHVzaCh0aGlzLm1pbnV0ZU9wdGlvbnMuc2hpZnQoKSEpO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcygpO1xuICB9XG5cbiAgb25DaGFuZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKHZhbHVlKTtcbiAgfVxufVxuIl19