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

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 (188) hide show
  1. package/fesm2022/softpak-components-spx-alert.mjs +4 -5
  2. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  3. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  4. package/fesm2022/softpak-components-spx-app-expiry.mjs +4 -5
  5. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  6. package/fesm2022/softpak-components-spx-app-update.mjs +4 -5
  7. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  8. package/fesm2022/softpak-components-spx-button.mjs +4 -5
  9. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  10. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  11. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  12. package/fesm2022/softpak-components-spx-card.mjs +15 -18
  13. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  14. package/fesm2022/softpak-components-spx-change-details.mjs +4 -4
  15. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  16. package/fesm2022/softpak-components-spx-channel-selection.mjs +7 -9
  17. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  18. package/fesm2022/softpak-components-spx-check-digit.mjs +4 -4
  19. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  20. package/fesm2022/softpak-components-spx-form-section.mjs +4 -4
  21. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  22. package/fesm2022/softpak-components-spx-form-view.mjs +8 -9
  23. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  24. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  25. package/fesm2022/softpak-components-spx-inputs.mjs +40 -46
  26. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  27. package/fesm2022/softpak-components-spx-navigation.mjs +11 -12
  28. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  29. package/fesm2022/softpak-components-spx-number-check.mjs +4 -5
  30. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  31. package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
  32. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-patch.mjs +4 -5
  34. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  35. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  36. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-spinner.mjs +4 -4
  38. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  39. package/fesm2022/softpak-components-spx-stock-info.mjs +4 -4
  40. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  42. package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
  43. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  44. package/fesm2022/softpak-components-spx-toaster.mjs +5 -6
  45. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  46. package/fesm2022/softpak-components-spx-update.mjs +7 -9
  47. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  48. package/fesm2022/softpak-components-spx-validation.mjs +4 -4
  49. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  50. package/package.json +24 -78
  51. package/spx-alert/spx-alert.component.d.ts +4 -4
  52. package/spx-inputs/spx-input-box.component.d.ts +4 -4
  53. package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
  54. package/tailwind.css +1 -1
  55. package/esm2022/placeholder.mjs +0 -2
  56. package/esm2022/public_api.mjs +0 -2
  57. package/esm2022/softpak-components.mjs +0 -5
  58. package/esm2022/spx-alert/public-api.mjs +0 -3
  59. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +0 -5
  60. package/esm2022/spx-alert/spx-alert.component.mjs +0 -203
  61. package/esm2022/spx-alert/spx-alert.interface.mjs +0 -3
  62. package/esm2022/spx-app-configuration/public-api.mjs +0 -8
  63. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +0 -5
  64. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +0 -2
  65. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +0 -2
  66. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +0 -8
  67. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +0 -2
  68. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +0 -2
  69. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +0 -8
  70. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +0 -6
  71. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +0 -2
  72. package/esm2022/spx-app-expiry/public-api.mjs +0 -6
  73. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +0 -5
  74. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +0 -107
  75. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +0 -2
  76. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +0 -5
  77. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +0 -5
  78. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +0 -5
  79. package/esm2022/spx-app-update/public-api.mjs +0 -2
  80. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +0 -5
  81. package/esm2022/spx-app-update/spx-app-update.component.mjs +0 -323
  82. package/esm2022/spx-button/public-api.mjs +0 -2
  83. package/esm2022/spx-button/softpak-components-spx-button.mjs +0 -5
  84. package/esm2022/spx-button/spx-button.component.mjs +0 -142
  85. package/esm2022/spx-capitalize/public-api.mjs +0 -2
  86. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +0 -5
  87. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +0 -20
  88. package/esm2022/spx-card/public-api.mjs +0 -5
  89. package/esm2022/spx-card/softpak-components-spx-card.mjs +0 -5
  90. package/esm2022/spx-card/spx-card-grid.component.mjs +0 -46
  91. package/esm2022/spx-card/spx-card-item.component.mjs +0 -117
  92. package/esm2022/spx-card/spx-card-line.component.mjs +0 -124
  93. package/esm2022/spx-card/spx-card.component.mjs +0 -96
  94. package/esm2022/spx-change-details/public-api.mjs +0 -2
  95. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +0 -5
  96. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +0 -2
  97. package/esm2022/spx-change-details/spx-change-details.component.mjs +0 -197
  98. package/esm2022/spx-channel-selection/public-api.mjs +0 -3
  99. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +0 -5
  100. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +0 -45
  101. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +0 -132
  102. package/esm2022/spx-check-digit/public-api.mjs +0 -2
  103. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +0 -5
  104. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +0 -91
  105. package/esm2022/spx-form-section/public-api.mjs +0 -2
  106. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +0 -5
  107. package/esm2022/spx-form-section/spx-form-section.component.mjs +0 -42
  108. package/esm2022/spx-form-view/public-api.mjs +0 -7
  109. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +0 -5
  110. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +0 -117
  111. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +0 -6
  112. package/esm2022/spx-form-view/spx-form-button.interface.mjs +0 -2
  113. package/esm2022/spx-form-view/spx-form-field.interface.mjs +0 -2
  114. package/esm2022/spx-form-view/spx-form-section.interface.mjs +0 -2
  115. package/esm2022/spx-form-view/spx-form-view.component.mjs +0 -297
  116. package/esm2022/spx-form-view/spx-form.interface.mjs +0 -2
  117. package/esm2022/spx-helpers/calc-check-digit.function.mjs +0 -21
  118. package/esm2022/spx-helpers/public-api.mjs +0 -4
  119. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +0 -5
  120. package/esm2022/spx-helpers/spx-severity.enum.mjs +0 -10
  121. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +0 -7
  122. package/esm2022/spx-inputs/public-api.mjs +0 -6
  123. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +0 -5
  124. package/esm2022/spx-inputs/spx-dropdown.component.mjs +0 -93
  125. package/esm2022/spx-inputs/spx-input-box.component.mjs +0 -273
  126. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +0 -194
  127. package/esm2022/spx-inputs/spx-input-float.component.mjs +0 -157
  128. package/esm2022/spx-inputs/spx-input-number.component.mjs +0 -87
  129. package/esm2022/spx-inputs/spx-input-radio.component.mjs +0 -129
  130. package/esm2022/spx-inputs/spx-input-text.component.mjs +0 -160
  131. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +0 -131
  132. package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -156
  133. package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
  134. package/esm2022/spx-inputs/spx-input.component.mjs +0 -461
  135. package/esm2022/spx-inputs/spx-value-interface.mjs +0 -2
  136. package/esm2022/spx-navigation/public-api.mjs +0 -5
  137. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +0 -5
  138. package/esm2022/spx-navigation/spx-home-tile.component.mjs +0 -71
  139. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +0 -24
  140. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +0 -2
  141. package/esm2022/spx-navigation/spx-navigation.component.mjs +0 -47
  142. package/esm2022/spx-number-check/public-api.mjs +0 -2
  143. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +0 -5
  144. package/esm2022/spx-number-check/spx-number-check.component.mjs +0 -265
  145. package/esm2022/spx-pagination/public-api.mjs +0 -2
  146. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +0 -5
  147. package/esm2022/spx-pagination/spx-pagination.component.mjs +0 -44
  148. package/esm2022/spx-patch/patch-check.function.mjs +0 -9
  149. package/esm2022/spx-patch/public-api.mjs +0 -4
  150. package/esm2022/spx-patch/release-check.function.mjs +0 -14
  151. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +0 -5
  152. package/esm2022/spx-patch/spx-patch.component.mjs +0 -54
  153. package/esm2022/spx-progress-bar/public-api.mjs +0 -2
  154. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +0 -5
  155. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +0 -29
  156. package/esm2022/spx-spinner/public-api.mjs +0 -2
  157. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +0 -5
  158. package/esm2022/spx-spinner/spx-spinner.component.mjs +0 -160
  159. package/esm2022/spx-stock-info/public-api.mjs +0 -3
  160. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +0 -5
  161. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +0 -2
  162. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +0 -324
  163. package/esm2022/spx-storage/public-api.mjs +0 -3
  164. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +0 -5
  165. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +0 -13
  166. package/esm2022/spx-storage/src/spx-storage.class.mjs +0 -45
  167. package/esm2022/spx-suggestion/public-api.mjs +0 -2
  168. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +0 -5
  169. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +0 -61
  170. package/esm2022/spx-toaster/public-api.mjs +0 -4
  171. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +0 -5
  172. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +0 -23
  173. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +0 -3
  174. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +0 -168
  175. package/esm2022/spx-update/public-api.mjs +0 -3
  176. package/esm2022/spx-update/softpak-components-spx-update.mjs +0 -5
  177. package/esm2022/spx-update/src/spx-update-info.component.mjs +0 -86
  178. package/esm2022/spx-update/src/spx-update-progress.component.mjs +0 -46
  179. package/esm2022/spx-validation/max.validator.mjs +0 -17
  180. package/esm2022/spx-validation/maxlength.validator.mjs +0 -20
  181. package/esm2022/spx-validation/min.validator.mjs +0 -17
  182. package/esm2022/spx-validation/minlength.validator.mjs +0 -20
  183. package/esm2022/spx-validation/pattern.validator.mjs +0 -12
  184. package/esm2022/spx-validation/public-api.mjs +0 -9
  185. package/esm2022/spx-validation/required.validator.mjs +0 -12
  186. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +0 -5
  187. package/esm2022/spx-validation/spx-validate-control.component.mjs +0 -65
  188. package/esm2022/spx-validation/year-and-month.validator.mjs +0 -42
@@ -1,194 +0,0 @@
1
- import { Component, computed, input, model, output, signal, viewChild } from '@angular/core';
2
- import { DateTime } from 'luxon';
3
- import { valuePairToValue } from '@softpak/components/spx-helpers';
4
- import { FormsModule } from '@angular/forms';
5
- import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- var stepType;
9
- (function (stepType) {
10
- stepType["years"] = "years";
11
- stepType["months"] = "months";
12
- stepType["days"] = "days";
13
- })(stepType || (stepType = {}));
14
- export class SpxInputDateComponent {
15
- constructor() {
16
- this.spxMax = input.required();
17
- this.spxMin = input.required();
18
- this.spxReadonly = input();
19
- this.spxValidators = input();
20
- this.value = model({
21
- description: "",
22
- value: "",
23
- });
24
- this.spxChange = output();
25
- this.spxFocused = input(true);
26
- this.spxFocus = output();
27
- this.spxSelectedStep = signal(stepType.years);
28
- this.spxSelectDay = input(false);
29
- this.spxSelectMonth = input(true);
30
- this.selectedYear = signal(null);
31
- this.selectedMonth = signal(null);
32
- this.selectedDay = signal(null);
33
- this.yearInputComponent = viewChild.required(stepType.years);
34
- this.monthInputComponent = viewChild.required(stepType.months);
35
- this.dayInputComponent = viewChild.required(stepType.days);
36
- this.spxSuggestionC = computed(() => {
37
- switch (this.spxSelectedStep()) {
38
- case stepType.years:
39
- return this.spxSuggestions().years;
40
- case stepType.months:
41
- return [...this.spxSuggestions().months];
42
- case stepType.days:
43
- return [...this.spxSuggestions().days];
44
- }
45
- });
46
- this.spxSuggestions = input({ years: [],
47
- months: [{
48
- description: 'Jan',
49
- value: 1,
50
- }, {
51
- description: 'Feb',
52
- value: 2,
53
- }, {
54
- description: 'Mar',
55
- value: 3,
56
- }, {
57
- description: 'Apr',
58
- value: 4,
59
- }, {
60
- description: 'May',
61
- value: 5,
62
- }, {
63
- description: 'Jun',
64
- value: 6,
65
- }, {
66
- description: 'Jul',
67
- value: 7,
68
- }, {
69
- description: 'Aug',
70
- value: 8,
71
- }, {
72
- description: 'Sep',
73
- value: 9,
74
- }, {
75
- description: 'Oct',
76
- value: 10,
77
- }, {
78
- description: 'Nov',
79
- value: 11,
80
- }, {
81
- description: 'Dec',
82
- value: 12,
83
- }],
84
- days: [], });
85
- }
86
- handleFocus(selectedStep) {
87
- switch (selectedStep) {
88
- case stepType.years:
89
- this.spxSelectedStep.set(stepType.years);
90
- break;
91
- case stepType.months:
92
- this.spxSelectedStep.set(stepType.months);
93
- this.monthInputComponent().nativeElement.focus();
94
- break;
95
- case stepType.days:
96
- this.spxSelectedStep.set(stepType.days);
97
- this.dayInputComponent().nativeElement.focus();
98
- break;
99
- }
100
- }
101
- onModelChange(newValue, selectedStep) {
102
- const parsedValue = +newValue; // Convert to number
103
- if (parsedValue == 0)
104
- return;
105
- switch (selectedStep) {
106
- case stepType.years:
107
- this.selectedYear.set(parsedValue);
108
- break;
109
- case stepType.months:
110
- this.selectedMonth.set(parsedValue);
111
- break;
112
- case stepType.days:
113
- this.selectedDay.set(parsedValue);
114
- break;
115
- }
116
- }
117
- ngOnInit() {
118
- this.suggestYears();
119
- if (valuePairToValue(this.value)) {
120
- const parsedValue = DateTime.fromISO(valuePairToValue(this.value));
121
- this.selectedYear.set(parsedValue.year);
122
- this.selectedMonth.set(parsedValue.month);
123
- this.selectedDay.set(parsedValue.day);
124
- }
125
- }
126
- handleSuggestionClick(value) {
127
- switch (this.spxSelectedStep()) {
128
- case stepType.years:
129
- this.selectedYear.set(value);
130
- break;
131
- case stepType.months:
132
- this.selectedMonth.set(value);
133
- break;
134
- case stepType.days:
135
- this.selectedDay.set(value);
136
- break;
137
- }
138
- this.updateValueAndEmit();
139
- this.changeSelectedStep();
140
- }
141
- updateValueAndEmit() {
142
- const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth() < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay() < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`;
143
- const parsedValue = DateTime.fromISO(concatenatedValue);
144
- this.value.set({ value: parsedValue.toISO(), description: parsedValue.toISO() });
145
- this.spxChange.emit(this.value());
146
- }
147
- changeSelectedStep() {
148
- switch (this.spxSelectedStep()) {
149
- case stepType.years:
150
- if (this.spxSelectMonth()) {
151
- this.spxSelectedStep.set(stepType.months);
152
- this.monthInputComponent().nativeElement.focus();
153
- }
154
- else {
155
- this.spxSelectedStep.set(stepType.years);
156
- this.yearInputComponent().nativeElement.focus();
157
- }
158
- break;
159
- case stepType.months:
160
- if (this.spxSelectDay()) {
161
- this.spxSelectedStep.set(stepType.days);
162
- this.dayInputComponent().nativeElement.focus();
163
- }
164
- else {
165
- this.spxSelectedStep.set(stepType.years);
166
- this.yearInputComponent().nativeElement.focus();
167
- }
168
- break;
169
- case stepType.days:
170
- this.spxSelectedStep.set(stepType.years);
171
- this.yearInputComponent().nativeElement.focus();
172
- break;
173
- }
174
- }
175
- suggestYears() {
176
- this.spxSuggestions().years = [];
177
- for (let year = DateTime.fromISO(this.spxMin()).year; year <= DateTime.fromISO(this.spxMax()).year; year++) {
178
- this.spxSuggestions().years.push({
179
- description: `'${year.toString().substring(2, 4)}`,
180
- value: year,
181
- });
182
- }
183
- }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: { classPropertyName: "spxMax", publicName: "spxMax", isSignal: true, isRequired: true, transformFunction: null }, spxMin: { classPropertyName: "spxMin", publicName: "spxMin", isSignal: true, isRequired: true, transformFunction: null }, spxReadonly: { classPropertyName: "spxReadonly", publicName: "spxReadonly", isSignal: true, isRequired: false, transformFunction: null }, spxValidators: { classPropertyName: "spxValidators", publicName: "spxValidators", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, spxFocused: { classPropertyName: "spxFocused", publicName: "spxFocused", isSignal: true, isRequired: false, transformFunction: null }, spxSelectDay: { classPropertyName: "spxSelectDay", publicName: "spxSelectDay", isSignal: true, isRequired: false, transformFunction: null }, spxSelectMonth: { classPropertyName: "spxSelectMonth", publicName: "spxSelectMonth", isSignal: true, isRequired: false, transformFunction: null }, spxSuggestions: { classPropertyName: "spxSuggestions", publicName: "spxSuggestions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "yearInputComponent", first: true, predicate: stepType.years, descendants: true, isSignal: true }, { propertyName: "monthInputComponent", first: true, predicate: stepType.months, descendants: true, isSignal: true }, { propertyName: "dayInputComponent", first: true, predicate: stepType.days, descendants: true, isSignal: true }], ngImport: i0, template: "<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth()) {\n <input #months\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay()) {\n <input #days\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n <div class='spx-input-date__control-label'>Days</div>\n }\n</div>\n<div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value) ||\n (selectedMonth() === valuePair.value) || \n (selectedDay() === valuePair.value)\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</div>", styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
186
- }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
188
- type: Component,
189
- args: [{ selector: 'spx-input-date', standalone: true, imports: [
190
- SpxSuggestionComponent,
191
- FormsModule
192
- ], template: "<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [(ngModel)]=\"selectedYear\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth()) {\n <input #months\n class='spx-input-date__input'\n [(ngModel)]=\"selectedMonth\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay()) {\n <input #days\n class='spx-input-date__input'\n [(ngModel)]=\"selectedDay\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n <div class='spx-input-date__control-label'>Days</div>\n }\n</div>\n<div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value) ||\n (selectedMonth() === valuePair.value) || \n (selectedDay() === valuePair.value)\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</div>", styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"] }]
193
- }] });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRTVFLElBQUssUUFJSjtBQUpELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpJLFFBQVEsS0FBUixRQUFRLFFBSVo7QUFZRCxNQUFNLE9BQU8scUJBQXFCO0lBVmxDO1FBWUUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxLQUFLLEVBQVMsQ0FBQztRQUMvQixVQUFLLEdBQUksS0FBSyxDQUF1QjtZ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SUFBSSxDQUFDO2dCQUMvQixXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0E5TFUscUJBQXFCO21HQUFyQixxQkFBcUIsMjVDQXVCb0IsUUFBUSxDQUFDLEtBQUssc0dBQ2IsUUFBUSxDQUFDLE1BQU0sb0dBQ2pCLFFBQVEsQ0FBQyxJQUFJLGdFQ2pEbEUsZ2tEQTZDTSx1N0JEM0JGLHNCQUFzQiwrSEFDdEIsV0FBVzs7NEZBS0YscUJBQXFCO2tCQVZqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxzQkFBc0I7d0JBQ3RCLFdBQVc7cUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGlucHV0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4uL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtc3VnZ2VzdGlvbic7XG5cbmVudW0gc3RlcFR5cGUge1xuICB5ZWFycyA9IFwieWVhcnNcIixcbiAgbW9udGhzID0gXCJtb250aHNcIixcbiAgZGF5cyA9IFwiZGF5c1wiXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1kYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFNweFN1Z2dlc3Rpb25Db21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zcHgtaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3NweC1pbnB1dC1kYXRlLmNvbXBvbmVudC5jc3NcIlxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNweE1heCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgc3B4TWluID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBzcHhSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHNweFZhbGlkYXRvcnMgPSBpbnB1dDxhbnlbXT4oKTtcbiAgdmFsdWUgPSAgbW9kZWw8U3B4VmFsdWVQYWlyPHN0cmluZz4+KHtcbiAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICB2YWx1ZTogXCJcIixcbiAgfSk7XG4gIHNweENoYW5nZSA9IG91dHB1dDxTcHhWYWx1ZVBhaXI8YW55Pj4oKTtcbiAgc3B4Rm9jdXNlZCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICBzcHhGb2N1cyA9IG91dHB1dCgpO1xuXG4gIHNweFNlbGVjdGVkU3RlcCA9IHNpZ25hbDxzdGVwVHlwZT4oc3RlcFR5cGUueWVhcnMpO1xuXG4gIHNweFNlbGVjdERheSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc3B4U2VsZWN0TW9udGggPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBzZWxlY3RlZFllYXIgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHNlbGVjdGVkTW9udGggPSBzaWduYWw8bnVtYmVyfCBudWxsPihudWxsKTtcbiAgc2VsZWN0ZWREYXkgPSBzaWduYWw8bnVtYmVyfCBudWxsPihudWxsKTtcblxuICB5ZWFySW5wdXRDb21wb25lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oc3RlcFR5cGUueWVhcnMpO1xuICBtb250aElucHV0Q29tcG9uZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KHN0ZXBUeXBlLm1vbnRocyk7XG4gIGRheUlucHV0Q29tcG9uZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KHN0ZXBUeXBlLmRheXMpO1xuXG4gIHNweFN1Z2dlc3Rpb25DID0gY29tcHV0ZWQ8U3B4VmFsdWVQYWlyPG51bWJlcj5bXT4oKCkgPT4ge1xuICAgIHN3aXRjaCh0aGlzLnNweFNlbGVjdGVkU3RlcCgpKSB7XG4gICAgICBjYXNlIHN0ZXBUeXBlLnllYXJzOlxuICAgICAgICByZXR1cm4gdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzO1xuICAgICAgY2FzZSBzdGVwVHlwZS5tb250aHM6XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5zcHhTdWdnZXN0aW9ucygpLm1vbnRoc11cbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnNweFN1Z2dlc3Rpb25zKCkuZGF5c11cbiAgICB9XG4gIH0pO1xuXG4gIGhhbmRsZUZvY3VzKHNlbGVjdGVkU3RlcDogc3RyaW5nKSB7XG4gICAgc3dpdGNoKHNlbGVjdGVkU3RlcCkge1xuICAgICAgY2FzZSBzdGVwVHlwZS55ZWFyczpcbiAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLnllYXJzKTtcbiAgICAgIGJyZWFrOyAgXG4gICAgICBjYXNlIHN0ZXBUeXBlLm1vbnRoczpcbiAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLm1vbnRocyk7XG4gICAgICAgIHRoaXMubW9udGhJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBzdGVwVHlwZS5kYXlzOlxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUuZGF5cyk7XG4gICAgICAgIHRoaXMuZGF5SW5wdXRDb21wb25lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICBicmVhazsgICAgICBcbiAgICB9XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlKG5ld1ZhbHVlOiBzdHJpbmcsIHNlbGVjdGVkU3RlcDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSArbmV3VmFsdWU7IC8vIENvbnZlcnQgdG8gbnVtYmVyXG5cbiAgICBpZihwYXJzZWRWYWx1ZSA9PSAwKSByZXR1cm47XG5cbiAgICBzd2l0Y2goc2VsZWN0ZWRTdGVwKSB7XG4gICAgICBjYXNlIHN0ZXBUeXBlLnllYXJzOlxuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQocGFyc2VkVmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHN0ZXBUeXBlLm1vbnRoczpcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoLnNldChwYXJzZWRWYWx1ZSk7XG4gICAgICBicmVhaztcbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcbiAgICAgICAgdGhpcy5zZWxlY3RlZERheS5zZXQocGFyc2VkVmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc3B4U3VnZ2VzdGlvbnMgPSBpbnB1dDx7XG4gICAgeWVhcnM6IFNweFZhbHVlUGFpcjxudW1iZXI+W107XG4gICAgbW9udGhzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xuICAgIGRheXM6IFNweFZhbHVlUGFpcjxudW1iZXI+W107XG4gIH0+KHt5ZWFyczogW10sXG4gICAgbW9udGhzOiBbe1xuICAgICAgZGVzY3JpcHRpb246ICdKYW4nLFxuICAgICAgdmFsdWU6IDEsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdGZWInLFxuICAgICAgdmFsdWU6IDIsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdNYXInLFxuICAgICAgdmFsdWU6IDMsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdBcHInLFxuICAgICAgdmFsdWU6IDQsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdNYXknLFxuICAgICAgdmFsdWU6IDUsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdKdW4nLFxuICAgICAgdmFsdWU6IDYsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdKdWwnLFxuICAgICAgdmFsdWU6IDcsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdBdWcnLFxuICAgICAgdmFsdWU6IDgsXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdTZXAnLFxuICAgICAgdmFsdWU6IDksXG4gICAgfSwge1xuICAgICAgZGVzY3JpcHRpb246ICdPY3QnLFxuICAgICAgdmFsdWU6IDEwLFxuICAgIH0sIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnTm92JyxcbiAgICAgIHZhbHVlOiAxMSxcbiAgICB9LCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RlYycsXG4gICAgICB2YWx1ZTogMTIsXG4gICAgfV0sXG4gICAgZGF5czogW10sfSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWdnZXN0WWVhcnMoKTtcbiAgICBpZiAodmFsdWVQYWlyVG9WYWx1ZSh0aGlzLnZhbHVlKSkge1xuICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBEYXRlVGltZS5mcm9tSVNPKHZhbHVlUGFpclRvVmFsdWUodGhpcy52YWx1ZSkpO1xuICAgICAgdGhpcy5zZWxlY3RlZFllYXIuc2V0KHBhcnNlZFZhbHVlLnllYXIpO1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoLnNldChwYXJzZWRWYWx1ZS5tb250aCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldChwYXJzZWRWYWx1ZS5kYXkpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZTogbnVtYmVyKSB7XG5cbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xuICAgICAgY2FzZSBzdGVwVHlwZS55ZWFyczpcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIuc2V0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBzdGVwVHlwZS5tb250aHM6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHN0ZXBUeXBlLmRheXM6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkuc2V0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRFbWl0KCk7XG4gICAgdGhpcy5jaGFuZ2VTZWxlY3RlZFN0ZXAoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kRW1pdCgpIHtcbiAgICBjb25zdCBjb25jYXRlbmF0ZWRWYWx1ZSA9IGAke3RoaXMuc2VsZWN0ZWRZZWFyKCkgPyB0aGlzLnNlbGVjdGVkWWVhcigpIDogYGB9JHt0aGlzLnNlbGVjdGVkTW9udGgoKSA/IGAke3RoaXMuc2VsZWN0ZWRNb250aCgpISA8IDEwID8gYDAke3RoaXMuc2VsZWN0ZWRNb250aCgpfWAgOiB0aGlzLnNlbGVjdGVkTW9udGgoKX1gIDogYGB9JHt0aGlzLnNlbGVjdGVkRGF5KCkgPyBgLSR7dGhpcy5zZWxlY3RlZERheSgpISA8IDEwID8gYDAke3RoaXMuc2VsZWN0ZWREYXkoKX1gIDogdGhpcy5zZWxlY3RlZERheSgpfWAgOiBgYH1gXG5cbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IERhdGVUaW1lLmZyb21JU08oY29uY2F0ZW5hdGVkVmFsdWUpO1xuICAgIFxuICAgIHRoaXMudmFsdWUuc2V0KHt2YWx1ZTogcGFyc2VkVmFsdWUudG9JU08oKSEsIGRlc2NyaXB0aW9uOiBwYXJzZWRWYWx1ZS50b0lTTygpfSk7XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKCkpO1xuICB9XG5cbiAgY2hhbmdlU2VsZWN0ZWRTdGVwKCkge1xuICAgIHN3aXRjaCh0aGlzLnNweFNlbGVjdGVkU3RlcCgpKSB7XG4gICAgICBjYXNlIHN0ZXBUeXBlLnllYXJzOlxuICAgICAgICBpZih0aGlzLnNweFNlbGVjdE1vbnRoKCkpIHtcbiAgICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUubW9udGhzKTtcbiAgICAgICAgICB0aGlzLm1vbnRoSW5wdXRDb21wb25lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLnllYXJzKTtcbiAgICAgICAgICB0aGlzLnllYXJJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgYnJlYWs7ICBcbiAgICAgIGNhc2Ugc3RlcFR5cGUubW9udGhzOlxuICAgICAgICBpZih0aGlzLnNweFNlbGVjdERheSgpKSB7XG4gICAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLmRheXMpO1xuICAgICAgICAgIHRoaXMuZGF5SW5wdXRDb21wb25lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLnllYXJzKTtcbiAgICAgICAgICB0aGlzLnllYXJJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHN0ZXBUeXBlLmRheXM6XG4gICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS55ZWFycyk7XG4gICAgICAgIHRoaXMueWVhcklucHV0Q29tcG9uZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgYnJlYWs7ICAgICAgXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdWdnZXN0WWVhcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzID0gW107XG4gICAgZm9yIChsZXQgeWVhciA9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNaW4oKSkueWVhcjsgeWVhciA8PSBEYXRlVGltZS5mcm9tSVNPKHRoaXMuc3B4TWF4KCkpLnllYXI7IHllYXIrKykge1xuICAgICAgdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzLnB1c2goe1xuICAgICAgICBkZXNjcmlwdGlvbjogYCcke3llYXIudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiwgNCl9YCxcbiAgICAgICAgdmFsdWU6IHllYXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9scyc+XG4gIDxpbnB1dCAjeWVhcnNcbiAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRZZWFyXCJcbiAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcbiAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVGb2N1cygneWVhcnMnKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQsICd5ZWFycycpXCJcbiAgICBbYXR0ci5taW5dPVwiMTkwMFwiXG4gICAgW2F0dHIubWF4XT1cIjIxMDBcIlxuICAgIFthdHRyLnN0ZXBdPVwiMVwiXG4gICAgLz5cbiAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPlllYXI8L2Rpdj5cbiAgQGlmICh0aGlzLnNweFNlbGVjdE1vbnRoKCkpIHtcbiAgICA8aW5wdXQgI21vbnRoc1xuICAgICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb250aFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudCwgJ21vbnRocycpXCJcbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZUZvY3VzKCdtb250aHMnKVwiXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcbiAgICAgIFthdHRyLm1pbl09XCIxXCJcbiAgICAgIFthdHRyLm1heF09XCIxMlwiXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxuICB9XG4gIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5Nb250aDwvZGl2PlxuICBAaWYgKHRoaXMuc3B4U2VsZWN0RGF5KCkpIHtcbiAgICA8aW5wdXQgI2RheXNcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF5XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50LCAnZGF5cycpXCJcbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZUZvY3VzKCdkYXlzJylcIlxuICAgICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICBbYXR0ci5taW5dPVwiMVwiXG4gICAgICBbYXR0ci5tYXhdPVwiMzFcIlxuICAgICAgW2F0dHIuc3RlcF09XCIxXCIgLz5cbiAgICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+RGF5czwvZGl2PlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19zdWdnZXN0aW9ucyc+XG4gIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uQygpOyB0cmFjayB2YWx1ZVBhaXIudmFsdWUpIHtcbiAgICA8c3B4LXN1Z2dlc3Rpb24gW3NweFNlbGVjdGVkXT1cIlxuICAgIChzZWxlY3RlZFllYXIoKSA9PT0gdmFsdWVQYWlyLnZhbHVlKSB8fFxuICAgIChzZWxlY3RlZE1vbnRoKCkgPT09IHZhbHVlUGFpci52YWx1ZSkgfHwgIFxuICAgIChzZWxlY3RlZERheSgpID09PSB2YWx1ZVBhaXIudmFsdWUpXCJcbiAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyLnZhbHVlKVwiPnt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19PC9zcHgtc3VnZ2VzdGlvbj5cbiAgfVxuPC9kaXY+Il19
@@ -1,157 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- export class SpxInputFloatComponent {
6
- constructor() {
7
- this.internalValue = {
8
- first: null,
9
- second: null,
10
- };
11
- this.spxAutofocus = false;
12
- this.spxReadonly = false;
13
- this.spxFocused = true;
14
- this.spxChange = new EventEmitter();
15
- this.spxFocus = new EventEmitter();
16
- this.spxWasInternalUpdate = false;
17
- this.tick = {};
18
- }
19
- spxSetFocus() {
20
- this.firstInputRef?.nativeElement?.focus();
21
- }
22
- ngOnInit() {
23
- if (this.spxAutofocus) {
24
- this.spxFocus.emit();
25
- this.spxSetFocus();
26
- }
27
- this.handleSetValue(this.value);
28
- }
29
- ngOnChanges(changes) {
30
- if (changes['value']) {
31
- this.handleSetValue(changes['value'].currentValue);
32
- }
33
- }
34
- handleFocus() {
35
- this.spxFocus.emit();
36
- }
37
- handleSetValue(newValue) {
38
- if (this.isNumeric(newValue?.value)) {
39
- this.internalValue = {
40
- first: Math.floor(parseFloat(newValue?.value)),
41
- second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,
42
- };
43
- }
44
- else {
45
- this.internalValue = {
46
- first: null,
47
- second: null,
48
- };
49
- }
50
- this.tick = {};
51
- }
52
- handleInput(value, position) {
53
- this.internalValue = {
54
- first: position === 1 ? value : this.internalValue.first,
55
- second: position === 2 ? value : this.internalValue.second,
56
- };
57
- let result;
58
- if (this.internalValue.first === null && this.internalValue.second === null) {
59
- result = null;
60
- }
61
- else {
62
- result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;
63
- }
64
- this.value = {
65
- description: result,
66
- value: result,
67
- };
68
- this.spxChange.emit(this.value);
69
- }
70
- isNumeric(value) {
71
- return /^[+-]?\d+(\.\d+)?$/.test(value);
72
- }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- 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">
75
- <input
76
- #firstInputRef
77
- class="spx-input-float__input"
78
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
79
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
80
- [attr.pattern]="'[0-9]*'"
81
- [attr.step]="1"
82
- [attr.type]="'text'"
83
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
84
- (focus)="this.handleFocus()"
85
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
86
- (ngModelChange)="this.handleInput($event, 1)" />
87
- <span class="text-black font-bold text-2xl mx-4">,</span>
88
- <input
89
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
90
- class="spx-input-float__input"
91
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
92
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
93
- (focus)="this.handleFocus()"
94
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
95
- (ngModelChange)="this.handleInput($event, 2)"
96
- [attr.step]="1"
97
- [attr.type]="'text'"
98
- [attr.pattern]="'[0-9]*'" />
99
- </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.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'spx-input-float', standalone: true, imports: [
104
- FormsModule,
105
- ], template: `<div class="flex items-end">
106
- <input
107
- #firstInputRef
108
- class="spx-input-float__input"
109
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
110
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
111
- [attr.pattern]="'[0-9]*'"
112
- [attr.step]="1"
113
- [attr.type]="'text'"
114
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
115
- (focus)="this.handleFocus()"
116
- [ngModel]="this.internalValue?.first ? this.internalValue?.first : undefined"
117
- (ngModelChange)="this.handleInput($event, 1)" />
118
- <span class="text-black font-bold text-2xl mx-4">,</span>
119
- <input
120
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
121
- class="spx-input-float__input"
122
- [class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
123
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
124
- (focus)="this.handleFocus()"
125
- [ngModel]="this.internalValue?.second ? this.internalValue?.second : undefined"
126
- (ngModelChange)="this.handleInput($event, 2)"
127
- [attr.step]="1"
128
- [attr.type]="'text'"
129
- [attr.pattern]="'[0-9]*'" />
130
- </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"] }]
131
- }], propDecorators: { spxName: [{
132
- type: Input
133
- }], spxAutofocus: [{
134
- type: Input
135
- }], spxReadonly: [{
136
- type: Input
137
- }], spxValidators: [{
138
- type: Input
139
- }], spxFocused: [{
140
- type: Input
141
- }], spxStep: [{
142
- type: Input
143
- }], value: [{
144
- type: Input
145
- }], spxChange: [{
146
- type: Output
147
- }], spxFocus: [{
148
- type: Output
149
- }], spxWasInternalUpdate: [{
150
- type: Input
151
- }], tick: [{
152
- type: Input
153
- }], firstInputRef: [{
154
- type: ViewChild,
155
- args: ['firstInputRef', { static: true }]
156
- }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWZsb2F0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1mbG9hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQXlEN0MsTUFBTSxPQUFPLHNCQUFzQjtJQXZEbkM7UUF3RFksa0JBQWEsR0FHbkI7WUFDRixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUVPLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHakIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLFNBQUksR0FBRyxFQUFFLENBQUM7S0E2RHBCO0lBMURDLFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxD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ckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3dDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LWZsb2F0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWVuZFwiPlxuICA8aW5wdXRcbiAgICAjZmlyc3RJbnB1dFJlZlxuICAgIGNsYXNzPVwic3B4LWlucHV0LWZsb2F0X19pbnB1dFwiXG4gICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRoaXMuc3B4QXV0b2ZvY3VzID8gdGhpcy5zcHhBdXRvZm9jdXMgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cInRoaXMuc3B4UmVhZG9ubHkgPyB0aGlzLnNweFJlYWRvbmx5IDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5wYXR0ZXJuXT1cIidbMC05XSonXCJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxuICAgIFthdHRyLnR5cGVdPVwiJ3RleHQnXCJcbiAgICBbY2xhc3Muc3B4LWlucHV0LWZsb2F0LS1yZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXG4gICAgW25nTW9kZWxdPVwidGhpcy5pbnRlcm5hbFZhbHVlPy5maXJzdCA/IHRoaXMuaW50ZXJuYWxWYWx1ZT8uZmlyc3QgOiB1bmRlZmluZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAxKVwiIC8+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFjayBmb250LWJvbGQgdGV4dC0yeGwgbXgtNFwiPiw8L3NwYW4+XG4gIDxpbnB1dFxuICAgIFthdHRyLmF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1cyA/IHRoaXMuc3B4QXV0b2ZvY3VzIDogdW5kZWZpbmVkXCJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxuICAgIFtjbGFzcy5zcHgtaW5wdXQtZmxvYXQtLXJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHkgPyB0aGlzLnNweFJlYWRvbmx5IDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXG4gICAgW25nTW9kZWxdPVwidGhpcy5pbnRlcm5hbFZhbHVlPy5zZWNvbmQgPyB0aGlzLmludGVybmFsVmFsdWU/LnNlY29uZCA6IHVuZGVmaW5lZFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5oYW5kbGVJbnB1dCgkZXZlbnQsIDIpXCJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxuICAgIFthdHRyLnR5cGVdPVwiJ3RleHQnXCJcbiAgICBbYXR0ci5wYXR0ZXJuXT1cIidbMC05XSonXCIgLz5cbjwvZGl2PmAsXG4gIHN0eWxlczogYFxuICA6aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3B4LWlucHV0LWZsb2F0X19pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiB2YXIoLS1zcHgtaW5wdXQtLWNvbG9yLCByZ2JhKDAsIDAsIDAsIC45KSk7XG4gIGZsZXg6IDE7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zcHgtaW5wdXQtZmxvYXRfX2lucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRGbG9hdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWU6IHtcbiAgICBmaXJzdDogbnVtYmVyIHwgbnVsbDtcbiAgICBzZWNvbmQ6IG51bWJlciB8IG51bGw7XG4gIH0gPSB7XG4gICAgZmlyc3Q6IG51bGwsXG4gICAgc2Vjb25kOiBudWxsLFxuICB9O1xuICBASW5wdXQoKSBzcHhOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4U3RlcD86IG51bWJlcjtcbiAgQElucHV0KCkgdmFsdWUhOiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuICBASW5wdXQoKSB0aWNrID0ge307XG4gIEBWaWV3Q2hpbGQoJ2ZpcnN0SW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaXJzdElucHV0UmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgXG4gIHNweFNldEZvY3VzKCkge1xuICAgIHRoaXMuZmlyc3RJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNweEF1dG9mb2N1cykge1xuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gICAgICB0aGlzLnNweFNldEZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlU2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaGFuZGxlU2V0VmFsdWUoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUZvY3VzKCkge1xuICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xuICB9XG5cbiAgaGFuZGxlU2V0VmFsdWUobmV3VmFsdWU6IFNweFZhbHVlUGFpcjxhbnk+KSB7XG4gICAgaWYgKHRoaXMuaXNOdW1lcmljKG5ld1ZhbHVlPy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcbiAgICAgICAgZmlyc3Q6IE1hdGguZmxvb3IocGFyc2VGbG9hdChuZXdWYWx1ZT8udmFsdWUpKSxcbiAgICAgICAgc2Vjb25kOiBuZXdWYWx1ZT8udmFsdWU/LnNwbGl0ID8gbmV3VmFsdWU/LnZhbHVlLnNwbGl0KCcuJylbMV0gOiAwLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xuICAgICAgICBmaXJzdDogbnVsbCxcbiAgICAgICAgc2Vjb25kOiBudWxsLFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy50aWNrID0ge307XG4gIH1cblxuICBoYW5kbGVJbnB1dCh2YWx1ZTogYW55LCBwb3NpdGlvbjogMSB8IDIpIHtcbiAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7XG4gICAgICBmaXJzdDogcG9zaXRpb24gPT09IDEgPyB2YWx1ZSA6IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCxcbiAgICAgIHNlY29uZDogcG9zaXRpb24gPT09IDIgPyB2YWx1ZSA6IHRoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQsXG4gICAgfTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmICh0aGlzLmludGVybmFsVmFsdWUuZmlyc3QgPT09IG51bGwgJiYgdGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCA9PT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYCR7dGhpcy5pbnRlcm5hbFZhbHVlLmZpcnN0ID8gdGhpcy5pbnRlcm5hbFZhbHVlLmZpcnN0IDogMH0uJHt0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kID8gdGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCA6IDB9YDtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiByZXN1bHQsXG4gICAgICB2YWx1ZTogcmVzdWx0LFxuICAgIH07XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGlzTnVtZXJpYyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIC9eWystXT9cXGQrKFxcLlxcZCspPyQvLnRlc3QodmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -1,87 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SpxInputNumberComponent {
4
- constructor() {
5
- this.spxAutofocus = false;
6
- this.spxReadonly = false;
7
- this.spxFocused = true;
8
- this.spxChange = new EventEmitter();
9
- this.spxFocus = new EventEmitter();
10
- this.spxWasInternalUpdate = false;
11
- }
12
- spxSetFocus() {
13
- this.inputRef?.nativeElement?.focus();
14
- }
15
- componentDidLoad() {
16
- if (this.spxAutofocus) {
17
- this.spxFocus.emit();
18
- this.spxSetFocus();
19
- }
20
- }
21
- handleFocus() {
22
- this.spxFocus.emit();
23
- }
24
- handleInput(event) {
25
- this.value = {
26
- description: event.target ? event.target.value : null,
27
- value: event.target ? event.target.value : null,
28
- };
29
- this.spxChange.emit(this.value);
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- 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">
33
- <input
34
- #input
35
- class="spx-input-number__input"
36
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
37
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
38
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
39
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
40
- [attr.value]="this.value?.value ? this.value?.value : undefined"
41
- [attr.step]="this.spxStep ? this.spxStep : undefined"
42
- [attr.type]="'number'"
43
- (focus)="this.handleFocus()"
44
- (input)="this.handleInput($event)" />
45
- </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"] }); }
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
48
- type: Component,
49
- args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
50
- <input
51
- #input
52
- class="spx-input-number__input"
53
- [attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
54
- [class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
55
- [attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
56
- [attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
57
- [attr.value]="this.value?.value ? this.value?.value : undefined"
58
- [attr.step]="this.spxStep ? this.spxStep : undefined"
59
- [attr.type]="'number'"
60
- (focus)="this.handleFocus()"
61
- (input)="this.handleInput($event)" />
62
- </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"] }]
63
- }], propDecorators: { spxName: [{
64
- type: Input
65
- }], spxAutofocus: [{
66
- type: Input
67
- }], spxInputMode: [{
68
- type: Input
69
- }], spxReadonly: [{
70
- type: Input
71
- }], spxValidators: [{
72
- type: Input
73
- }], spxFocused: [{
74
- type: Input
75
- }], spxStep: [{
76
- type: Input
77
- }], value: [{
78
- type: Input
79
- }], spxChange: [{
80
- type: Output
81
- }], spxFocus: [{
82
- type: Output
83
- }], inputRef: [{
84
- type: ViewChild,
85
- args: ['input', { static: true }]
86
- }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFnRDlGLE1BQU0sT0FBTyx1QkFBdUI7SUE3Q3BDO1FBaURXLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHakIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEUseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0tBd0I5QjtJQXRCQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDckQsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2hELENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FyQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsOGNBekN4Qjs7Ozs7Ozs7Ozs7OztPQWFMOzs0RkE0Qk0sdUJBQXVCO2tCQTdDbkMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7Ozs7Ozs7Ozs7OztPQWFMOzhCQStCSSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUMrQixRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtbnVtYmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInNweC1pbnB1dC1udW1iZXJfX2NvbnRyb2xzXCI+XG4gIDxpbnB1dFxuICAgICNpbnB1dFxuICAgIGNsYXNzPVwic3B4LWlucHV0LW51bWJlcl9faW5wdXRcIlxuICAgIFthdHRyLmF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1cyA/IHRoaXMuc3B4QXV0b2ZvY3VzIDogdW5kZWZpbmVkXCJcbiAgICBbY2xhc3Muc3B4LWlucHV0LW51bWJlci0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cInRoaXMuc3B4UmVhZG9ubHkgPyB0aGlzLnNweFJlYWRvbmx5IDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5pbnB1dE1vZGVdPVwidGhpcy5zcHhJbnB1dE1vZGUgPyB0aGlzLnNweElucHV0TW9kZSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIudmFsdWVdPVwidGhpcy52YWx1ZT8udmFsdWUgPyB0aGlzLnZhbHVlPy52YWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuc3RlcF09XCJ0aGlzLnNweFN0ZXAgPyB0aGlzLnNweFN0ZXAgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxuICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxuICAgIChpbnB1dCk9XCJ0aGlzLmhhbmRsZUlucHV0KCRldmVudClcIiAvPlxuPC9kaXY+YCxcbiAgc3R5bGVzOiBgXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3B4LWlucHV0LW51bWJlcl9faW5wdXQge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc3B4LWlucHV0LW51bWJlcl9faW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc3B4LWlucHV0LW51bWJlcl9fdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXROdW1iZXJDb21wb25lbnQge1xuICAvLyBwcml2YXRlIGVsSW5wdXQ/OiBIVE1MRWxlbWVudDtcbiAgLy8gQEVsZW1lbnQoKSBlbCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBzcHhOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4SW5wdXRNb2RlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzITogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xuICBASW5wdXQoKSB2YWx1ZT86IFNweFZhbHVlUGFpcjxhbnk+O1xuICBAT3V0cHV0KCkgc3B4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4oKTtcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuICBcbiAgc3B4U2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZExvYWQoKSB7XG4gICAgaWYgKHRoaXMuc3B4QXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVGb2N1cygpIHtcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0ge1xuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGwsXG4gICAgICB2YWx1ZTogZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCxcbiAgICB9O1xuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cbn0iXX0=