@softpak/components 18.6.1 → 18.6.3

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.
@@ -1,297 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
3
- import { DateTime } from 'luxon';
4
- import * as i0 from "@angular/core";
5
- export class SpxInputDateComponent {
6
- constructor() {
7
- this.spxReadonly = false;
8
- this.spxFocused = true;
9
- this.spxSelectMonth = true;
10
- this.spxSelectDay = true;
11
- this.spxChange = new EventEmitter();
12
- this.spxFocus = new EventEmitter();
13
- this.spxSelectStep = 'years';
14
- this.spxInternalValue = {};
15
- this.spxSuggestions = {
16
- years: [],
17
- months: [{
18
- description: 'Jan',
19
- value: 1,
20
- }, {
21
- description: 'Feb',
22
- value: 2,
23
- }, {
24
- description: 'Mar',
25
- value: 3,
26
- }, {
27
- description: 'Apr',
28
- value: 4,
29
- }, {
30
- description: 'May',
31
- value: 5,
32
- }, {
33
- description: 'Jun',
34
- value: 6,
35
- }, {
36
- description: 'Jul',
37
- value: 7,
38
- }, {
39
- description: 'Aug',
40
- value: 8,
41
- }, {
42
- description: 'Sep',
43
- value: 9,
44
- }, {
45
- description: 'Oct',
46
- value: 10,
47
- }, {
48
- description: 'Nov',
49
- value: 11,
50
- }, {
51
- description: 'Dec',
52
- value: 12,
53
- }],
54
- days: [],
55
- };
56
- this.spxWasInternalUpdate = false;
57
- }
58
- async spxSetFocus() {
59
- // this.elYear.focus();
60
- }
61
- // @Watch('spxValidators') watchSpxValidators(newValue) {
62
- // console.log('validators', newValue);
63
- // }
64
- // @Watch('value') watchValue(newValue) {
65
- // if (this.spxWasInternalUpdate) {
66
- // this.spxWasInternalUpdate = false;
67
- // } else {
68
- // const parsedValue = DateTime.fromISO(newValue?.value);
69
- // this.spxInternalValue.years = parsedValue.year;
70
- // this.spxInternalValue.months = parsedValue.month;
71
- // this.spxInternalValue.days = parsedValue.day;
72
- // this.spxSelectStep = 'years';
73
- // }
74
- // }
75
- ngOnInit() {
76
- const parsedValue = this.value ? DateTime.fromISO(this.value.value) : DateTime.now();
77
- this.suggestYears();
78
- this.spxInternalValue.years = parsedValue.year;
79
- this.spxInternalValue.months = parsedValue.month;
80
- this.spxInternalValue.days = parsedValue.day;
81
- }
82
- handleDayInput(event) {
83
- this.spxInternalValue.days = event.target ? event.target.value : null;
84
- this.updateValue();
85
- }
86
- handleMonthInput(event) {
87
- this.spxInternalValue.months = event.target ? event.target.value : null;
88
- this.afterMonthChange();
89
- }
90
- afterMonthChange() {
91
- if (this.spxInternalValue.months.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
92
- this.elDay?.focus();
93
- }
94
- this.updateValue();
95
- }
96
- handleYearInput(event) {
97
- this.spxInternalValue.years = event.target ? event.target.value : null;
98
- this.afterYearChange();
99
- }
100
- afterYearChange() {
101
- if (this.spxInternalValue.years.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
102
- this.elMonth?.focus();
103
- }
104
- this.updateValue();
105
- }
106
- handleInput(event) {
107
- this.setValue(event.target ? event.target.value : null);
108
- }
109
- handleFocus(step) {
110
- this.spxSelectStep = step;
111
- this.spxFocus.emit();
112
- }
113
- handleKeyDown(event) {
114
- this.spxLastKeyPressed = event.which;
115
- }
116
- handleSuggestionClick(value) {
117
- this.spxLastKeyPressed = null;
118
- this.spxInternalValue[this.spxSelectStep] = value;
119
- this.updateValue();
120
- this.doneWithField();
121
- }
122
- updateValue() {
123
- const concatenatedValue = `${this.spxInternalValue.years ? this.spxInternalValue.years : ``}${this.spxInternalValue.months ? `-${this.spxInternalValue.months < 10 ? `0${this.spxInternalValue.months}` : this.spxInternalValue.months}` : ``}${this.spxInternalValue.days ? `-${this.spxInternalValue.days < 10 ? `0${this.spxInternalValue.days}` : this.spxInternalValue.days}` : ``}`;
124
- const parsedValue = DateTime.fromISO(concatenatedValue);
125
- this.spxWasInternalUpdate = true;
126
- this.value = {
127
- description: parsedValue.toISO(),
128
- value: parsedValue.toISO(),
129
- };
130
- this.spxChange.emit(this.value);
131
- }
132
- doneWithField() {
133
- if (this.spxSelectStep === 'days') {
134
- this.spxSelectStep = 'years';
135
- }
136
- else if (this.spxSelectStep === 'months') {
137
- this.spxSelectStep = this.spxSelectDay ? 'days' : 'years';
138
- this.afterMonthChange();
139
- }
140
- else if (this.spxSelectStep === 'years') {
141
- this.afterYearChange();
142
- this.spxSelectStep = this.spxSelectMonth ? 'months' : 'years';
143
- }
144
- }
145
- setValue(value) {
146
- this.spxInternalValue = value;
147
- const parsed = DateTime.fromISO(value);
148
- this.value = {
149
- description: parsed.toISO(),
150
- value: parsed.toISO(),
151
- };
152
- this.spxChange.emit(this.value);
153
- this.spxWasInternalUpdate = true;
154
- }
155
- suggestYears() {
156
- console.log('suggest years', this.spxMin, this.spxMax);
157
- this.spxSuggestions.years = [];
158
- for (let year = DateTime.fromISO(this.spxMin).year; year <= DateTime.fromISO(this.spxMax).year; year++) {
159
- this.spxSuggestions.years.push({
160
- description: `'${year.toString().substring(2, 4)}`,
161
- value: year,
162
- });
163
- }
164
- console.log('suggest years', this.spxSuggestions);
165
- }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
168
- <input
169
- class='spx-input-date__input'
170
- [attr.value]="this.spxInternalValue.years"
171
- (focus)="this.handleFocus('years')"
172
- (input)="this.handleYearInput($event)"
173
- (keyDown)="this.handleKeyDown($event)"
174
- [attr.type]="'number'"
175
- [attr.min]="1900"
176
- [attr.max]="2100"
177
- [attr.step]="1"
178
- />
179
- <div class='spx-input-date__control-label'>Year</div>
180
- @if (this.spxSelectMonth) {
181
- <input
182
- class='spx-input-date__input'
183
- [attr.value]="this.spxInternalValue.months"
184
- (focus)="this.handleFocus('months')"
185
- (input)="this.handleMonthInput($event)"
186
- (keyDown)="this.handleKeyDown($event)"
187
- [attr.type]="'number'"
188
- [attr.min]="1"
189
- [attr.max]="12"
190
- [attr.step]="1" />
191
- }
192
- <div class='spx-input-date__control-label'>Month</div>
193
- @if (this.spxSelectDay) {
194
- <input
195
- class='spx-input-date__input'
196
- [attr.value]="this.spxInternalValue.days"
197
- (focus)="this.handleFocus('days')"
198
- (input)="this.handleDayInput($event)"
199
- (keyDown)="this.handleKeyDown($event)"
200
- [attr.type]="'number'"
201
- [attr.min]="1"
202
- [attr.max]="31"
203
- [attr.step]="1" />
204
- <div class='spx-input-date__control-label'>Days</div>
205
- }
206
- </div>
207
- <div class='spx-input-date__suggestions'>
208
- @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
209
- <spx-suggestion
210
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
211
- }
212
- </div>`, isInline: true, styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"], dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
213
- }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
215
- type: Component,
216
- args: [{ selector: 'spx-input-date', standalone: true, imports: [
217
- SpxSuggestionComponent
218
- ], template: `<div class='spx-input-date__controls'>
219
- <input
220
- class='spx-input-date__input'
221
- [attr.value]="this.spxInternalValue.years"
222
- (focus)="this.handleFocus('years')"
223
- (input)="this.handleYearInput($event)"
224
- (keyDown)="this.handleKeyDown($event)"
225
- [attr.type]="'number'"
226
- [attr.min]="1900"
227
- [attr.max]="2100"
228
- [attr.step]="1"
229
- />
230
- <div class='spx-input-date__control-label'>Year</div>
231
- @if (this.spxSelectMonth) {
232
- <input
233
- class='spx-input-date__input'
234
- [attr.value]="this.spxInternalValue.months"
235
- (focus)="this.handleFocus('months')"
236
- (input)="this.handleMonthInput($event)"
237
- (keyDown)="this.handleKeyDown($event)"
238
- [attr.type]="'number'"
239
- [attr.min]="1"
240
- [attr.max]="12"
241
- [attr.step]="1" />
242
- }
243
- <div class='spx-input-date__control-label'>Month</div>
244
- @if (this.spxSelectDay) {
245
- <input
246
- class='spx-input-date__input'
247
- [attr.value]="this.spxInternalValue.days"
248
- (focus)="this.handleFocus('days')"
249
- (input)="this.handleDayInput($event)"
250
- (keyDown)="this.handleKeyDown($event)"
251
- [attr.type]="'number'"
252
- [attr.min]="1"
253
- [attr.max]="31"
254
- [attr.step]="1" />
255
- <div class='spx-input-date__control-label'>Days</div>
256
- }
257
- </div>
258
- <div class='spx-input-date__suggestions'>
259
- @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
260
- <spx-suggestion
261
- (click)="this.handleSuggestionClick(valuePair.value)">{{valuePair?.description}}</spx-suggestion>
262
- }
263
- </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"] }]
264
- }], propDecorators: { spxMax: [{
265
- type: Input
266
- }], spxMin: [{
267
- type: Input
268
- }], spxName: [{
269
- type: Input
270
- }], spxReadonly: [{
271
- type: Input
272
- }], spxValidators: [{
273
- type: Input
274
- }], spxFocused: [{
275
- type: Input
276
- }], spxSelectMonth: [{
277
- type: Input
278
- }], spxSelectDay: [{
279
- type: Input
280
- }], value: [{
281
- type: Input
282
- }], spxChange: [{
283
- type: Output
284
- }], spxFocus: [{
285
- type: Output
286
- }], spxLastKeyPressed: [{
287
- type: Input
288
- }], spxSelectStep: [{
289
- type: Input
290
- }], spxInternalValue: [{
291
- type: Input
292
- }], spxSuggestions: [{
293
- type: Input
294
- }], spxWasInternalUpdate: [{
295
- type: Input
296
- }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUErR2pDLE1BQU0sT0FBTyxxQkFBcUI7SUE1R2xDO1FBb0hXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFbkIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekQsa0JBQWEsR0FBZ0MsT0FBTyxDQUFDO1FBQ3JELHFCQUFnQixHQUlyQixFQUFFLENBQUM7UUFDRSxtQkFBYyxHQUluQjtZQUNBLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7b0JBQ1AsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFF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Y0FBYztzQkFBdEIsS0FBSztnQkE2Q0csb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcclxuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcclxuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LWRhdGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbHMnPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXHJcbiAgICAgIFthdHRyLnZhbHVlXT1cInRoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFyc1wiXHJcbiAgICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKCd5ZWFycycpXCJcclxuICAgICAgKGlucHV0KT1cInRoaXMuaGFuZGxlWWVhcklucHV0KCRldmVudClcIlxyXG4gICAgICAoa2V5RG93bik9XCJ0aGlzLmhhbmRsZUtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICBbYXR0ci5taW5dPVwiMTkwMFwiXHJcbiAgICAgIFthdHRyLm1heF09XCIyMTAwXCJcclxuICAgICAgW2F0dHIuc3RlcF09XCIxXCJcclxuICAgICAgLz5cclxuICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5ZZWFyPC9kaXY+XHJcbiAgICBAaWYgKHRoaXMuc3B4U2VsZWN0TW9udGgpIHtcclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcclxuICAgICAgICBbYXR0ci52YWx1ZV09XCJ0aGlzLnNweEludGVybmFsVmFsdWUubW9udGhzXCJcclxuICAgICAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygnbW9udGhzJylcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ0aGlzLmhhbmRsZU1vbnRoSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGtleURvd24pPVwidGhpcy5oYW5kbGVLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgIFthdHRyLm1pbl09XCIxXCJcclxuICAgICAgICBbYXR0ci5tYXhdPVwiMTJcIlxyXG4gICAgICAgIFthdHRyLnN0ZXBdPVwiMVwiIC8+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+TW9udGg8L2Rpdj5cclxuICAgIEBpZiAodGhpcy5zcHhTZWxlY3REYXkpIHtcclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcclxuICAgICAgICBbYXR0ci52YWx1ZV09XCJ0aGlzLnNweEludGVybmFsVmFsdWUuZGF5c1wiXHJcbiAgICAgICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoJ2RheXMnKVwiXHJcbiAgICAgICAgKGlucHV0KT1cInRoaXMuaGFuZGxlRGF5SW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGtleURvd24pPVwidGhpcy5oYW5kbGVLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgIFthdHRyLm1pbl09XCIxXCJcclxuICAgICAgICBbYXR0ci5tYXhdPVwiMzFcIlxyXG4gICAgICAgIFthdHRyLnN0ZXBdPVwiMVwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5EYXlzPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX3N1Z2dlc3Rpb25zJz5cclxuICAgIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uc1tzcHhTZWxlY3RTdGVwXTsgdHJhY2sgdmFsdWVQYWlyKSB7XHJcbiAgICAgIDxzcHgtc3VnZ2VzdGlvblxyXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyLnZhbHVlKVwiPnt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19PC9zcHgtc3VnZ2VzdGlvbj5cclxuICAgIH1cclxuICA8L2Rpdj5gLFxyXG4gIHN0eWxlczogYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuc3B4LWlucHV0LWRhdGVfX2lucHV0IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgY29sb3I6IHZhcigtLXNweC1pbnB1dC0tY29sb3IsIHJnYmEoMCwgMCwgMCwgLjkpKTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDZweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuc3B4LWlucHV0LWRhdGVfX2lucHV0OmFjdGl2ZSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dDpmb2N1cyB7XHJcbiAgICAgIGJvcmRlcjogdmFyKC0tc3B4LWlucHV0LWJveC0tZm9jdXMtLWJvcmRlciwgMXB4IHNvbGlkIHJnYigxMTUsIDE2OCwgMjEwKSk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwge1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNyk7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcclxuICAgIC5zcHgtaW5wdXQtZGF0ZV9faW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICAgIC8qIGRpc3BsYXk6IG5vbmU7IDwtIENyYXNoZXMgQ2hyb21lIG9uIGhvdmVyICovXHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogMDsgLyogPC0tIEFwcGFyZW50bHkgc29tZSBtYXJnaW4gYXJlIHN0aWxsIHRoZXJlIGV2ZW4gdGhvdWdoIGl0J3MgaGlkZGVuICovXHJcbiAgICB9XHJcblxyXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dFt0eXBlPW51bWJlcl0ge1xyXG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7IC8qIEZpcmVmb3ggKi9cclxuICAgIH1cclxuXHJcbiAgICAuc3B4LWlucHV0LWRhdGVfX3N1Z2dlc3Rpb25zLFxyXG4gICAgLnNweC1pbnB1dC1kYXRlX19jb250cm9scyB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtZ2FwOiA4cHg7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIH1cclxuYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNweElucHV0RGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBlbFllYXI/OiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIGVsTW9udGg/OiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIGVsRGF5PzogSFRNTEVsZW1lbnQ7XHJcbiAgLy8gQEVsZW1lbnQoKSBlbCE6IEhUTUxFbGVtZW50O1xyXG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhNaW4/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4TmFtZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFZhbGlkYXRvcnM/OiBhbnlbXTtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTZWxlY3RNb250aCA9IHRydWU7XHJcbiAgQElucHV0KCkgc3B4U2VsZWN0RGF5ID0gdHJ1ZTtcclxuICBASW5wdXQoKSB2YWx1ZT86IFNweFZhbHVlUGFpcjxzdHJpbmc+O1xyXG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xyXG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIHNweExhc3RLZXlQcmVzc2VkITogbnVsbDtcclxuICBASW5wdXQoKSBzcHhTZWxlY3RTdGVwOiAneWVhcnMnIHwgJ2RheXMnIHwgJ21vbnRocycgPSAneWVhcnMnO1xyXG4gIEBJbnB1dCgpIHNweEludGVybmFsVmFsdWU6IHtcclxuICAgIHllYXJzPzogbnVtYmVyO1xyXG4gICAgbW9udGhzPzogbnVtYmVyO1xyXG4gICAgZGF5cz86IG51bWJlcjtcclxuICB9ID0ge307XHJcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IHtcclxuICAgIHllYXJzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgbW9udGhzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgZGF5czogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcclxuICB9ID0ge1xyXG4gICAgICB5ZWFyczogW10sXHJcbiAgICAgIG1vbnRoczogW3tcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0phbicsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZlYicsXHJcbiAgICAgICAgdmFsdWU6IDIsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ01hcicsXHJcbiAgICAgICAgdmFsdWU6IDMsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0FwcicsXHJcbiAgICAgICAgdmFsdWU6IDQsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ01heScsXHJcbiAgICAgICAgdmFsdWU6IDUsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0p1bicsXHJcbiAgICAgICAgdmFsdWU6IDYsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0p1bCcsXHJcbiAgICAgICAgdmFsdWU6IDcsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ0F1ZycsXHJcbiAgICAgICAgdmFsdWU6IDgsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ1NlcCcsXHJcbiAgICAgICAgdmFsdWU6IDksXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogJ09jdCcsXHJcbiAgICAgICAgdmFsdWU6IDEwLFxyXG4gICAgICB9LCB7XHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdOb3YnLFxyXG4gICAgICAgIHZhbHVlOiAxMSxcclxuICAgICAgfSwge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVjJyxcclxuICAgICAgICB2YWx1ZTogMTIsXHJcbiAgICAgIH1dLFxyXG4gICAgICBkYXlzOiBbXSxcclxuICAgIH07XHJcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcclxuICBhc3luYyBzcHhTZXRGb2N1cygpIHtcclxuICAgIC8vIHRoaXMuZWxZZWFyLmZvY3VzKCk7XHJcbiAgfVxyXG4gIC8vIEBXYXRjaCgnc3B4VmFsaWRhdG9ycycpIHdhdGNoU3B4VmFsaWRhdG9ycyhuZXdWYWx1ZSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ3ZhbGlkYXRvcnMnLCBuZXdWYWx1ZSk7XHJcbiAgLy8gfVxyXG4gIC8vIEBXYXRjaCgndmFsdWUnKSB3YXRjaFZhbHVlKG5ld1ZhbHVlKSB7XHJcbiAgLy8gICBpZiAodGhpcy5zcHhXYXNJbnRlcm5hbFVwZGF0ZSkge1xyXG4gIC8vICAgICB0aGlzLnNweFdhc0ludGVybmFsVXBkYXRlID0gZmFsc2U7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IERhdGVUaW1lLmZyb21JU08obmV3VmFsdWU/LnZhbHVlKTtcclxuICAvLyAgICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLnllYXJzID0gcGFyc2VkVmFsdWUueWVhcjtcclxuICAvLyAgICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA9IHBhcnNlZFZhbHVlLm1vbnRoO1xyXG4gIC8vICAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IHBhcnNlZFZhbHVlLmRheTtcclxuICAvLyAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gJ3llYXJzJztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSB0aGlzLnZhbHVlID8gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnZhbHVlIS52YWx1ZSkgOiBEYXRlVGltZS5ub3coKTtcclxuICAgIHRoaXMuc3VnZ2VzdFllYXJzKCk7XHJcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPSBwYXJzZWRWYWx1ZS55ZWFyO1xyXG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA9IHBhcnNlZFZhbHVlLm1vbnRoO1xyXG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXMgPSBwYXJzZWRWYWx1ZS5kYXk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEYXlJbnB1dChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb250aElucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPSBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsO1xyXG4gICAgdGhpcy5hZnRlck1vbnRoQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBhZnRlck1vbnRoQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMhLnRvU3RyaW5nKCkubGVuZ3RoID09PSAyICYmIHRoaXMuc3B4U2VsZWN0RGF5ICYmIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgIT09IDM4ICYmIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgIT09IDQwKSB7XHJcbiAgICAgIHRoaXMuZWxEYXk/LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVZZWFySW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLnllYXJzID0gZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbDtcclxuICAgIHRoaXMuYWZ0ZXJZZWFyQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBhZnRlclllYXJDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5zcHhJbnRlcm5hbFZhbHVlLnllYXJzIS50b1N0cmluZygpLmxlbmd0aCA9PT0gNCAmJiB0aGlzLnNweFNlbGVjdE1vbnRoICYmIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgIT09IDM4ICYmIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgIT09IDQwKSB7XHJcbiAgICAgIHRoaXMuZWxNb250aD8uZm9jdXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb2N1cyhzdGVwOiAneWVhcnMnIHwgJ21vbnRocycgfCAnZGF5cycpIHtcclxuICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHN0ZXA7XHJcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zcHhMYXN0S2V5UHJlc3NlZCA9IGV2ZW50LndoaWNoO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgPSBudWxsO1xyXG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlW3RoaXMuc3B4U2VsZWN0U3RlcF0gPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuZG9uZVdpdGhGaWVsZCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoKSB7XHJcbiAgICBjb25zdCBjb25jYXRlbmF0ZWRWYWx1ZSA9IGAke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFycyA/IHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFycyA6IGBgfSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA/IGAtJHt0aGlzLnNweEludGVybmFsVmFsdWUubW9udGhzIDwgMTAgPyBgMCR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRoc31gIDogdGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRoc31gIDogYGB9JHt0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA/IGAtJHt0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA8IDEwID8gYDAke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS5kYXlzfWAgOiB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5c31gIDogYGB9YFxyXG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBEYXRlVGltZS5mcm9tSVNPKGNvbmNhdGVuYXRlZFZhbHVlKTtcclxuICAgIHRoaXMuc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSB0cnVlO1xyXG4gICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgZGVzY3JpcHRpb246IHBhcnNlZFZhbHVlLnRvSVNPKCksXHJcbiAgICAgIHZhbHVlOiBwYXJzZWRWYWx1ZS50b0lTTygpISxcclxuICAgIH07XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZG9uZVdpdGhGaWVsZCgpIHtcclxuICAgIGlmICh0aGlzLnNweFNlbGVjdFN0ZXAgPT09ICdkYXlzJykge1xyXG4gICAgICB0aGlzLnNweFNlbGVjdFN0ZXAgPSAneWVhcnMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNweFNlbGVjdFN0ZXAgPT09ICdtb250aHMnKSB7XHJcbiAgICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHRoaXMuc3B4U2VsZWN0RGF5ID8gJ2RheXMnIDogJ3llYXJzJztcclxuICAgICAgdGhpcy5hZnRlck1vbnRoQ2hhbmdlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3B4U2VsZWN0U3RlcCA9PT0gJ3llYXJzJykge1xyXG4gICAgICB0aGlzLmFmdGVyWWVhckNoYW5nZSgpO1xyXG4gICAgICB0aGlzLnNweFNlbGVjdFN0ZXAgPSB0aGlzLnNweFNlbGVjdE1vbnRoID8gJ21vbnRocycgOiAneWVhcnMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlID0gdmFsdWU7XHJcbiAgICBjb25zdCBwYXJzZWQgPSBEYXRlVGltZS5mcm9tSVNPKHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWUgPSB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXJzZWQudG9JU08oKSxcclxuICAgICAgdmFsdWU6IHBhcnNlZC50b0lTTygpISxcclxuICAgIH07XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5zcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Z2dlc3RZZWFycygpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdzdWdnZXN0IHllYXJzJywgdGhpcy5zcHhNaW4sIHRoaXMuc3B4TWF4KTtcclxuICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMueWVhcnMgPSBbXTtcclxuICAgIGZvciAobGV0IHllYXIgPSBEYXRlVGltZS5mcm9tSVNPKHRoaXMuc3B4TWluISkueWVhcjsgeWVhciA8PSBEYXRlVGltZS5mcm9tSVNPKHRoaXMuc3B4TWF4ISkueWVhcjsgeWVhcisrKSB7XHJcbiAgICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMueWVhcnMucHVzaCh7XHJcbiAgICAgICAgZGVzY3JpcHRpb246IGAnJHt5ZWFyLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsIDQpfWAsXHJcbiAgICAgICAgdmFsdWU6IHllYXIsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3N1Z2dlc3QgeWVhcnMnLCB0aGlzLnNweFN1Z2dlc3Rpb25zKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,49 +0,0 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
2
- import { SpxValuePair } from './spx-value-interface';
3
- import * as i0 from "@angular/core";
4
- export declare class SpxInputDateComponent implements OnInit {
5
- private elYear?;
6
- private elMonth?;
7
- private elDay?;
8
- spxMax?: string;
9
- spxMin?: string;
10
- spxName?: string;
11
- spxReadonly: boolean;
12
- spxValidators?: any[];
13
- spxFocused: boolean;
14
- spxSelectMonth: boolean;
15
- spxSelectDay: boolean;
16
- value?: SpxValuePair<string>;
17
- spxChange: EventEmitter<SpxValuePair<any>>;
18
- spxFocus: EventEmitter<void>;
19
- spxLastKeyPressed: null;
20
- spxSelectStep: 'years' | 'days' | 'months';
21
- spxInternalValue: {
22
- years?: number;
23
- months?: number;
24
- days?: number;
25
- };
26
- spxSuggestions: {
27
- years: SpxValuePair<number>[];
28
- months: SpxValuePair<number>[];
29
- days: SpxValuePair<number>[];
30
- };
31
- spxWasInternalUpdate: boolean;
32
- spxSetFocus(): Promise<void>;
33
- ngOnInit(): void;
34
- handleDayInput(event: any): void;
35
- handleMonthInput(event: any): void;
36
- afterMonthChange(): void;
37
- handleYearInput(event: any): void;
38
- afterYearChange(): void;
39
- handleInput(event: any): void;
40
- handleFocus(step: 'years' | 'months' | 'days'): void;
41
- handleKeyDown(event: any): void;
42
- handleSuggestionClick(value: number): void;
43
- updateValue(): void;
44
- doneWithField(): void;
45
- setValue(value: any): void;
46
- private suggestYears;
47
- static ɵfac: i0.ɵɵFactoryDeclaration<SpxInputDateComponent, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<SpxInputDateComponent, "spx-input-date", never, { "spxMax": { "alias": "spxMax"; "required": false; }; "spxMin": { "alias": "spxMin"; "required": false; }; "spxName": { "alias": "spxName"; "required": false; }; "spxReadonly": { "alias": "spxReadonly"; "required": false; }; "spxValidators": { "alias": "spxValidators"; "required": false; }; "spxFocused": { "alias": "spxFocused"; "required": false; }; "spxSelectMonth": { "alias": "spxSelectMonth"; "required": false; }; "spxSelectDay": { "alias": "spxSelectDay"; "required": false; }; "value": { "alias": "value"; "required": false; }; "spxLastKeyPressed": { "alias": "spxLastKeyPressed"; "required": false; }; "spxSelectStep": { "alias": "spxSelectStep"; "required": false; }; "spxInternalValue": { "alias": "spxInternalValue"; "required": false; }; "spxSuggestions": { "alias": "spxSuggestions"; "required": false; }; "spxWasInternalUpdate": { "alias": "spxWasInternalUpdate"; "required": false; }; }, { "spxChange": "spxChange"; "spxFocus": "spxFocus"; }, never, never, true, never>;
49
- }