@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.
- package/fesm2022/softpak-components-spx-alert.mjs +4 -5
- 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 +4 -5
- package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-update.mjs +4 -5
- package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-button.mjs +4 -5
- 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 +15 -18
- package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +4 -4
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-channel-selection.mjs +7 -9
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +4 -4
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +4 -4
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +8 -9
- 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 +40 -46
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +11 -12
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +4 -5
- package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
- package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-patch.mjs +4 -5
- 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 +4 -4
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-stock-info.mjs +4 -4
- 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 +5 -6
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +7 -9
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation.mjs +4 -4
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
- package/package.json +24 -78
- package/spx-alert/spx-alert.component.d.ts +4 -4
- package/spx-inputs/spx-input-box.component.d.ts +4 -4
- package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
- 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 -323
- 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 -273
- 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 -131
- package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -156
- package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
- package/esm2022/spx-inputs/spx-input.component.mjs +0 -461
- 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'>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRTVFLElBQUssUUFJSjtBQUpELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpJLFFBQVEsS0FBUixRQUFRLFFBSVo7QUFZRCxNQUFNLE9BQU8scUJBQXFCO0lBVmxDO1FBWUUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxLQUFLLEVBQVMsQ0FBQztRQUMvQixVQUFLLEdBQUksS0FBSyxDQUF1QjtZQUNuQyxXQUFXLEVBQUUsRUFBRTtZQUNmLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsY0FBUyxHQUFHLE1BQU0sRUFBcUIsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUVwQixvQkFBZSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsaUJBQVksR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckMsbUJBQWMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFdEMsaUJBQVksR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQzNDLGtCQUFhLEdBQUcsTUFBTSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBQzNDLGdCQUFXLEdBQUcsTUFBTSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBRXpDLHVCQUFrQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLHdCQUFtQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLHNCQUFpQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxFLG1CQUFjLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDckQsUUFBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztnQkFDOUIsS0FBSyxRQUFRLENBQUMsS0FBSztvQkFDakIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxLQUFLLFFBQVEsQ0FBQyxNQUFNO29CQUNsQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzFDLEtBQUssUUFBUSxDQUFDLElBQUk7b0JBQ2hCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFvQ0gsbUJBQWMsR0FBRyxLQUFLLENBSW5CLEVBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQztvQkFDUCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLENBQUM7aUJBQ1QsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLEVBQUU7aUJBQ1YsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLEVBQUU7aUJBQ1YsRUFBRTtvQkFDRCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsS0FBSyxFQUFFLEVBQUU7aUJBQ1YsQ0FBQztZQUNGLElBQUksRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBNkVmO0lBekpDLFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixRQUFPLFlBQVksRUFBRSxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNOLEtBQUssUUFBUSxDQUFDLE1BQU07Z0JBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuRCxNQUFNO1lBQ04sS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pELE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFnQixFQUFFLFlBQW9CO1FBQ2xELE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsb0JBQW9CO1FBRW5ELElBQUcsV0FBVyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRTVCLFFBQU8sWUFBWSxFQUFFLENBQUM7WUFDcEIsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU07WUFDTixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtZQUNOLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUE4Q0QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFhO1FBRWpDLFFBQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDOUIsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDTixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEMsTUFBTTtZQUNOLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtRQUUxUyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsUUFBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUM5QixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQztxQkFDSSxDQUFDO29CQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsRCxDQUFDO2dCQUNILE1BQU07WUFDTixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixJQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakQsQ0FBQztxQkFDSSxDQUFDO29CQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsRCxDQUFDO2dCQUNILE1BQU07WUFDTixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEQsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxLQUFLLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzNHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUMvQixXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0E5TFUscUJBQXFCO21HQUFyQixxQkFBcUIsMjVDQXVCb0IsUUFBUSxDQUFDLEtBQUssc0dBQ2IsUUFBUSxDQUFDLE1BQU0sb0dBQ2pCLFFBQVEsQ0FBQyxJQUFJLGdFQ2pEbEUsZ2tEQTZDTSx1N0JEM0JGLHNCQUFzQiwrSEFDdEIsV0FBVzs7NEZBS0YscUJBQXFCO2tCQVZqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxzQkFBc0I7d0JBQ3RCLFdBQVc7cUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGlucHV0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4uL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtc3VnZ2VzdGlvbic7XG5cbmVudW0gc3RlcFR5cGUge1xuICB5ZWFycyA9IFwieWVhcnNcIixcbiAgbW9udGhzID0gXCJtb250aHNcIixcbiAgZGF5cyA9IFwiZGF5c1wiXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1kYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFNweFN1Z2dlc3Rpb25Db21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zcHgtaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3NweC1pbnB1dC1kYXRlLmNvbXBvbmVudC5jc3NcIlxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNweE1heCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgc3B4TWluID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBzcHhSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+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=
|