@softpak/components 0.1.3-beta.2 → 0.1.3-beta.20
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/esm2022/spx-form-view/spx-form-view.component.mjs +3 -3
- package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +109 -0
- package/esm2022/spx-inputs/spx-input-time.component.mjs +168 -0
- package/esm2022/spx-inputs/spx-input-type.enum.mjs +2 -1
- package/esm2022/spx-inputs/spx-input.component.mjs +33 -3
- package/esm2022/spx-spinner/spx-spinner.component.mjs +3 -3
- package/fesm2022/softpak-components-spx-form-view.mjs +2 -2
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +296 -4
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-spinner.mjs +2 -2
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/package.json +16 -16
- package/spx-inputs/spx-input-time-modal.component.d.ts +17 -0
- package/spx-inputs/spx-input-time.component.d.ts +43 -0
- package/spx-inputs/spx-input-type.enum.d.ts +2 -1
- package/spx-inputs/spx-input.component.d.ts +2 -0
- package/tailwind.css +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgIf, NgFor } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { EventEmitter, Component, Input, Output, HostListener, ViewChild } from '@angular/core';
|
|
3
|
+
import { EventEmitter, Component, Input, Output, HostListener, ViewChild, inject } from '@angular/core';
|
|
4
4
|
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
5
5
|
import * as i1 from '@fortawesome/angular-fontawesome';
|
|
6
6
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
@@ -12,7 +12,8 @@ import { fromEvent } from 'rxjs';
|
|
|
12
12
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
13
13
|
import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
|
|
14
14
|
import { DateTime } from 'luxon';
|
|
15
|
-
import { valuePairToValue } from '@softpak/components/spx-helpers';
|
|
15
|
+
import { valuePairToValue, SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
16
|
+
import { ModalController, IonButtons, IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
|
|
16
17
|
|
|
17
18
|
class SpxInputBoxComponent {
|
|
18
19
|
handleFocusIn(ev) {
|
|
@@ -1166,8 +1167,270 @@ var SpxInputTypeEnum;
|
|
|
1166
1167
|
SpxInputTypeEnum["password"] = "password";
|
|
1167
1168
|
SpxInputTypeEnum["text"] = "text";
|
|
1168
1169
|
SpxInputTypeEnum["textNumericKeyboard"] = "textNumericKeyboard";
|
|
1170
|
+
SpxInputTypeEnum["time"] = "time";
|
|
1169
1171
|
})(SpxInputTypeEnum || (SpxInputTypeEnum = {}));
|
|
1170
1172
|
|
|
1173
|
+
class SpxInputTimeModalComponent {
|
|
1174
|
+
constructor() {
|
|
1175
|
+
this.change = new EventEmitter();
|
|
1176
|
+
this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
|
|
1177
|
+
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
1178
|
+
this.modalController = inject(ModalController);
|
|
1179
|
+
this.typeError = SpxSeverityEnum.error;
|
|
1180
|
+
this.hourOptions.push(this.hourOptions.shift());
|
|
1181
|
+
}
|
|
1182
|
+
closeDialog() {
|
|
1183
|
+
this.modalController.dismiss();
|
|
1184
|
+
}
|
|
1185
|
+
onChange(value) {
|
|
1186
|
+
this.change.emit(value);
|
|
1187
|
+
console.log(value);
|
|
1188
|
+
this.modalController.dismiss(value);
|
|
1189
|
+
}
|
|
1190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
|
|
1192
|
+
<ion-toolbar>
|
|
1193
|
+
<ion-title>Select {{view}}</ion-title>
|
|
1194
|
+
<ion-buttons slot="end">
|
|
1195
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">Close</spx-button>
|
|
1196
|
+
</ion-buttons>
|
|
1197
|
+
</ion-toolbar>
|
|
1198
|
+
</ion-header>
|
|
1199
|
+
<ion-content class="ion-padding bg-white">
|
|
1200
|
+
<!-- Uren -->
|
|
1201
|
+
<div class="bg-white grid grid-cols-1 gap-3">
|
|
1202
|
+
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
1203
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
1204
|
+
<div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
1205
|
+
{{ hour }}
|
|
1206
|
+
</div>
|
|
1207
|
+
</div>
|
|
1208
|
+
</div>
|
|
1209
|
+
<!-- Minuten -->
|
|
1210
|
+
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
1211
|
+
<div class="grid grid-cols-5 gap-3">
|
|
1212
|
+
<div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
1213
|
+
{{ minute }}
|
|
1214
|
+
</div>
|
|
1215
|
+
</div>
|
|
1216
|
+
</div>
|
|
1217
|
+
</div>
|
|
1218
|
+
</ion-content>
|
|
1219
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
|
|
1220
|
+
}
|
|
1221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
|
|
1222
|
+
type: Component,
|
|
1223
|
+
args: [{
|
|
1224
|
+
selector: 'spx-input-time-modal',
|
|
1225
|
+
standalone: true,
|
|
1226
|
+
imports: [
|
|
1227
|
+
NgIf,
|
|
1228
|
+
NgFor,
|
|
1229
|
+
IonButtons,
|
|
1230
|
+
IonContent,
|
|
1231
|
+
IonHeader,
|
|
1232
|
+
IonToolbar,
|
|
1233
|
+
IonTitle,
|
|
1234
|
+
SpxButtonComponent,
|
|
1235
|
+
SpxDropdownComponent,
|
|
1236
|
+
],
|
|
1237
|
+
template: `<ion-header>
|
|
1238
|
+
<ion-toolbar>
|
|
1239
|
+
<ion-title>Select {{view}}</ion-title>
|
|
1240
|
+
<ion-buttons slot="end">
|
|
1241
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">Close</spx-button>
|
|
1242
|
+
</ion-buttons>
|
|
1243
|
+
</ion-toolbar>
|
|
1244
|
+
</ion-header>
|
|
1245
|
+
<ion-content class="ion-padding bg-white">
|
|
1246
|
+
<!-- Uren -->
|
|
1247
|
+
<div class="bg-white grid grid-cols-1 gap-3">
|
|
1248
|
+
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
1249
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
1250
|
+
<div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
1251
|
+
{{ hour }}
|
|
1252
|
+
</div>
|
|
1253
|
+
</div>
|
|
1254
|
+
</div>
|
|
1255
|
+
<!-- Minuten -->
|
|
1256
|
+
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
1257
|
+
<div class="grid grid-cols-5 gap-3">
|
|
1258
|
+
<div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
1259
|
+
{{ minute }}
|
|
1260
|
+
</div>
|
|
1261
|
+
</div>
|
|
1262
|
+
</div>
|
|
1263
|
+
</div>
|
|
1264
|
+
</ion-content>
|
|
1265
|
+
`,
|
|
1266
|
+
}]
|
|
1267
|
+
}], ctorParameters: () => [], propDecorators: { view: [{
|
|
1268
|
+
type: Input
|
|
1269
|
+
}], value: [{
|
|
1270
|
+
type: Input
|
|
1271
|
+
}], change: [{
|
|
1272
|
+
type: Output
|
|
1273
|
+
}] } });
|
|
1274
|
+
|
|
1275
|
+
class SpxInputTimeComponent {
|
|
1276
|
+
constructor() {
|
|
1277
|
+
this.spxAutofocus = false;
|
|
1278
|
+
this.spxSuggestions = [];
|
|
1279
|
+
this.spxReadonly = false;
|
|
1280
|
+
this.spxCapitalize = false;
|
|
1281
|
+
this.spxFocused = true;
|
|
1282
|
+
this.spxBlurFromChild = new EventEmitter();
|
|
1283
|
+
this.spxChange = new EventEmitter();
|
|
1284
|
+
this.spxFocus = new EventEmitter();
|
|
1285
|
+
this.spxWasInternalUpdate = false;
|
|
1286
|
+
this.modalController = inject(ModalController);
|
|
1287
|
+
this.severitySuccess = SpxSeverityEnum.success;
|
|
1288
|
+
this.hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23
|
|
1289
|
+
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
1290
|
+
this.selectedHour = null;
|
|
1291
|
+
this.selectedMinute = null;
|
|
1292
|
+
}
|
|
1293
|
+
get formattedHour() {
|
|
1294
|
+
return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
|
|
1295
|
+
}
|
|
1296
|
+
get formattedMinute() {
|
|
1297
|
+
return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
|
|
1298
|
+
}
|
|
1299
|
+
get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }
|
|
1300
|
+
get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }
|
|
1301
|
+
spxSetFocus() {
|
|
1302
|
+
this.inputRef?.nativeElement?.focus();
|
|
1303
|
+
}
|
|
1304
|
+
componentDidLoad() {
|
|
1305
|
+
if (this.spxAutofocus) {
|
|
1306
|
+
this.spxFocus.emit();
|
|
1307
|
+
this.spxSetFocus();
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
handleBlur() {
|
|
1311
|
+
this.spxBlurFromChild.emit();
|
|
1312
|
+
}
|
|
1313
|
+
handleFocus() {
|
|
1314
|
+
this.spxFocus.emit();
|
|
1315
|
+
}
|
|
1316
|
+
handleDescriptionInput(event) {
|
|
1317
|
+
this.value = {
|
|
1318
|
+
description: event.target ? event.target.value : null,
|
|
1319
|
+
value: event.target ? event.target.value : null,
|
|
1320
|
+
};
|
|
1321
|
+
this.spxChange.emit(this.value);
|
|
1322
|
+
}
|
|
1323
|
+
handleSuggestionClick(value) {
|
|
1324
|
+
if (!this.spxReadonly) {
|
|
1325
|
+
this.value = value;
|
|
1326
|
+
this.spxChange.emit(this.value);
|
|
1327
|
+
this.spxFocused = false;
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
handleKeyUp() {
|
|
1331
|
+
this.spxFocused = true;
|
|
1332
|
+
}
|
|
1333
|
+
async openDialog(view) {
|
|
1334
|
+
const modal = await this.modalController.create({
|
|
1335
|
+
component: SpxInputTimeModalComponent,
|
|
1336
|
+
componentProps: {
|
|
1337
|
+
value: this.value?.value ?
|
|
1338
|
+
(view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,
|
|
1339
|
+
view,
|
|
1340
|
+
},
|
|
1341
|
+
});
|
|
1342
|
+
modal.onDidDismiss().then((data) => {
|
|
1343
|
+
// this.appStore.dispatch(infArticleActions.reset({}));
|
|
1344
|
+
if (view === 'hours') {
|
|
1345
|
+
console.log('hours');
|
|
1346
|
+
console.log(data);
|
|
1347
|
+
this.selectedHour = data.data;
|
|
1348
|
+
this.openDialog('minutes');
|
|
1349
|
+
this.updateValue();
|
|
1350
|
+
}
|
|
1351
|
+
else if (view === 'minutes') {
|
|
1352
|
+
console.log('minutes');
|
|
1353
|
+
console.log(data);
|
|
1354
|
+
this.selectedMinute = data.data;
|
|
1355
|
+
this.updateValue();
|
|
1356
|
+
}
|
|
1357
|
+
});
|
|
1358
|
+
await modal.present();
|
|
1359
|
+
}
|
|
1360
|
+
updateValue() {
|
|
1361
|
+
if (this.selectedHour !== null && this.selectedMinute !== null) {
|
|
1362
|
+
const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
|
|
1363
|
+
const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
|
|
1364
|
+
const newValue = `${formattedHour}:${formattedMinute}`;
|
|
1365
|
+
this.value = {
|
|
1366
|
+
description: newValue,
|
|
1367
|
+
value: newValue,
|
|
1368
|
+
};
|
|
1369
|
+
this.spxChange.emit(this.value);
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1373
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxInputTimeComponent, isStandalone: true, selector: "spx-input-time", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxSuggestions: "spxSuggestions", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused", spxType: "spxType", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxBlurFromChild: "spxBlurFromChild", spxChange: "spxChange", spxFocus: "spxFocus" }, providers: [
|
|
1374
|
+
ModalController,
|
|
1375
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="relative text-black">
|
|
1376
|
+
<div class="flex items-center justify-around gap-3">
|
|
1377
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
|
|
1378
|
+
<div class="text-gray text-xl">:</div>
|
|
1379
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
|
|
1380
|
+
</div>
|
|
1381
|
+
</div>`, isInline: true, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}#background-content{background:#fff}\n"] }); }
|
|
1382
|
+
}
|
|
1383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
|
|
1384
|
+
type: Component,
|
|
1385
|
+
args: [{ selector: 'spx-input-time', standalone: true, imports: [
|
|
1386
|
+
NgIf,
|
|
1387
|
+
NgFor,
|
|
1388
|
+
SpxButtonComponent,
|
|
1389
|
+
SpxDropdownComponent,
|
|
1390
|
+
], providers: [
|
|
1391
|
+
ModalController,
|
|
1392
|
+
], template: `<div class="relative text-black">
|
|
1393
|
+
<div class="flex items-center justify-around gap-3">
|
|
1394
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
|
|
1395
|
+
<div class="text-gray text-xl">:</div>
|
|
1396
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
|
|
1397
|
+
</div>
|
|
1398
|
+
</div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}#background-content{background:#fff}\n"] }]
|
|
1399
|
+
}], propDecorators: { spxName: [{
|
|
1400
|
+
type: Input
|
|
1401
|
+
}], spxAutofocus: [{
|
|
1402
|
+
type: Input
|
|
1403
|
+
}], spxInputMode: [{
|
|
1404
|
+
type: Input
|
|
1405
|
+
}], spxPattern: [{
|
|
1406
|
+
type: Input
|
|
1407
|
+
}], spxSuggestions: [{
|
|
1408
|
+
type: Input
|
|
1409
|
+
}], spxReadonly: [{
|
|
1410
|
+
type: Input
|
|
1411
|
+
}], spxValidators: [{
|
|
1412
|
+
type: Input
|
|
1413
|
+
}], spxCapitalize: [{
|
|
1414
|
+
type: Input
|
|
1415
|
+
}], spxFocused: [{
|
|
1416
|
+
type: Input
|
|
1417
|
+
}], spxType: [{
|
|
1418
|
+
type: Input
|
|
1419
|
+
}], value: [{
|
|
1420
|
+
type: Input
|
|
1421
|
+
}], spxBlurFromChild: [{
|
|
1422
|
+
type: Output
|
|
1423
|
+
}], spxChange: [{
|
|
1424
|
+
type: Output
|
|
1425
|
+
}], spxFocus: [{
|
|
1426
|
+
type: Output
|
|
1427
|
+
}], spxWasInternalUpdate: [{
|
|
1428
|
+
type: Input
|
|
1429
|
+
}], inputRef: [{
|
|
1430
|
+
type: ViewChild,
|
|
1431
|
+
args: ['input', { static: true }]
|
|
1432
|
+
}] } });
|
|
1433
|
+
|
|
1171
1434
|
class SpxInputComponent {
|
|
1172
1435
|
constructor() {
|
|
1173
1436
|
this.spxLabel = 'label';
|
|
@@ -1252,6 +1515,9 @@ class SpxInputComponent {
|
|
|
1252
1515
|
case SpxInputTypeEnum.radio:
|
|
1253
1516
|
this.radioInput?.spxFocusIn();
|
|
1254
1517
|
break;
|
|
1518
|
+
case SpxInputTypeEnum.time:
|
|
1519
|
+
this.timeInput?.spxSetFocus();
|
|
1520
|
+
break;
|
|
1255
1521
|
}
|
|
1256
1522
|
}
|
|
1257
1523
|
writeValue(value) {
|
|
@@ -1279,7 +1545,7 @@ class SpxInputComponent {
|
|
|
1279
1545
|
useExisting: SpxInputComponent,
|
|
1280
1546
|
multi: true
|
|
1281
1547
|
}
|
|
1282
|
-
], viewQueries: [{ propertyName: "floatInput", first: true, predicate: SpxInputFloatComponent, descendants: true }, { propertyName: "numberInput", first: true, predicate: SpxInputNumberComponent, descendants: true }, { propertyName: "textInput", first: true, predicate: SpxInputTextComponent, descendants: true }, { propertyName: "radioInput", first: true, predicate: SpxInputRadioComponent, descendants: true }], ngImport: i0, template: `<spx-input-box
|
|
1548
|
+
], viewQueries: [{ propertyName: "floatInput", first: true, predicate: SpxInputFloatComponent, descendants: true }, { propertyName: "numberInput", first: true, predicate: SpxInputNumberComponent, descendants: true }, { propertyName: "textInput", first: true, predicate: SpxInputTextComponent, descendants: true }, { propertyName: "timeInput", first: true, predicate: SpxInputTimeComponent, descendants: true }, { propertyName: "radioInput", first: true, predicate: SpxInputRadioComponent, descendants: true }], ngImport: i0, template: `<spx-input-box
|
|
1283
1549
|
[spxFocused]="this.spxFocused"
|
|
1284
1550
|
[spxLabel]="this.spxLabel"
|
|
1285
1551
|
[spxReadonly]="this.spxReadonly"
|
|
@@ -1368,11 +1634,22 @@ class SpxInputComponent {
|
|
|
1368
1634
|
[spxValidators]="this.spxValidators"
|
|
1369
1635
|
[value]="this.value"
|
|
1370
1636
|
></spx-input-radio>
|
|
1637
|
+
<spx-input-time
|
|
1638
|
+
#timeInput
|
|
1639
|
+
*ngIf="this.spxType === 'time'"
|
|
1640
|
+
(spxChange)="this.handleChange($event)"
|
|
1641
|
+
(spxFocus)="this.handleFocus()"
|
|
1642
|
+
[spxFocused]="this.spxFocused"
|
|
1643
|
+
[spxName]="this.spxName"
|
|
1644
|
+
[spxReadonly]="this.spxReadonly"
|
|
1645
|
+
[spxValidators]="this.spxValidators"
|
|
1646
|
+
[value]="this.value"
|
|
1647
|
+
></spx-input-time>
|
|
1371
1648
|
</div>
|
|
1372
1649
|
<div validation-messages>
|
|
1373
1650
|
<ng-content></ng-content>
|
|
1374
1651
|
</div>
|
|
1375
|
-
</spx-input-box>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxName", "spxReadonly", "spxValidators", "spxFocused", "spxSelectMonth", "spxSelectDay", "value", "spxLastKeyPressed", "spxSelectStep", "spxInternalValue", "spxSuggestions", "spxWasInternalUpdate"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
|
|
1652
|
+
</spx-input-box>`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxName", "spxReadonly", "spxValidators", "spxFocused", "spxSelectMonth", "spxSelectDay", "value", "spxLastKeyPressed", "spxSelectStep", "spxInternalValue", "spxSuggestions", "spxWasInternalUpdate"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
|
|
1376
1653
|
}
|
|
1377
1654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputComponent, decorators: [{
|
|
1378
1655
|
type: Component,
|
|
@@ -1390,6 +1667,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1390
1667
|
SpxInputNumberComponent,
|
|
1391
1668
|
SpxInputRadioComponent,
|
|
1392
1669
|
SpxInputTextComponent,
|
|
1670
|
+
SpxInputTimeComponent,
|
|
1393
1671
|
],
|
|
1394
1672
|
providers: [
|
|
1395
1673
|
{
|
|
@@ -1487,6 +1765,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1487
1765
|
[spxValidators]="this.spxValidators"
|
|
1488
1766
|
[value]="this.value"
|
|
1489
1767
|
></spx-input-radio>
|
|
1768
|
+
<spx-input-time
|
|
1769
|
+
#timeInput
|
|
1770
|
+
*ngIf="this.spxType === 'time'"
|
|
1771
|
+
(spxChange)="this.handleChange($event)"
|
|
1772
|
+
(spxFocus)="this.handleFocus()"
|
|
1773
|
+
[spxFocused]="this.spxFocused"
|
|
1774
|
+
[spxName]="this.spxName"
|
|
1775
|
+
[spxReadonly]="this.spxReadonly"
|
|
1776
|
+
[spxValidators]="this.spxValidators"
|
|
1777
|
+
[value]="this.value"
|
|
1778
|
+
></spx-input-time>
|
|
1490
1779
|
</div>
|
|
1491
1780
|
<div validation-messages>
|
|
1492
1781
|
<ng-content></ng-content>
|
|
@@ -1564,6 +1853,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1564
1853
|
}], textInput: [{
|
|
1565
1854
|
type: ViewChild,
|
|
1566
1855
|
args: [SpxInputTextComponent]
|
|
1856
|
+
}], timeInput: [{
|
|
1857
|
+
type: ViewChild,
|
|
1858
|
+
args: [SpxInputTimeComponent]
|
|
1567
1859
|
}], radioInput: [{
|
|
1568
1860
|
type: ViewChild,
|
|
1569
1861
|
args: [SpxInputRadioComponent]
|