@softpak/components 0.1.3-beta.2 → 0.1.3-beta.21
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 +114 -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 +299 -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 +18 -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,9 @@ 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';
|
|
17
|
+
import { faXmark } from '@fortawesome/free-solid-svg-icons';
|
|
16
18
|
|
|
17
19
|
class SpxInputBoxComponent {
|
|
18
20
|
handleFocusIn(ev) {
|
|
@@ -1166,8 +1168,272 @@ var SpxInputTypeEnum;
|
|
|
1166
1168
|
SpxInputTypeEnum["password"] = "password";
|
|
1167
1169
|
SpxInputTypeEnum["text"] = "text";
|
|
1168
1170
|
SpxInputTypeEnum["textNumericKeyboard"] = "textNumericKeyboard";
|
|
1171
|
+
SpxInputTypeEnum["time"] = "time";
|
|
1169
1172
|
})(SpxInputTypeEnum || (SpxInputTypeEnum = {}));
|
|
1170
1173
|
|
|
1174
|
+
class SpxInputTimeModalComponent {
|
|
1175
|
+
constructor() {
|
|
1176
|
+
this.change = new EventEmitter();
|
|
1177
|
+
this.faXmark = faXmark;
|
|
1178
|
+
this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
|
|
1179
|
+
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
1180
|
+
this.modalController = inject(ModalController);
|
|
1181
|
+
this.typeError = SpxSeverityEnum.error;
|
|
1182
|
+
this.hourOptions.push(this.hourOptions.shift());
|
|
1183
|
+
}
|
|
1184
|
+
closeDialog() {
|
|
1185
|
+
this.modalController.dismiss();
|
|
1186
|
+
}
|
|
1187
|
+
onChange(value) {
|
|
1188
|
+
this.change.emit(value);
|
|
1189
|
+
console.log(value);
|
|
1190
|
+
this.modalController.dismiss(value);
|
|
1191
|
+
}
|
|
1192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1193
|
+
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>
|
|
1194
|
+
<ion-toolbar>
|
|
1195
|
+
<ion-title>Select {{view}}</ion-title>
|
|
1196
|
+
<ion-buttons slot="end">
|
|
1197
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()"><fa-icon [icon]="faXmark"></fa-icon></spx-button>
|
|
1198
|
+
</ion-buttons>
|
|
1199
|
+
</ion-toolbar>
|
|
1200
|
+
</ion-header>
|
|
1201
|
+
<ion-content class="ion-padding bg-white">
|
|
1202
|
+
<!-- Uren -->
|
|
1203
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
1204
|
+
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
1205
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
1206
|
+
<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)">
|
|
1207
|
+
{{ hour }}
|
|
1208
|
+
</div>
|
|
1209
|
+
</div>
|
|
1210
|
+
</div>
|
|
1211
|
+
<!-- Minuten -->
|
|
1212
|
+
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
1213
|
+
<div class="grid grid-cols-5 gap-3">
|
|
1214
|
+
<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)">
|
|
1215
|
+
{{ minute }}
|
|
1216
|
+
</div>
|
|
1217
|
+
</div>
|
|
1218
|
+
</div>
|
|
1219
|
+
</div>
|
|
1220
|
+
</ion-content>
|
|
1221
|
+
`, 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"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
|
|
1222
|
+
}
|
|
1223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
|
|
1224
|
+
type: Component,
|
|
1225
|
+
args: [{
|
|
1226
|
+
selector: 'spx-input-time-modal',
|
|
1227
|
+
standalone: true,
|
|
1228
|
+
imports: [
|
|
1229
|
+
NgIf,
|
|
1230
|
+
NgFor,
|
|
1231
|
+
IonButtons,
|
|
1232
|
+
IonContent,
|
|
1233
|
+
IonHeader,
|
|
1234
|
+
IonToolbar,
|
|
1235
|
+
IonTitle,
|
|
1236
|
+
SpxButtonComponent,
|
|
1237
|
+
SpxDropdownComponent,
|
|
1238
|
+
FontAwesomeModule,
|
|
1239
|
+
],
|
|
1240
|
+
template: `<ion-header>
|
|
1241
|
+
<ion-toolbar>
|
|
1242
|
+
<ion-title>Select {{view}}</ion-title>
|
|
1243
|
+
<ion-buttons slot="end">
|
|
1244
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()"><fa-icon [icon]="faXmark"></fa-icon></spx-button>
|
|
1245
|
+
</ion-buttons>
|
|
1246
|
+
</ion-toolbar>
|
|
1247
|
+
</ion-header>
|
|
1248
|
+
<ion-content class="ion-padding bg-white">
|
|
1249
|
+
<!-- Uren -->
|
|
1250
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
1251
|
+
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
1252
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
1253
|
+
<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)">
|
|
1254
|
+
{{ hour }}
|
|
1255
|
+
</div>
|
|
1256
|
+
</div>
|
|
1257
|
+
</div>
|
|
1258
|
+
<!-- Minuten -->
|
|
1259
|
+
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
1260
|
+
<div class="grid grid-cols-5 gap-3">
|
|
1261
|
+
<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)">
|
|
1262
|
+
{{ minute }}
|
|
1263
|
+
</div>
|
|
1264
|
+
</div>
|
|
1265
|
+
</div>
|
|
1266
|
+
</div>
|
|
1267
|
+
</ion-content>
|
|
1268
|
+
`,
|
|
1269
|
+
}]
|
|
1270
|
+
}], ctorParameters: () => [], propDecorators: { view: [{
|
|
1271
|
+
type: Input
|
|
1272
|
+
}], value: [{
|
|
1273
|
+
type: Input
|
|
1274
|
+
}], change: [{
|
|
1275
|
+
type: Output
|
|
1276
|
+
}] } });
|
|
1277
|
+
|
|
1278
|
+
class SpxInputTimeComponent {
|
|
1279
|
+
constructor() {
|
|
1280
|
+
this.spxAutofocus = false;
|
|
1281
|
+
this.spxSuggestions = [];
|
|
1282
|
+
this.spxReadonly = false;
|
|
1283
|
+
this.spxCapitalize = false;
|
|
1284
|
+
this.spxFocused = true;
|
|
1285
|
+
this.spxBlurFromChild = new EventEmitter();
|
|
1286
|
+
this.spxChange = new EventEmitter();
|
|
1287
|
+
this.spxFocus = new EventEmitter();
|
|
1288
|
+
this.spxWasInternalUpdate = false;
|
|
1289
|
+
this.modalController = inject(ModalController);
|
|
1290
|
+
this.severitySuccess = SpxSeverityEnum.success;
|
|
1291
|
+
this.hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23
|
|
1292
|
+
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
1293
|
+
this.selectedHour = null;
|
|
1294
|
+
this.selectedMinute = null;
|
|
1295
|
+
}
|
|
1296
|
+
get formattedHour() {
|
|
1297
|
+
return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
|
|
1298
|
+
}
|
|
1299
|
+
get formattedMinute() {
|
|
1300
|
+
return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
|
|
1301
|
+
}
|
|
1302
|
+
get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }
|
|
1303
|
+
get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }
|
|
1304
|
+
spxSetFocus() {
|
|
1305
|
+
this.inputRef?.nativeElement?.focus();
|
|
1306
|
+
}
|
|
1307
|
+
componentDidLoad() {
|
|
1308
|
+
if (this.spxAutofocus) {
|
|
1309
|
+
this.spxFocus.emit();
|
|
1310
|
+
this.spxSetFocus();
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
handleBlur() {
|
|
1314
|
+
this.spxBlurFromChild.emit();
|
|
1315
|
+
}
|
|
1316
|
+
handleFocus() {
|
|
1317
|
+
this.spxFocus.emit();
|
|
1318
|
+
}
|
|
1319
|
+
handleDescriptionInput(event) {
|
|
1320
|
+
this.value = {
|
|
1321
|
+
description: event.target ? event.target.value : null,
|
|
1322
|
+
value: event.target ? event.target.value : null,
|
|
1323
|
+
};
|
|
1324
|
+
this.spxChange.emit(this.value);
|
|
1325
|
+
}
|
|
1326
|
+
handleSuggestionClick(value) {
|
|
1327
|
+
if (!this.spxReadonly) {
|
|
1328
|
+
this.value = value;
|
|
1329
|
+
this.spxChange.emit(this.value);
|
|
1330
|
+
this.spxFocused = false;
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
handleKeyUp() {
|
|
1334
|
+
this.spxFocused = true;
|
|
1335
|
+
}
|
|
1336
|
+
async openDialog(view) {
|
|
1337
|
+
const modal = await this.modalController.create({
|
|
1338
|
+
component: SpxInputTimeModalComponent,
|
|
1339
|
+
componentProps: {
|
|
1340
|
+
value: this.value?.value ?
|
|
1341
|
+
(view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,
|
|
1342
|
+
view,
|
|
1343
|
+
},
|
|
1344
|
+
});
|
|
1345
|
+
modal.onDidDismiss().then((data) => {
|
|
1346
|
+
// this.appStore.dispatch(infArticleActions.reset({}));
|
|
1347
|
+
if (view === 'hours') {
|
|
1348
|
+
console.log('hours');
|
|
1349
|
+
console.log(data);
|
|
1350
|
+
this.selectedHour = data.data;
|
|
1351
|
+
this.openDialog('minutes');
|
|
1352
|
+
this.updateValue();
|
|
1353
|
+
}
|
|
1354
|
+
else if (view === 'minutes') {
|
|
1355
|
+
console.log('minutes');
|
|
1356
|
+
console.log(data);
|
|
1357
|
+
this.selectedMinute = data.data;
|
|
1358
|
+
this.updateValue();
|
|
1359
|
+
}
|
|
1360
|
+
});
|
|
1361
|
+
await modal.present();
|
|
1362
|
+
}
|
|
1363
|
+
updateValue() {
|
|
1364
|
+
if (this.selectedHour !== null && this.selectedMinute !== null) {
|
|
1365
|
+
const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
|
|
1366
|
+
const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
|
|
1367
|
+
const newValue = `${formattedHour}:${formattedMinute}`;
|
|
1368
|
+
this.value = {
|
|
1369
|
+
description: newValue,
|
|
1370
|
+
value: newValue,
|
|
1371
|
+
};
|
|
1372
|
+
this.spxChange.emit(this.value);
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1376
|
+
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: [
|
|
1377
|
+
ModalController,
|
|
1378
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="relative text-black">
|
|
1379
|
+
<div class="flex items-center justify-around gap-3">
|
|
1380
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
|
|
1381
|
+
<div class="text-gray text-xl">:</div>
|
|
1382
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
|
|
1383
|
+
</div>
|
|
1384
|
+
</div>`, isInline: true, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }); }
|
|
1385
|
+
}
|
|
1386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
|
|
1387
|
+
type: Component,
|
|
1388
|
+
args: [{ selector: 'spx-input-time', standalone: true, imports: [
|
|
1389
|
+
NgIf,
|
|
1390
|
+
NgFor,
|
|
1391
|
+
SpxButtonComponent,
|
|
1392
|
+
SpxDropdownComponent,
|
|
1393
|
+
], providers: [
|
|
1394
|
+
ModalController,
|
|
1395
|
+
], template: `<div class="relative text-black">
|
|
1396
|
+
<div class="flex items-center justify-around gap-3">
|
|
1397
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
|
|
1398
|
+
<div class="text-gray text-xl">:</div>
|
|
1399
|
+
<div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
|
|
1400
|
+
</div>
|
|
1401
|
+
</div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
|
|
1402
|
+
}], propDecorators: { spxName: [{
|
|
1403
|
+
type: Input
|
|
1404
|
+
}], spxAutofocus: [{
|
|
1405
|
+
type: Input
|
|
1406
|
+
}], spxInputMode: [{
|
|
1407
|
+
type: Input
|
|
1408
|
+
}], spxPattern: [{
|
|
1409
|
+
type: Input
|
|
1410
|
+
}], spxSuggestions: [{
|
|
1411
|
+
type: Input
|
|
1412
|
+
}], spxReadonly: [{
|
|
1413
|
+
type: Input
|
|
1414
|
+
}], spxValidators: [{
|
|
1415
|
+
type: Input
|
|
1416
|
+
}], spxCapitalize: [{
|
|
1417
|
+
type: Input
|
|
1418
|
+
}], spxFocused: [{
|
|
1419
|
+
type: Input
|
|
1420
|
+
}], spxType: [{
|
|
1421
|
+
type: Input
|
|
1422
|
+
}], value: [{
|
|
1423
|
+
type: Input
|
|
1424
|
+
}], spxBlurFromChild: [{
|
|
1425
|
+
type: Output
|
|
1426
|
+
}], spxChange: [{
|
|
1427
|
+
type: Output
|
|
1428
|
+
}], spxFocus: [{
|
|
1429
|
+
type: Output
|
|
1430
|
+
}], spxWasInternalUpdate: [{
|
|
1431
|
+
type: Input
|
|
1432
|
+
}], inputRef: [{
|
|
1433
|
+
type: ViewChild,
|
|
1434
|
+
args: ['input', { static: true }]
|
|
1435
|
+
}] } });
|
|
1436
|
+
|
|
1171
1437
|
class SpxInputComponent {
|
|
1172
1438
|
constructor() {
|
|
1173
1439
|
this.spxLabel = 'label';
|
|
@@ -1252,6 +1518,9 @@ class SpxInputComponent {
|
|
|
1252
1518
|
case SpxInputTypeEnum.radio:
|
|
1253
1519
|
this.radioInput?.spxFocusIn();
|
|
1254
1520
|
break;
|
|
1521
|
+
case SpxInputTypeEnum.time:
|
|
1522
|
+
this.timeInput?.spxSetFocus();
|
|
1523
|
+
break;
|
|
1255
1524
|
}
|
|
1256
1525
|
}
|
|
1257
1526
|
writeValue(value) {
|
|
@@ -1279,7 +1548,7 @@ class SpxInputComponent {
|
|
|
1279
1548
|
useExisting: SpxInputComponent,
|
|
1280
1549
|
multi: true
|
|
1281
1550
|
}
|
|
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
|
|
1551
|
+
], 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
1552
|
[spxFocused]="this.spxFocused"
|
|
1284
1553
|
[spxLabel]="this.spxLabel"
|
|
1285
1554
|
[spxReadonly]="this.spxReadonly"
|
|
@@ -1368,11 +1637,22 @@ class SpxInputComponent {
|
|
|
1368
1637
|
[spxValidators]="this.spxValidators"
|
|
1369
1638
|
[value]="this.value"
|
|
1370
1639
|
></spx-input-radio>
|
|
1640
|
+
<spx-input-time
|
|
1641
|
+
#timeInput
|
|
1642
|
+
*ngIf="this.spxType === 'time'"
|
|
1643
|
+
(spxChange)="this.handleChange($event)"
|
|
1644
|
+
(spxFocus)="this.handleFocus()"
|
|
1645
|
+
[spxFocused]="this.spxFocused"
|
|
1646
|
+
[spxName]="this.spxName"
|
|
1647
|
+
[spxReadonly]="this.spxReadonly"
|
|
1648
|
+
[spxValidators]="this.spxValidators"
|
|
1649
|
+
[value]="this.value"
|
|
1650
|
+
></spx-input-time>
|
|
1371
1651
|
</div>
|
|
1372
1652
|
<div validation-messages>
|
|
1373
1653
|
<ng-content></ng-content>
|
|
1374
1654
|
</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"] }] }); }
|
|
1655
|
+
</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
1656
|
}
|
|
1377
1657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputComponent, decorators: [{
|
|
1378
1658
|
type: Component,
|
|
@@ -1390,6 +1670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1390
1670
|
SpxInputNumberComponent,
|
|
1391
1671
|
SpxInputRadioComponent,
|
|
1392
1672
|
SpxInputTextComponent,
|
|
1673
|
+
SpxInputTimeComponent,
|
|
1393
1674
|
],
|
|
1394
1675
|
providers: [
|
|
1395
1676
|
{
|
|
@@ -1487,6 +1768,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1487
1768
|
[spxValidators]="this.spxValidators"
|
|
1488
1769
|
[value]="this.value"
|
|
1489
1770
|
></spx-input-radio>
|
|
1771
|
+
<spx-input-time
|
|
1772
|
+
#timeInput
|
|
1773
|
+
*ngIf="this.spxType === 'time'"
|
|
1774
|
+
(spxChange)="this.handleChange($event)"
|
|
1775
|
+
(spxFocus)="this.handleFocus()"
|
|
1776
|
+
[spxFocused]="this.spxFocused"
|
|
1777
|
+
[spxName]="this.spxName"
|
|
1778
|
+
[spxReadonly]="this.spxReadonly"
|
|
1779
|
+
[spxValidators]="this.spxValidators"
|
|
1780
|
+
[value]="this.value"
|
|
1781
|
+
></spx-input-time>
|
|
1490
1782
|
</div>
|
|
1491
1783
|
<div validation-messages>
|
|
1492
1784
|
<ng-content></ng-content>
|
|
@@ -1564,6 +1856,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
1564
1856
|
}], textInput: [{
|
|
1565
1857
|
type: ViewChild,
|
|
1566
1858
|
args: [SpxInputTextComponent]
|
|
1859
|
+
}], timeInput: [{
|
|
1860
|
+
type: ViewChild,
|
|
1861
|
+
args: [SpxInputTimeComponent]
|
|
1567
1862
|
}], radioInput: [{
|
|
1568
1863
|
type: ViewChild,
|
|
1569
1864
|
args: [SpxInputRadioComponent]
|