@softpak/components 18.6.13 → 18.6.15
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.
- package/fesm2022/softpak-components-spx-alert.mjs +3 -3
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-expiry.mjs +3 -3
- package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-update.mjs +4 -4
- package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-button.mjs +3 -3
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
- package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-card.mjs +12 -12
- package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +3 -3
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-channel-selection.mjs +6 -6
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +3 -3
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +3 -3
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +7 -7
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +53 -49
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +9 -9
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +3 -3
- package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-pagination.mjs +3 -3
- package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-patch.mjs +3 -3
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
- package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-spinner.mjs +3 -3
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-stock-info.mjs +3 -3
- package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-toaster.mjs +4 -4
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +7 -7
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation.mjs +3 -3
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
- package/package.json +32 -86
- package/spx-alert/spx-alert.component.d.ts +4 -4
- package/spx-helpers/input-alert.interface.d.ts +5 -0
- package/spx-helpers/public-api.d.ts +1 -0
- package/spx-inputs/spx-input-box.component.d.ts +7 -6
- package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
- package/spx-inputs/spx-input.component.d.ts +3 -3
- package/tailwind.css +1 -1
- package/esm2022/placeholder.mjs +0 -2
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/softpak-components.mjs +0 -5
- package/esm2022/spx-alert/public-api.mjs +0 -3
- package/esm2022/spx-alert/softpak-components-spx-alert.mjs +0 -5
- package/esm2022/spx-alert/spx-alert.component.mjs +0 -203
- package/esm2022/spx-alert/spx-alert.interface.mjs +0 -3
- package/esm2022/spx-app-configuration/public-api.mjs +0 -8
- package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +0 -5
- package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +0 -2
- package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +0 -2
- package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +0 -8
- package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +0 -2
- package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +0 -2
- package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +0 -8
- package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +0 -6
- package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +0 -2
- package/esm2022/spx-app-expiry/public-api.mjs +0 -6
- package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +0 -5
- package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +0 -107
- package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +0 -2
- package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +0 -5
- package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +0 -5
- package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +0 -5
- package/esm2022/spx-app-update/public-api.mjs +0 -2
- package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +0 -5
- package/esm2022/spx-app-update/spx-app-update.component.mjs +0 -320
- package/esm2022/spx-button/public-api.mjs +0 -2
- package/esm2022/spx-button/softpak-components-spx-button.mjs +0 -5
- package/esm2022/spx-button/spx-button.component.mjs +0 -142
- package/esm2022/spx-capitalize/public-api.mjs +0 -2
- package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +0 -5
- package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +0 -20
- package/esm2022/spx-card/public-api.mjs +0 -5
- package/esm2022/spx-card/softpak-components-spx-card.mjs +0 -5
- package/esm2022/spx-card/spx-card-grid.component.mjs +0 -46
- package/esm2022/spx-card/spx-card-item.component.mjs +0 -117
- package/esm2022/spx-card/spx-card-line.component.mjs +0 -124
- package/esm2022/spx-card/spx-card.component.mjs +0 -96
- package/esm2022/spx-change-details/public-api.mjs +0 -2
- package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +0 -5
- package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +0 -2
- package/esm2022/spx-change-details/spx-change-details.component.mjs +0 -197
- package/esm2022/spx-channel-selection/public-api.mjs +0 -3
- package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +0 -5
- package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +0 -45
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +0 -132
- package/esm2022/spx-check-digit/public-api.mjs +0 -2
- package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +0 -5
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +0 -91
- package/esm2022/spx-form-section/public-api.mjs +0 -2
- package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +0 -5
- package/esm2022/spx-form-section/spx-form-section.component.mjs +0 -42
- package/esm2022/spx-form-view/public-api.mjs +0 -7
- package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +0 -5
- package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +0 -117
- package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +0 -6
- package/esm2022/spx-form-view/spx-form-button.interface.mjs +0 -2
- package/esm2022/spx-form-view/spx-form-field.interface.mjs +0 -2
- package/esm2022/spx-form-view/spx-form-section.interface.mjs +0 -2
- package/esm2022/spx-form-view/spx-form-view.component.mjs +0 -297
- package/esm2022/spx-form-view/spx-form.interface.mjs +0 -2
- package/esm2022/spx-helpers/calc-check-digit.function.mjs +0 -21
- package/esm2022/spx-helpers/public-api.mjs +0 -4
- package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +0 -5
- package/esm2022/spx-helpers/spx-severity.enum.mjs +0 -10
- package/esm2022/spx-helpers/value-pair-to-value.function.mjs +0 -7
- package/esm2022/spx-inputs/public-api.mjs +0 -6
- package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +0 -5
- package/esm2022/spx-inputs/spx-dropdown.component.mjs +0 -93
- package/esm2022/spx-inputs/spx-input-box.component.mjs +0 -299
- package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +0 -194
- package/esm2022/spx-inputs/spx-input-float.component.mjs +0 -157
- package/esm2022/spx-inputs/spx-input-number.component.mjs +0 -87
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +0 -129
- package/esm2022/spx-inputs/spx-input-text.component.mjs +0 -160
- package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +0 -129
- package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -163
- package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
- package/esm2022/spx-inputs/spx-input.component.mjs +0 -465
- package/esm2022/spx-inputs/spx-value-interface.mjs +0 -2
- package/esm2022/spx-navigation/public-api.mjs +0 -5
- package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +0 -5
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +0 -71
- package/esm2022/spx-navigation/spx-home-tiles.component.mjs +0 -24
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +0 -2
- package/esm2022/spx-navigation/spx-navigation.component.mjs +0 -47
- package/esm2022/spx-number-check/public-api.mjs +0 -2
- package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +0 -5
- package/esm2022/spx-number-check/spx-number-check.component.mjs +0 -265
- package/esm2022/spx-pagination/public-api.mjs +0 -2
- package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +0 -5
- package/esm2022/spx-pagination/spx-pagination.component.mjs +0 -44
- package/esm2022/spx-patch/patch-check.function.mjs +0 -9
- package/esm2022/spx-patch/public-api.mjs +0 -4
- package/esm2022/spx-patch/release-check.function.mjs +0 -14
- package/esm2022/spx-patch/softpak-components-spx-patch.mjs +0 -5
- package/esm2022/spx-patch/spx-patch.component.mjs +0 -54
- package/esm2022/spx-progress-bar/public-api.mjs +0 -2
- package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +0 -5
- package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +0 -29
- package/esm2022/spx-spinner/public-api.mjs +0 -2
- package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +0 -5
- package/esm2022/spx-spinner/spx-spinner.component.mjs +0 -160
- package/esm2022/spx-stock-info/public-api.mjs +0 -3
- package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +0 -5
- package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +0 -2
- package/esm2022/spx-stock-info/spx-stock-info.component.mjs +0 -324
- package/esm2022/spx-storage/public-api.mjs +0 -3
- package/esm2022/spx-storage/softpak-components-spx-storage.mjs +0 -5
- package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +0 -13
- package/esm2022/spx-storage/src/spx-storage.class.mjs +0 -45
- package/esm2022/spx-suggestion/public-api.mjs +0 -2
- package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +0 -5
- package/esm2022/spx-suggestion/spx-suggestion.component.mjs +0 -61
- package/esm2022/spx-toaster/public-api.mjs +0 -4
- package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +0 -5
- package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +0 -23
- package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +0 -3
- package/esm2022/spx-toaster/src/spx-toaster.component.mjs +0 -168
- package/esm2022/spx-update/public-api.mjs +0 -3
- package/esm2022/spx-update/softpak-components-spx-update.mjs +0 -5
- package/esm2022/spx-update/src/spx-update-info.component.mjs +0 -86
- package/esm2022/spx-update/src/spx-update-progress.component.mjs +0 -46
- package/esm2022/spx-validation/max.validator.mjs +0 -17
- package/esm2022/spx-validation/maxlength.validator.mjs +0 -20
- package/esm2022/spx-validation/min.validator.mjs +0 -17
- package/esm2022/spx-validation/minlength.validator.mjs +0 -20
- package/esm2022/spx-validation/pattern.validator.mjs +0 -12
- package/esm2022/spx-validation/public-api.mjs +0 -9
- package/esm2022/spx-validation/required.validator.mjs +0 -12
- package/esm2022/spx-validation/softpak-components-spx-validation.mjs +0 -5
- package/esm2022/spx-validation/spx-validate-control.component.mjs +0 -65
- 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'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</div>", styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</div>", styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"] }]
|
|
193
|
-
}] });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRTVFLElBQUssUUFJSjtBQUpELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpJLFFBQVEsS0FBUixRQUFRLFFBSVo7QUFZRCxNQUFNLE9BQU8scUJBQXFCO0lBVmxDO1FBWUUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxLQUFLLEVBQVMsQ0FBQztRQUMvQixVQUFLLEdBQUksS0FBSyxDQUF1QjtZ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SUFBSSxDQUFDO2dCQUMvQixXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0E5TFUscUJBQXFCO21HQUFyQixxQkFBcUIsMjVDQXVCb0IsUUFBUSxDQUFDLEtBQUssc0dBQ2IsUUFBUSxDQUFDLE1BQU0sb0dBQ2pCLFFBQVEsQ0FBQyxJQUFJLGdFQ2pEbEUsMHBEQTZDTSx1N0JEM0JGLHNCQUFzQiwrSEFDdEIsV0FBVzs7NEZBS0YscUJBQXFCO2tCQVZqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxzQkFBc0I7d0JBQ3RCLFdBQVc7cUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4uL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyB2YWx1ZVBhaXJUb1ZhbHVlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtc3VnZ2VzdGlvbic7XHJcblxyXG5lbnVtIHN0ZXBUeXBlIHtcclxuICB5ZWFycyA9IFwieWVhcnNcIixcclxuICBtb250aHMgPSBcIm1vbnRoc1wiLFxyXG4gIGRheXMgPSBcImRheXNcIlxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1kYXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFNweFN1Z2dlc3Rpb25Db21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9zcHgtaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmNzc1wiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzcHhNYXggPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgc3B4TWluID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gIHNweFJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuICBzcHhWYWxpZGF0b3JzID0gaW5wdXQ8YW55W10+KCk7XHJcbiAgdmFsdWUgPSAgbW9kZWw8U3B4VmFsdWVQYWlyPHN0cmluZz4+KHtcclxuICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgdmFsdWU6IFwiXCIsXHJcbiAgfSk7XHJcbiAgc3B4Q2hhbmdlID0gb3V0cHV0PFNweFZhbHVlUGFpcjxhbnk+PigpO1xyXG4gIHNweEZvY3VzZWQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzcHhGb2N1cyA9IG91dHB1dCgpO1xyXG5cclxuICBzcHhTZWxlY3RlZFN0ZXAgPSBzaWduYWw8c3RlcFR5cGU+KHN0ZXBUeXBlLnllYXJzKTtcclxuXHJcbiAgc3B4U2VsZWN0RGF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNweFNlbGVjdE1vbnRoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIHNlbGVjdGVkWWVhciA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWxlY3RlZE1vbnRoID0gc2lnbmFsPG51bWJlcnwgbnVsbD4obnVsbCk7XHJcbiAgc2VsZWN0ZWREYXkgPSBzaWduYWw8bnVtYmVyfCBudWxsPihudWxsKTtcclxuXHJcbiAgeWVhcklucHV0Q29tcG9uZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KHN0ZXBUeXBlLnllYXJzKTtcclxuICBtb250aElucHV0Q29tcG9uZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KHN0ZXBUeXBlLm1vbnRocyk7XHJcbiAgZGF5SW5wdXRDb21wb25lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oc3RlcFR5cGUuZGF5cyk7XHJcblxyXG4gIHNweFN1Z2dlc3Rpb25DID0gY29tcHV0ZWQ8U3B4VmFsdWVQYWlyPG51bWJlcj5bXT4oKCkgPT4ge1xyXG4gICAgc3dpdGNoKHRoaXMuc3B4U2VsZWN0ZWRTdGVwKCkpIHtcclxuICAgICAgY2FzZSBzdGVwVHlwZS55ZWFyczpcclxuICAgICAgICByZXR1cm4gdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzO1xyXG4gICAgICBjYXNlIHN0ZXBUeXBlLm1vbnRoczpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5tb250aHNdXHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5kYXlzXVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBoYW5kbGVGb2N1cyhzZWxlY3RlZFN0ZXA6IHN0cmluZykge1xyXG4gICAgc3dpdGNoKHNlbGVjdGVkU3RlcCkge1xyXG4gICAgICBjYXNlIHN0ZXBUeXBlLnllYXJzOlxyXG4gICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS55ZWFycyk7XHJcbiAgICAgIGJyZWFrOyAgXHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUubW9udGhzOlxyXG4gICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS5tb250aHMpO1xyXG4gICAgICAgIHRoaXMubW9udGhJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUuZGF5cyk7XHJcbiAgICAgICAgdGhpcy5kYXlJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgYnJlYWs7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsQ2hhbmdlKG5ld1ZhbHVlOiBzdHJpbmcsIHNlbGVjdGVkU3RlcDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9ICtuZXdWYWx1ZTsgLy8gQ29udmVydCB0byBudW1iZXJcclxuXHJcbiAgICBpZihwYXJzZWRWYWx1ZSA9PSAwKSByZXR1cm47XHJcblxyXG4gICAgc3dpdGNoKHNlbGVjdGVkU3RlcCkge1xyXG4gICAgICBjYXNlIHN0ZXBUeXBlLnllYXJzOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyLnNldChwYXJzZWRWYWx1ZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHN0ZXBUeXBlLm1vbnRoczpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGguc2V0KHBhcnNlZFZhbHVlKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldChwYXJzZWRWYWx1ZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3B4U3VnZ2VzdGlvbnMgPSBpbnB1dDx7XHJcbiAgICB5ZWFyczogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcclxuICAgIG1vbnRoczogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcclxuICAgIGRheXM6IFNweFZhbHVlUGFpcjxudW1iZXI+W107XHJcbiAgfT4oe3llYXJzOiBbXSxcclxuICAgIG1vbnRoczogW3tcclxuICAgICAgZGVzY3JpcHRpb246ICdKYW4nLFxyXG4gICAgICB2YWx1ZTogMSxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdGZWInLFxyXG4gICAgICB2YWx1ZTogMixcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdNYXInLFxyXG4gICAgICB2YWx1ZTogMyxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdBcHInLFxyXG4gICAgICB2YWx1ZTogNCxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdNYXknLFxyXG4gICAgICB2YWx1ZTogNSxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdKdW4nLFxyXG4gICAgICB2YWx1ZTogNixcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdKdWwnLFxyXG4gICAgICB2YWx1ZTogNyxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdBdWcnLFxyXG4gICAgICB2YWx1ZTogOCxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdTZXAnLFxyXG4gICAgICB2YWx1ZTogOSxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdPY3QnLFxyXG4gICAgICB2YWx1ZTogMTAsXHJcbiAgICB9LCB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnTm92JyxcclxuICAgICAgdmFsdWU6IDExLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0RlYycsXHJcbiAgICAgIHZhbHVlOiAxMixcclxuICAgIH1dLFxyXG4gICAgZGF5czogW10sfSk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWdnZXN0WWVhcnMoKTtcclxuICAgIGlmICh2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gRGF0ZVRpbWUuZnJvbUlTTyh2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMudmFsdWUpKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFllYXIuc2V0KHBhcnNlZFZhbHVlLnllYXIpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGguc2V0KHBhcnNlZFZhbHVlLm1vbnRoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheS5zZXQocGFyc2VkVmFsdWUuZGF5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZTogbnVtYmVyKSB7XHJcblxyXG4gICAgc3dpdGNoKHRoaXMuc3B4U2VsZWN0ZWRTdGVwKCkpIHtcclxuICAgICAgY2FzZSBzdGVwVHlwZS55ZWFyczpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBzdGVwVHlwZS5tb250aHM6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoLnNldCh2YWx1ZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHN0ZXBUeXBlLmRheXM6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERheS5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kRW1pdCgpO1xyXG4gICAgdGhpcy5jaGFuZ2VTZWxlY3RlZFN0ZXAoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlQW5kRW1pdCgpIHtcclxuICAgIGNvbnN0IGNvbmNhdGVuYXRlZFZhbHVlID0gYCR7dGhpcy5zZWxlY3RlZFllYXIoKSA/IHRoaXMuc2VsZWN0ZWRZZWFyKCkgOiBgYH0ke3RoaXMuc2VsZWN0ZWRNb250aCgpID8gYCR7dGhpcy5zZWxlY3RlZE1vbnRoKCkhIDwgMTAgPyBgMCR7dGhpcy5zZWxlY3RlZE1vbnRoKCl9YCA6IHRoaXMuc2VsZWN0ZWRNb250aCgpfWAgOiBgYH0ke3RoaXMuc2VsZWN0ZWREYXkoKSA/IGAtJHt0aGlzLnNlbGVjdGVkRGF5KCkhIDwgMTAgPyBgMCR7dGhpcy5zZWxlY3RlZERheSgpfWAgOiB0aGlzLnNlbGVjdGVkRGF5KCl9YCA6IGBgfWBcclxuXHJcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IERhdGVUaW1lLmZyb21JU08oY29uY2F0ZW5hdGVkVmFsdWUpO1xyXG4gICAgXHJcbiAgICB0aGlzLnZhbHVlLnNldCh7dmFsdWU6IHBhcnNlZFZhbHVlLnRvSVNPKCkhLCBkZXNjcmlwdGlvbjogcGFyc2VkVmFsdWUudG9JU08oKX0pO1xyXG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU2VsZWN0ZWRTdGVwKCkge1xyXG4gICAgc3dpdGNoKHRoaXMuc3B4U2VsZWN0ZWRTdGVwKCkpIHtcclxuICAgICAgY2FzZSBzdGVwVHlwZS55ZWFyczpcclxuICAgICAgICBpZih0aGlzLnNweFNlbGVjdE1vbnRoKCkpIHtcclxuICAgICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS5tb250aHMpO1xyXG4gICAgICAgICAgdGhpcy5tb250aElucHV0Q29tcG9uZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS55ZWFycyk7XHJcbiAgICAgICAgICB0aGlzLnllYXJJbnB1dENvbXBvbmVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIGJyZWFrOyAgXHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUubW9udGhzOlxyXG4gICAgICAgIGlmKHRoaXMuc3B4U2VsZWN0RGF5KCkpIHtcclxuICAgICAgICAgIHRoaXMuc3B4U2VsZWN0ZWRTdGVwLnNldChzdGVwVHlwZS5kYXlzKTtcclxuICAgICAgICAgIHRoaXMuZGF5SW5wdXRDb21wb25lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHN0ZXBUeXBlLnllYXJzKTtcclxuICAgICAgICAgIHRoaXMueWVhcklucHV0Q29tcG9uZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUuZGF5czpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUueWVhcnMpO1xyXG4gICAgICAgIHRoaXMueWVhcklucHV0Q29tcG9uZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICBicmVhazsgICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VnZ2VzdFllYXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzID0gW107XHJcbiAgICBmb3IgKGxldCB5ZWFyID0gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnNweE1pbigpKS55ZWFyOyB5ZWFyIDw9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNYXgoKSkueWVhcjsgeWVhcisrKSB7XHJcbiAgICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMoKS55ZWFycy5wdXNoKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogYCcke3llYXIudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiwgNCl9YCxcclxuICAgICAgICB2YWx1ZTogeWVhcixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9scyc+XHJcbiAgPGlucHV0ICN5ZWFyc1xyXG4gICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcclxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRZZWFyXCJcclxuICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgKGNsaWNrKT1cInRoaXMuaGFuZGxlRm9jdXMoJ3llYXJzJylcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQsICd5ZWFycycpXCJcclxuICAgIFthdHRyLm1pbl09XCIxOTAwXCJcclxuICAgIFthdHRyLm1heF09XCIyMTAwXCJcclxuICAgIFthdHRyLnN0ZXBdPVwiMVwiXHJcbiAgICAvPlxyXG4gIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5ZZWFyPC9kaXY+XHJcbiAgQGlmICh0aGlzLnNweFNlbGVjdE1vbnRoKCkpIHtcclxuICAgIDxpbnB1dCAjbW9udGhzXHJcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb250aFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50LCAnbW9udGhzJylcIlxyXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVGb2N1cygnbW9udGhzJylcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2F0dHIubWluXT1cIjFcIlxyXG4gICAgICBbYXR0ci5tYXhdPVwiMTJcIlxyXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+TW9udGg8L2Rpdj5cclxuICBAaWYgKHRoaXMuc3B4U2VsZWN0RGF5KCkpIHtcclxuICAgIDxpbnB1dCAjZGF5c1xyXG4gICAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF5XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQsICdkYXlzJylcIlxyXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVGb2N1cygnZGF5cycpXCJcclxuICAgICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgIFthdHRyLm1pbl09XCIxXCJcclxuICAgICAgW2F0dHIubWF4XT1cIjMxXCJcclxuICAgICAgW2F0dHIuc3RlcF09XCIxXCIgLz5cclxuICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5EYXlzPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX3N1Z2dlc3Rpb25zJz5cclxuICBAZm9yICh2YWx1ZVBhaXIgb2Ygc3B4U3VnZ2VzdGlvbkMoKTsgdHJhY2sgdmFsdWVQYWlyLnZhbHVlKSB7XHJcbiAgICA8c3B4LXN1Z2dlc3Rpb24gW3NweFNlbGVjdGVkXT1cIlxyXG4gICAgKHNlbGVjdGVkWWVhcigpID09PSB2YWx1ZVBhaXIudmFsdWUpIHx8XHJcbiAgICAoc2VsZWN0ZWRNb250aCgpID09PSB2YWx1ZVBhaXIudmFsdWUpIHx8ICBcclxuICAgIChzZWxlY3RlZERheSgpID09PSB2YWx1ZVBhaXIudmFsdWUpXCJcclxuICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZVBhaXIudmFsdWUpXCI+e3t2YWx1ZVBhaXI/LmRlc2NyaXB0aW9ufX08L3NweC1zdWdnZXN0aW9uPlxyXG4gIH1cclxuPC9kaXY+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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ckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3dDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LWZsb2F0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1lbmRcIj5cclxuICA8aW5wdXRcclxuICAgICNmaXJzdElucHV0UmVmXHJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxyXG4gICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRoaXMuc3B4QXV0b2ZvY3VzID8gdGhpcy5zcHhBdXRvZm9jdXMgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIucGF0dGVybl09XCInWzAtOV0qJ1wiXHJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxyXG4gICAgW2F0dHIudHlwZV09XCIndGV4dCdcIlxyXG4gICAgW2NsYXNzLnNweC1pbnB1dC1mbG9hdC0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXHJcbiAgICBbbmdNb2RlbF09XCJ0aGlzLmludGVybmFsVmFsdWU/LmZpcnN0ID8gdGhpcy5pbnRlcm5hbFZhbHVlPy5maXJzdCA6IHVuZGVmaW5lZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmhhbmRsZUlucHV0KCRldmVudCwgMSlcIiAvPlxyXG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFjayBmb250LWJvbGQgdGV4dC0yeGwgbXgtNFwiPiw8L3NwYW4+XHJcbiAgPGlucHV0XHJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXHJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxyXG4gICAgW2NsYXNzLnNweC1pbnB1dC1mbG9hdC0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXHJcbiAgICBbbmdNb2RlbF09XCJ0aGlzLmludGVybmFsVmFsdWU/LnNlY29uZCA/IHRoaXMuaW50ZXJuYWxWYWx1ZT8uc2Vjb25kIDogdW5kZWZpbmVkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAyKVwiXHJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxyXG4gICAgW2F0dHIudHlwZV09XCIndGV4dCdcIlxyXG4gICAgW2F0dHIucGF0dGVybl09XCInWzAtOV0qJ1wiIC8+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBgXHJcbiAgOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc3B4LWlucHV0LWZsb2F0X19pbnB1dCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xyXG4gIGZsZXg6IDE7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnNweC1pbnB1dC1mbG9hdF9faW5wdXQ6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRGbG9hdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZToge1xyXG4gICAgZmlyc3Q6IG51bWJlciB8IG51bGw7XHJcbiAgICBzZWNvbmQ6IG51bWJlciB8IG51bGw7XHJcbiAgfSA9IHtcclxuICAgIGZpcnN0OiBudWxsLFxyXG4gICAgc2Vjb25kOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFZhbGlkYXRvcnMhOiBhbnlbXTtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aWNrID0ge307XHJcbiAgQFZpZXdDaGlsZCgnZmlyc3RJbnB1dFJlZicsIHsgc3RhdGljOiB0cnVlIH0pIGZpcnN0SW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIFxyXG4gIHNweFNldEZvY3VzKCkge1xyXG4gICAgdGhpcy5maXJzdElucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zcHhBdXRvZm9jdXMpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlU2V0VmFsdWUodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNldFZhbHVlKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKCkge1xyXG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZXRWYWx1ZShuZXdWYWx1ZTogU3B4VmFsdWVQYWlyPGFueT4pIHtcclxuICAgIGlmICh0aGlzLmlzTnVtZXJpYyhuZXdWYWx1ZT8udmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcclxuICAgICAgICBmaXJzdDogTWF0aC5mbG9vcihwYXJzZUZsb2F0KG5ld1ZhbHVlPy52YWx1ZSkpLFxyXG4gICAgICAgIHNlY29uZDogbmV3VmFsdWU/LnZhbHVlPy5zcGxpdCA/IG5ld1ZhbHVlPy52YWx1ZS5zcGxpdCgnLicpWzFdIDogMCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcclxuICAgICAgICBmaXJzdDogbnVsbCxcclxuICAgICAgICBzZWNvbmQ6IG51bGwsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpY2sgPSB7fTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0KHZhbHVlOiBhbnksIHBvc2l0aW9uOiAxIHwgMikge1xyXG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xyXG4gICAgICBmaXJzdDogcG9zaXRpb24gPT09IDEgPyB2YWx1ZSA6IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCxcclxuICAgICAgc2Vjb25kOiBwb3NpdGlvbiA9PT0gMiA/IHZhbHVlIDogdGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCxcclxuICAgIH07XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA9PT0gbnVsbCAmJiB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kID09PSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBgJHt0aGlzLmludGVybmFsVmFsdWUuZmlyc3QgPyB0aGlzLmludGVybmFsVmFsdWUuZmlyc3QgOiAwfS4ke3RoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgPyB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kIDogMH1gO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgZGVzY3JpcHRpb246IHJlc3VsdCxcclxuICAgICAgdmFsdWU6IHJlc3VsdCxcclxuICAgIH07XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaXNOdW1lcmljKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAvXlsrLV0/XFxkKyhcXC5cXGQrKT8kLy50ZXN0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFnRDlGLE1BQU0sT0FBTyx1QkFBdUI7SUE3Q3BDO1FBaURXLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHakIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEUseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0tBd0I5QjtJQXRCQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDckQsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2hELENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FyQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsOGNBekN4Qjs7Ozs7Ozs7Ozs7OztPQWFMOzs0RkE0Qk0sdUJBQXVCO2tCQTdDbkMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7Ozs7Ozs7Ozs7OztPQWFMOzhCQStCSSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUMrQixRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1udW1iZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwic3B4LWlucHV0LW51bWJlcl9fY29udHJvbHNcIj5cclxuICA8aW5wdXRcclxuICAgICNpbnB1dFxyXG4gICAgY2xhc3M9XCJzcHgtaW5wdXQtbnVtYmVyX19pbnB1dFwiXHJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXHJcbiAgICBbY2xhc3Muc3B4LWlucHV0LW51bWJlci0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuaW5wdXRNb2RlXT1cInRoaXMuc3B4SW5wdXRNb2RlID8gdGhpcy5zcHhJbnB1dE1vZGUgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIudmFsdWVdPVwidGhpcy52YWx1ZT8udmFsdWUgPyB0aGlzLnZhbHVlPy52YWx1ZSA6IHVuZGVmaW5lZFwiXHJcbiAgICBbYXR0ci5zdGVwXT1cInRoaXMuc3B4U3RlcCA/IHRoaXMuc3B4U3RlcCA6IHVuZGVmaW5lZFwiXHJcbiAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgKGlucHV0KT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50KVwiIC8+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBgXHJcbjpob3N0IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnNweC1pbnB1dC1udW1iZXJfX2lucHV0IHtcclxuICBib3JkZXI6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnNweC1pbnB1dC1udW1iZXJfX2lucHV0OmZvY3VzIHtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4uc3B4LWlucHV0LW51bWJlcl9fdmFsdWUge1xyXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC42KTtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXROdW1iZXJDb21wb25lbnQge1xyXG4gIC8vIHByaXZhdGUgZWxJbnB1dD86IEhUTUxFbGVtZW50O1xyXG4gIC8vIEBFbGVtZW50KCkgZWwhOiBIVE1MRWxlbWVudDtcclxuICBASW5wdXQoKSBzcHhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNweEF1dG9mb2N1cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweElucHV0TW9kZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFZhbGlkYXRvcnMhOiBhbnlbXTtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcclxuICBcclxuICBzcHhTZXRGb2N1cygpIHtcclxuICAgIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRMb2FkKCkge1xyXG4gICAgaWYgKHRoaXMuc3B4QXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xyXG4gICAgICB0aGlzLnNweFNldEZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb2N1cygpIHtcclxuICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGwsXHJcbiAgICAgIHZhbHVlOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG59Il19
|