@softpak/components 19.0.0-beta.1 → 19.0.0-beta.10
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/placeholder.mjs +2 -0
- package/esm2022/public_api.mjs +2 -0
- package/esm2022/softpak-components.mjs +5 -0
- package/esm2022/spx-alert/public-api.mjs +3 -0
- package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
- package/esm2022/spx-alert/spx-alert.component.mjs +203 -0
- package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
- package/esm2022/spx-app-configuration/public-api.mjs +8 -0
- package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
- package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
- package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
- package/esm2022/spx-app-expiry/public-api.mjs +6 -0
- package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +5 -0
- package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +107 -0
- package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +2 -0
- package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +5 -0
- package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +5 -0
- package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +5 -0
- package/esm2022/spx-app-update/public-api.mjs +2 -0
- package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +5 -0
- package/esm2022/spx-app-update/spx-app-update.component.mjs +323 -0
- package/esm2022/spx-button/public-api.mjs +2 -0
- package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
- package/esm2022/spx-button/spx-button.component.mjs +142 -0
- package/esm2022/spx-capitalize/public-api.mjs +2 -0
- package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
- package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
- package/esm2022/spx-card/public-api.mjs +5 -0
- package/esm2022/spx-card/softpak-components-spx-card.mjs +5 -0
- package/esm2022/spx-card/spx-card-grid.component.mjs +46 -0
- package/esm2022/spx-card/spx-card-item.component.mjs +117 -0
- package/esm2022/spx-card/spx-card-line.component.mjs +124 -0
- package/esm2022/spx-card/spx-card.component.mjs +96 -0
- package/esm2022/spx-change-details/public-api.mjs +2 -0
- package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
- package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
- package/esm2022/spx-change-details/spx-change-details.component.mjs +197 -0
- package/esm2022/spx-channel-selection/public-api.mjs +3 -0
- package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
- package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +132 -0
- package/esm2022/spx-check-digit/public-api.mjs +2 -0
- package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +91 -0
- package/esm2022/spx-form-section/public-api.mjs +2 -0
- package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
- package/esm2022/spx-form-section/spx-form-section.component.mjs +42 -0
- package/esm2022/spx-form-view/public-api.mjs +7 -0
- package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
- package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +117 -0
- package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +6 -0
- package/esm2022/spx-form-view/spx-form-button.interface.mjs +2 -0
- package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
- package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
- package/esm2022/spx-form-view/spx-form-view.component.mjs +297 -0
- package/esm2022/spx-form-view/spx-form.interface.mjs +2 -0
- package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
- package/esm2022/spx-helpers/public-api.mjs +4 -0
- package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
- package/esm2022/spx-helpers/spx-severity.enum.mjs +10 -0
- package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
- package/esm2022/spx-inputs/public-api.mjs +6 -0
- package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
- package/esm2022/spx-inputs/spx-dropdown.component.mjs +93 -0
- package/esm2022/spx-inputs/spx-input-box.component.mjs +273 -0
- package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +194 -0
- package/esm2022/spx-inputs/spx-input-float.component.mjs +157 -0
- package/esm2022/spx-inputs/spx-input-number.component.mjs +87 -0
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +129 -0
- package/esm2022/spx-inputs/spx-input-text.component.mjs +160 -0
- package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +131 -0
- package/esm2022/spx-inputs/spx-input-time.component.mjs +156 -0
- package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
- package/esm2022/spx-inputs/spx-input.component.mjs +461 -0
- package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
- package/esm2022/spx-navigation/public-api.mjs +5 -0
- package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +71 -0
- package/esm2022/spx-navigation/spx-home-tiles.component.mjs +24 -0
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
- package/esm2022/spx-navigation/spx-navigation.component.mjs +47 -0
- package/esm2022/spx-number-check/public-api.mjs +2 -0
- package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
- package/esm2022/spx-number-check/spx-number-check.component.mjs +265 -0
- package/esm2022/spx-pagination/public-api.mjs +2 -0
- package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +5 -0
- package/esm2022/spx-pagination/spx-pagination.component.mjs +44 -0
- package/esm2022/spx-patch/patch-check.function.mjs +9 -0
- package/esm2022/spx-patch/public-api.mjs +4 -0
- package/esm2022/spx-patch/release-check.function.mjs +14 -0
- package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
- package/esm2022/spx-patch/spx-patch.component.mjs +54 -0
- package/esm2022/spx-progress-bar/public-api.mjs +2 -0
- package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
- package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
- package/esm2022/spx-spinner/public-api.mjs +2 -0
- package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
- package/esm2022/spx-spinner/spx-spinner.component.mjs +160 -0
- package/esm2022/spx-stock-info/public-api.mjs +3 -0
- package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +5 -0
- package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +2 -0
- package/esm2022/spx-stock-info/spx-stock-info.component.mjs +324 -0
- package/esm2022/spx-storage/public-api.mjs +3 -0
- package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
- package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
- package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
- package/esm2022/spx-suggestion/public-api.mjs +2 -0
- package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
- package/esm2022/spx-suggestion/spx-suggestion.component.mjs +61 -0
- package/esm2022/spx-toaster/public-api.mjs +4 -0
- package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
- package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
- package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
- package/esm2022/spx-toaster/src/spx-toaster.component.mjs +168 -0
- package/esm2022/spx-update/public-api.mjs +3 -0
- package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
- package/esm2022/spx-update/src/spx-update-info.component.mjs +86 -0
- package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
- package/esm2022/spx-validation/max.validator.mjs +17 -0
- package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
- package/esm2022/spx-validation/min.validator.mjs +17 -0
- package/esm2022/spx-validation/minlength.validator.mjs +20 -0
- package/esm2022/spx-validation/pattern.validator.mjs +12 -0
- package/esm2022/spx-validation/public-api.mjs +9 -0
- package/esm2022/spx-validation/required.validator.mjs +12 -0
- package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
- package/esm2022/spx-validation/spx-validate-control.component.mjs +65 -0
- package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
- package/fesm2022/softpak-components-spx-alert.mjs +56 -45
- 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 +59 -41
- package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-update.mjs +74 -68
- package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-button.mjs +5 -4
- 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 +163 -127
- package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +5 -7
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-channel-selection.mjs +11 -12
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +6 -9
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +20 -15
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +147 -139
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-helpers.mjs +1 -0
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +817 -862
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +53 -52
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +49 -42
- 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 +29 -22
- 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 +144 -143
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-stock-info.mjs +8 -11
- 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 +41 -49
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-toaster.mjs +94 -98
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +11 -11
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation.mjs +5 -8
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
- package/package.json +76 -23
- package/spx-app-update/spx-app-update.component.d.ts +3 -3
- package/spx-helpers/spx-severity.enum.d.ts +2 -1
- package/spx-inputs/spx-input-date/spx-input-date.component.d.ts +43 -0
- package/spx-inputs/spx-input-float.component.d.ts +5 -4
- package/spx-inputs/spx-input-text.component.d.ts +2 -1
- package/spx-inputs/spx-input-time.component.d.ts +1 -1
- package/spx-inputs/spx-input.component.d.ts +2 -1
- package/spx-suggestion/spx-suggestion.component.d.ts +5 -5
- package/tailwind.css +1 -1
- package/spx-inputs/spx-input-date.component.d.ts +0 -50
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { valuePairToValue } from '@softpak/components/spx-helpers';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SpxInputRadioComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.cachedSuggestions = [];
|
|
9
|
+
this.focusPosition = 0;
|
|
10
|
+
this.spxFocused = false;
|
|
11
|
+
this.spxShowLabel = true;
|
|
12
|
+
this.spxReadonly = false;
|
|
13
|
+
this.spxSuggestions = [];
|
|
14
|
+
this.spxChange = new EventEmitter();
|
|
15
|
+
this.spxFocus = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
spxFocusIn() {
|
|
18
|
+
this.listenToKeys();
|
|
19
|
+
this.determineFocusPosition();
|
|
20
|
+
}
|
|
21
|
+
spxFocusOut() {
|
|
22
|
+
this.subscriptionKeyDown?.unsubscribe();
|
|
23
|
+
this.subscriptionKeyUp?.unsubscribe();
|
|
24
|
+
}
|
|
25
|
+
ngOnChanges(changes) {
|
|
26
|
+
if ((changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))) {
|
|
27
|
+
this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
handleSuggestionClick(event, valuePair) {
|
|
31
|
+
if (this.spxReadonly) {
|
|
32
|
+
console.log('spxInputRadio: clicked, but readonly');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log('spxInputRadio: clicked');
|
|
36
|
+
this.select(valuePair);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
determineFocusPosition() {
|
|
40
|
+
if (this.value && this.spxSuggestions?.length) {
|
|
41
|
+
const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));
|
|
42
|
+
this.focusPosition = index >= 0 ? index : 0;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.focusPosition = 0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
select(valuePair) {
|
|
49
|
+
this.focusPosition = 0;
|
|
50
|
+
this.value = valuePair;
|
|
51
|
+
this.spxChange.emit(valuePair);
|
|
52
|
+
}
|
|
53
|
+
listenToKeys() {
|
|
54
|
+
this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {
|
|
55
|
+
if ((event.key === 'ArrowUp' || event.key === 'ArrowLeft') && this.focusPosition > 0) {
|
|
56
|
+
this.focusPosition = this.focusPosition - 1;
|
|
57
|
+
this.select(this.spxSuggestions.at(this.focusPosition));
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
}
|
|
60
|
+
if ((event.key === 'ArrowDown' || event.key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {
|
|
61
|
+
this.focusPosition = this.focusPosition + 1;
|
|
62
|
+
this.select(this.spxSuggestions.at(this.focusPosition));
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {
|
|
67
|
+
if (event.key === 'ArrowDown' ||
|
|
68
|
+
event.key === 'ArrowLeft' ||
|
|
69
|
+
event.key === 'ArrowRight' ||
|
|
70
|
+
event.key === 'ArrowUp') {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputRadioComponent, isStandalone: true, selector: "spx-input-radio", inputs: { spxName: "spxName", spxValidators: "spxValidators", spxFocused: "spxFocused", spxShowLabel: "spxShowLabel", spxReadonly: "spxReadonly", spxSuggestions: "spxSuggestions", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, usesOnChanges: true, ngImport: i0, template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
|
|
77
|
+
@for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
|
|
78
|
+
<spx-suggestion
|
|
79
|
+
[spxDisabled]="this.spxReadonly"
|
|
80
|
+
[spxFocused]="this.spxFocused && i === this.focusPosition"
|
|
81
|
+
[spxSelected]="this.value?.value === valuePair?.value"
|
|
82
|
+
[spxTabbable]="this.focusPosition === i"
|
|
83
|
+
(click)="this.handleSuggestionClick($event, valuePair)">
|
|
84
|
+
{{valuePair?.description}}
|
|
85
|
+
</spx-suggestion>
|
|
86
|
+
}
|
|
87
|
+
</div>`, isInline: true, dependencies: [{ kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxFocused", "spxSelected", "spxTabbable"] }] }); }
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{
|
|
92
|
+
selector: 'spx-input-radio',
|
|
93
|
+
standalone: true,
|
|
94
|
+
imports: [
|
|
95
|
+
SpxSuggestionComponent
|
|
96
|
+
],
|
|
97
|
+
template: `<div class="grid grid-cols-2 gap-2" [class.mt-3]="this.spxShowLabel">
|
|
98
|
+
@for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {
|
|
99
|
+
<spx-suggestion
|
|
100
|
+
[spxDisabled]="this.spxReadonly"
|
|
101
|
+
[spxFocused]="this.spxFocused && i === this.focusPosition"
|
|
102
|
+
[spxSelected]="this.value?.value === valuePair?.value"
|
|
103
|
+
[spxTabbable]="this.focusPosition === i"
|
|
104
|
+
(click)="this.handleSuggestionClick($event, valuePair)">
|
|
105
|
+
{{valuePair?.description}}
|
|
106
|
+
</spx-suggestion>
|
|
107
|
+
}
|
|
108
|
+
</div>`,
|
|
109
|
+
}]
|
|
110
|
+
}], propDecorators: { spxName: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], spxValidators: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], spxFocused: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], spxShowLabel: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], spxReadonly: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], spxSuggestions: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], value: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], spxChange: [{
|
|
125
|
+
type: Output
|
|
126
|
+
}], spxFocus: [{
|
|
127
|
+
type: Output
|
|
128
|
+
}] } });
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1yYWRpby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBcUJuRSxNQUFNLE9BQU8sc0JBQXNCO0lBbkJuQztRQW9CRSxzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBSW5CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBd0IsRUFBRSxDQUFDO1FBRXhDLGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDbkYsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBbUVuRTtJQWhFQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsQ0FBQyxPQUFP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QUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRSxJQUFLLEtBQXVCLENBQUMsR0FBRyxLQUFLLFdBQVc7Z0JBQzdDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFdBQVc7Z0JBQzNDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFlBQVk7Z0JBQzVDLEtBQXVCLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E5RVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaVdBYnZCOzs7Ozs7Ozs7OzthQVdDLDREQWJULHNCQUFzQjs7NEZBZWIsc0JBQXNCO2tCQW5CbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDekI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7OzthQVdDO2lCQUNaOzhCQUtVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtc3VnZ2VzdGlvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtcmFkaW8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudFxuXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtMlwiIFtjbGFzcy5tdC0zXT1cInRoaXMuc3B4U2hvd0xhYmVsXCI+XG4gICAgICAgIEBmb3IgKHZhbHVlUGFpciBvZiB0aGlzLmNhY2hlZFN1Z2dlc3Rpb25zOyB0cmFjayB2YWx1ZVBhaXI7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgPHNweC1zdWdnZXN0aW9uXG4gICAgICAgICAgICBbc3B4RGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seVwiXG4gICAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWQgJiYgaSA9PT0gdGhpcy5mb2N1c1Bvc2l0aW9uXCJcbiAgICAgICAgICAgIFtzcHhTZWxlY3RlZF09XCJ0aGlzLnZhbHVlPy52YWx1ZSA9PT0gdmFsdWVQYWlyPy52YWx1ZVwiXG4gICAgICAgICAgICBbc3B4VGFiYmFibGVdPVwidGhpcy5mb2N1c1Bvc2l0aW9uID09PSBpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljaygkZXZlbnQsIHZhbHVlUGFpcilcIj5cbiAgICAgICAgICAgIHt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgPC9zcHgtc3VnZ2VzdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRSYWRpb0NvbXBvbmVudCB7XG4gIGNhY2hlZFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8YW55PltdID0gW107XG4gIHByb3RlY3RlZCBmb2N1c1Bvc2l0aW9uID0gMDtcbiAgLy8gQEVsZW1lbnQoKSBlbCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBzcHhOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzITogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4U2hvd0xhYmVsID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IFNweFZhbHVlUGFpcjxhbnk+W10gPSBbXTtcbiAgQElucHV0KCkgdmFsdWU/OiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbktleVVwPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbktleURvd24/OiBTdWJzY3JpcHRpb247XG4gIHNweEZvY3VzSW4oKSB7XG4gICAgdGhpcy5saXN0ZW5Ub0tleXMoKTtcbiAgICB0aGlzLmRldGVybWluZUZvY3VzUG9zaXRpb24oKTtcbiAgfVxuXG4gIHNweEZvY3VzT3V0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uS2V5RG93bj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleVVwPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChjaGFuZ2VzWydzcHhTdWdnZXN0aW9ucyddICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3NweFN1Z2dlc3Rpb25zJ10/LnByZXZpb3VzVmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydzcHhTdWdnZXN0aW9ucyddPy5jdXJyZW50VmFsdWUpKVxuICAgICkge1xuICAgICAgdGhpcy5jYWNoZWRTdWdnZXN0aW9ucyA9IGNoYW5nZXNbJ3NweFN1Z2dlc3Rpb25zJ10/LmN1cnJlbnRWYWx1ZSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2soZXZlbnQ6IEV2ZW50LCB2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxhbnk+KSB7XG4gICAgaWYgKHRoaXMuc3B4UmVhZG9ubHkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdzcHhJbnB1dFJhZGlvOiBjbGlja2VkLCBidXQgcmVhZG9ubHknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ3NweElucHV0UmFkaW86IGNsaWNrZWQnKTtcbiAgICAgIHRoaXMuc2VsZWN0KHZhbHVlUGFpcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVGb2N1c1Bvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuc3B4U3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNweFN1Z2dlc3Rpb25zLmZpbmRJbmRleCh2YWx1ZVBhaXIgPT4gdmFsdWVQYWlyVG9WYWx1ZSh2YWx1ZVBhaXIpID09PSB2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMudmFsdWUpKTtcbiAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IGluZGV4ID49IDAgPyBpbmRleCA6IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3QodmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4pOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSAwO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVBhaXI7XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh2YWx1ZVBhaXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0tleXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25LZXlVcCA9IGZyb21FdmVudCh3aW5kb3csICdrZXl1cCcpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmICgoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93VXAnIHx8IChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09ICdBcnJvd0xlZnQnKSAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPiAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IHRoaXMuZm9jdXNQb3NpdGlvbiAtIDE7XG4gICAgICAgIHRoaXMuc2VsZWN0KHRoaXMuc3B4U3VnZ2VzdGlvbnMuYXQodGhpcy5mb2N1c1Bvc2l0aW9uKSEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgaWYgKCgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyB8fCAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dSaWdodCcpICYmIHRoaXMuZm9jdXNQb3NpdGlvbiA8IHRoaXMuc3B4U3VnZ2VzdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSB0aGlzLmZvY3VzUG9zaXRpb24gKyAxO1xuICAgICAgICB0aGlzLnNlbGVjdCh0aGlzLnNweFN1Z2dlc3Rpb25zLmF0KHRoaXMuZm9jdXNQb3NpdGlvbikhKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleURvd24gPSBmcm9tRXZlbnQod2luZG93LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmICgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyB8fFxuICAgICAgICAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dMZWZ0JyB8fFxuICAgICAgICAoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dSaWdodCcgfHxcbiAgICAgICAgKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { SpxDropdownComponent } from './spx-dropdown.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SpxInputTextComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.spxAutofocus = false;
|
|
7
|
+
this.spxSuggestions = [];
|
|
8
|
+
this.spxReadonly = false;
|
|
9
|
+
this.spxCapitalize = false;
|
|
10
|
+
this.spxFocused = true;
|
|
11
|
+
this.spxType = 'text';
|
|
12
|
+
this.spxBlurFromChild = new EventEmitter();
|
|
13
|
+
this.spxChange = new EventEmitter();
|
|
14
|
+
this.spxFocus = new EventEmitter();
|
|
15
|
+
this.spxWasInternalUpdate = false;
|
|
16
|
+
}
|
|
17
|
+
spxSetFocus() {
|
|
18
|
+
this.inputRef?.nativeElement?.focus();
|
|
19
|
+
}
|
|
20
|
+
componentDidLoad() {
|
|
21
|
+
if (this.spxAutofocus) {
|
|
22
|
+
this.spxFocus.emit();
|
|
23
|
+
this.spxSetFocus();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
handleBlur() {
|
|
27
|
+
this.spxBlurFromChild.emit();
|
|
28
|
+
}
|
|
29
|
+
handleFocus() {
|
|
30
|
+
this.spxFocus.emit();
|
|
31
|
+
}
|
|
32
|
+
handleDescriptionInput(event) {
|
|
33
|
+
this.value = {
|
|
34
|
+
description: event.target ? event.target.value : null,
|
|
35
|
+
value: event.target ? event.target.value : null,
|
|
36
|
+
};
|
|
37
|
+
this.spxChange.emit(this.value);
|
|
38
|
+
}
|
|
39
|
+
handleSuggestionClick(value) {
|
|
40
|
+
if (!this.spxReadonly) {
|
|
41
|
+
this.value = value;
|
|
42
|
+
this.spxChange.emit(this.value);
|
|
43
|
+
this.spxFocused = false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
handleKeyUp() {
|
|
47
|
+
this.spxFocused = true;
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxAutocomplete: "spxAutocomplete", 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" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="relative text-black">
|
|
51
|
+
<input
|
|
52
|
+
#input
|
|
53
|
+
class="font-bold text-lg w-full outline-none"
|
|
54
|
+
autocomplete="off"
|
|
55
|
+
spellcheck="false"
|
|
56
|
+
[class.bg-white]="!this.spxReadonly"
|
|
57
|
+
[class.bg-gray-300]="this.spxReadonly"
|
|
58
|
+
[class.cursor-not-allowed]="this.spxReadonly"
|
|
59
|
+
[class.uppercase]="this.spxCapitalize"
|
|
60
|
+
[attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
|
|
61
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
62
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
63
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
64
|
+
[attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
|
|
65
|
+
[attr.name]="this.spxName"
|
|
66
|
+
[attr.type]="this.spxType"
|
|
67
|
+
[value]="this.value?.description ? this.value?.description : this.value?.value"
|
|
68
|
+
(blur)="this.handleBlur()"
|
|
69
|
+
(keyUp)="this.handleKeyUp()"
|
|
70
|
+
(focus)="this.handleFocus()"
|
|
71
|
+
(input)="this.handleDescriptionInput($event)"
|
|
72
|
+
/>
|
|
73
|
+
@if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
|
|
74
|
+
<span>{{this.value?.value}}</span>
|
|
75
|
+
}
|
|
76
|
+
@if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
|
|
77
|
+
<spx-dropdown
|
|
78
|
+
[spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
|
|
79
|
+
</spx-dropdown>
|
|
80
|
+
}
|
|
81
|
+
</div>`, isInline: true, dependencies: [{ kind: "component", type: SpxDropdownComponent, selector: "spx-dropdown", inputs: ["spxSuggestions"], outputs: ["spxSelect"] }] }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTextComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{
|
|
86
|
+
selector: 'spx-input-text',
|
|
87
|
+
standalone: true,
|
|
88
|
+
imports: [
|
|
89
|
+
SpxDropdownComponent
|
|
90
|
+
],
|
|
91
|
+
template: `<div class="relative text-black">
|
|
92
|
+
<input
|
|
93
|
+
#input
|
|
94
|
+
class="font-bold text-lg w-full outline-none"
|
|
95
|
+
autocomplete="off"
|
|
96
|
+
spellcheck="false"
|
|
97
|
+
[class.bg-white]="!this.spxReadonly"
|
|
98
|
+
[class.bg-gray-300]="this.spxReadonly"
|
|
99
|
+
[class.cursor-not-allowed]="this.spxReadonly"
|
|
100
|
+
[class.uppercase]="this.spxCapitalize"
|
|
101
|
+
[attr.autocomplete]="this.spxAutocomplete ? this.spxAutocomplete : undefined"
|
|
102
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
103
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
104
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
105
|
+
[attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
|
|
106
|
+
[attr.name]="this.spxName"
|
|
107
|
+
[attr.type]="this.spxType"
|
|
108
|
+
[value]="this.value?.description ? this.value?.description : this.value?.value"
|
|
109
|
+
(blur)="this.handleBlur()"
|
|
110
|
+
(keyUp)="this.handleKeyUp()"
|
|
111
|
+
(focus)="this.handleFocus()"
|
|
112
|
+
(input)="this.handleDescriptionInput($event)"
|
|
113
|
+
/>
|
|
114
|
+
@if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {
|
|
115
|
+
<span>{{this.value?.value}}</span>
|
|
116
|
+
}
|
|
117
|
+
@if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {
|
|
118
|
+
<spx-dropdown
|
|
119
|
+
[spxSuggestions]="this.spxSuggestions" (spxSelect)="this.handleSuggestionClick($event)">
|
|
120
|
+
</spx-dropdown>
|
|
121
|
+
}
|
|
122
|
+
</div>`,
|
|
123
|
+
}]
|
|
124
|
+
}], propDecorators: { spxName: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], spxAutofocus: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], spxAutocomplete: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], spxInputMode: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], spxPattern: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], spxSuggestions: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], spxReadonly: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], spxValidators: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], spxCapitalize: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], spxFocused: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], spxType: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], value: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], spxBlurFromChild: [{
|
|
149
|
+
type: Output
|
|
150
|
+
}], spxChange: [{
|
|
151
|
+
type: Output
|
|
152
|
+
}], spxFocus: [{
|
|
153
|
+
type: Output
|
|
154
|
+
}], spxWasInternalUpdate: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], inputRef: [{
|
|
157
|
+
type: ViewChild,
|
|
158
|
+
args: ['input', { static: true }]
|
|
159
|
+
}] } });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQXlDaEUsTUFBTSxPQUFPLHFCQUFxQjtJQXZDbEM7UUEyQ1csaUJBQVksR0FBRyxLQUFLLENBQUM7UUFJckIsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQy9ELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsWUFBTyxHQUF1RSxNQUFNLENBQUM7UUFFcEYscUJBQWdCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEUsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0tBMEN2QztJQXRDQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNyRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDaEQsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDOytHQTNEVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixncUJBakN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQStCSCw0REFqQ0wsb0JBQW9COzs0RkFtQ1gscUJBQXFCO2tCQXZDakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjtxQkFDdkI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBK0JIO2lCQUNSOzhCQUlVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNnQyxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFNweERyb3Bkb3duQ29tcG9uZW50XG5dLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB0ZXh0LWJsYWNrXCI+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRcbiAgICAgIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgdy1mdWxsIG91dGxpbmUtbm9uZVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgIFtjbGFzcy5iZy13aGl0ZV09XCIhdGhpcy5zcHhSZWFkb25seVwiXG4gICAgICBbY2xhc3MuYmctZ3JheS0zMDBdPVwidGhpcy5zcHhSZWFkb25seVwiXG4gICAgICBbY2xhc3MuY3Vyc29yLW5vdC1hbGxvd2VkXT1cInRoaXMuc3B4UmVhZG9ubHlcIlxuICAgICAgW2NsYXNzLnVwcGVyY2FzZV09XCJ0aGlzLnNweENhcGl0YWxpemVcIlxuICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cInRoaXMuc3B4QXV0b2NvbXBsZXRlID8gdGhpcy5zcHhBdXRvY29tcGxldGUgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRoaXMuc3B4QXV0b2ZvY3VzID8gdGhpcy5zcHhBdXRvZm9jdXMgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIuaW5wdXRNb2RlXT1cInRoaXMuc3B4SW5wdXRNb2RlID8gdGhpcy5zcHhJbnB1dE1vZGUgOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIucGF0dGVybl09XCJ0aGlzLnNweFBhdHRlcm4gPyB0aGlzLnNweFBhdHRlcm4gOiB1bmRlZmluZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJ0aGlzLnNweE5hbWVcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0aGlzLnNweFR5cGVcIlxuICAgICAgW3ZhbHVlXT1cInRoaXMudmFsdWU/LmRlc2NyaXB0aW9uID8gdGhpcy52YWx1ZT8uZGVzY3JpcHRpb24gOiB0aGlzLnZhbHVlPy52YWx1ZVwiXG4gICAgICAoYmx1cik9XCJ0aGlzLmhhbmRsZUJsdXIoKVwiXG4gICAgICAoa2V5VXApPVwidGhpcy5oYW5kbGVLZXlVcCgpXCJcbiAgICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxuICAgICAgKGlucHV0KT1cInRoaXMuaGFuZGxlRGVzY3JpcHRpb25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgQGlmICh0aGlzLnZhbHVlPy5kZXNjcmlwdGlvbiAmJiB0aGlzLnZhbHVlPy52YWx1ZSAmJiB0aGlzLnZhbHVlPy5kZXNjcmlwdGlvbj8udmFsdWVPZigpICE9PSB0aGlzLnZhbHVlPy52YWx1ZT8udmFsdWVPZigpKSB7XG4gICAgICA8c3Bhbj57e3RoaXMudmFsdWU/LnZhbHVlfX08L3NwYW4+XG4gICAgfVxuICAgIEBpZiAodGhpcy5zcHhGb2N1c2VkICYmICh0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5JyB8fCB0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5bnVtYmVyJykpIHtcbiAgICAgIDxzcHgtZHJvcGRvd25cbiAgICAgICAgW3NweFN1Z2dlc3Rpb25zXT1cInRoaXMuc3B4U3VnZ2VzdGlvbnNcIiAoc3B4U2VsZWN0KT1cInRoaXMuaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgIDwvc3B4LWRyb3Bkb3duPlxuICAgIH1cbiAgPC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRUZXh0Q29tcG9uZW50IHtcbiAgLy8gcHJpdmF0ZSBlbElucHV0PzogSFRNTEVsZW1lbnQ7XG4gIC8vIEBFbGVtZW50KCkgZWwhOiBIVE1MRWxlbWVudDtcbiAgQElucHV0KCkgc3B4TmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4QXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweEF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4SW5wdXRNb2RlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhQYXR0ZXJuPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhTdWdnZXN0aW9uczogU3B4VmFsdWVQYWlyPGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc+W10gPSBbXTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycz86IGFueVtdO1xuICBASW5wdXQoKSBzcHhDYXBpdGFsaXplID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhUeXBlOiAnYXV0b2NvbXBsZXRlJyB8ICdvdmVybGF5JyB8ICdvdmVybGF5bnVtYmVyJyB8ICd0ZXh0JyB8ICdwYXNzd29yZCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XG4gIEBPdXRwdXQoKSBzcHhCbHVyRnJvbUNoaWxkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIFxuICBcbiAgc3B4U2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZExvYWQoKSB7XG4gICAgaWYgKHRoaXMuc3B4QXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVCbHVyKCkge1xuICAgIHRoaXMuc3B4Qmx1ckZyb21DaGlsZC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVGb2N1cygpIHtcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZURlc2NyaXB0aW9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCxcbiAgICAgIHZhbHVlOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNweFJlYWRvbmx5KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5zcHhGb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5VXAoKSB7XG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
3
|
+
import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
4
|
+
import { faXmark } from '@fortawesome/free-solid-svg-icons';
|
|
5
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
6
|
+
import { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ionic/angular/standalone";
|
|
9
|
+
import * as i2 from "@fortawesome/angular-fontawesome";
|
|
10
|
+
export class SpxInputTimeModalComponent {
|
|
11
|
+
constructor(modalController) {
|
|
12
|
+
this.modalController = modalController;
|
|
13
|
+
this.change = new EventEmitter();
|
|
14
|
+
this.faXmark = faXmark;
|
|
15
|
+
this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
|
|
16
|
+
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
17
|
+
this.typeError = SpxSeverityEnum.error;
|
|
18
|
+
this.hourOptions.push(this.hourOptions.shift());
|
|
19
|
+
this.minuteOptions.push(this.minuteOptions.shift());
|
|
20
|
+
}
|
|
21
|
+
closeDialog() {
|
|
22
|
+
this.modalController.dismiss();
|
|
23
|
+
}
|
|
24
|
+
onChange(value) {
|
|
25
|
+
this.change.emit(value);
|
|
26
|
+
console.log(value);
|
|
27
|
+
this.modalController.dismiss(value);
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
|
|
31
|
+
<ion-toolbar>
|
|
32
|
+
<ion-title>Select {{view}}</ion-title>
|
|
33
|
+
<ion-buttons slot="end">
|
|
34
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
35
|
+
<fa-icon [icon]="faXmark"></fa-icon>
|
|
36
|
+
</spx-button>
|
|
37
|
+
</ion-buttons>
|
|
38
|
+
</ion-toolbar>
|
|
39
|
+
</ion-header>
|
|
40
|
+
<ion-content class="ion-padding bg-white">
|
|
41
|
+
<!-- Uren -->
|
|
42
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
43
|
+
@if (view === 'hours') {
|
|
44
|
+
<div class="flex-wrap gap-2">
|
|
45
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
46
|
+
@for (hour of hourOptions; track hour) {
|
|
47
|
+
<div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full 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)">
|
|
48
|
+
{{ hour }}
|
|
49
|
+
</div>
|
|
50
|
+
}
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
}
|
|
54
|
+
<!-- Minuten -->
|
|
55
|
+
@if (view === 'minutes') {
|
|
56
|
+
<div class="grid grid-cols-1 gap-3">
|
|
57
|
+
<div class="grid grid-cols-4 md:grid-cols-5 gap-3">
|
|
58
|
+
@for (minute of minuteOptions; track minute) {
|
|
59
|
+
<div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful 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)">
|
|
60
|
+
{{ minute }}
|
|
61
|
+
</div>
|
|
62
|
+
}
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
}
|
|
66
|
+
</div>
|
|
67
|
+
</ion-content>
|
|
68
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { 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: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{
|
|
73
|
+
selector: 'spx-input-time-modal',
|
|
74
|
+
standalone: true,
|
|
75
|
+
imports: [
|
|
76
|
+
FontAwesomeModule,
|
|
77
|
+
IonButtons,
|
|
78
|
+
IonContent,
|
|
79
|
+
IonHeader,
|
|
80
|
+
IonTitle,
|
|
81
|
+
IonToolbar,
|
|
82
|
+
SpxButtonComponent,
|
|
83
|
+
],
|
|
84
|
+
template: `<ion-header>
|
|
85
|
+
<ion-toolbar>
|
|
86
|
+
<ion-title>Select {{view}}</ion-title>
|
|
87
|
+
<ion-buttons slot="end">
|
|
88
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
89
|
+
<fa-icon [icon]="faXmark"></fa-icon>
|
|
90
|
+
</spx-button>
|
|
91
|
+
</ion-buttons>
|
|
92
|
+
</ion-toolbar>
|
|
93
|
+
</ion-header>
|
|
94
|
+
<ion-content class="ion-padding bg-white">
|
|
95
|
+
<!-- Uren -->
|
|
96
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
97
|
+
@if (view === 'hours') {
|
|
98
|
+
<div class="flex-wrap gap-2">
|
|
99
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
100
|
+
@for (hour of hourOptions; track hour) {
|
|
101
|
+
<div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full 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)">
|
|
102
|
+
{{ hour }}
|
|
103
|
+
</div>
|
|
104
|
+
}
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
}
|
|
108
|
+
<!-- Minuten -->
|
|
109
|
+
@if (view === 'minutes') {
|
|
110
|
+
<div class="grid grid-cols-1 gap-3">
|
|
111
|
+
<div class="grid grid-cols-4 md:grid-cols-5 gap-3">
|
|
112
|
+
@for (minute of minuteOptions; track minute) {
|
|
113
|
+
<div class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful 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)">
|
|
114
|
+
{{ minute }}
|
|
115
|
+
</div>
|
|
116
|
+
}
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
}
|
|
120
|
+
</div>
|
|
121
|
+
</ion-content>
|
|
122
|
+
`,
|
|
123
|
+
}]
|
|
124
|
+
}], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { view: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], value: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], change: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQXNEckgsTUFBTSxPQUFPLDBCQUEwQjtJQVVyQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFQMUMsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXBFLFlBQU8sR0FBRyxPQUFPLENBQUE7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQ2pFLGtCQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQUM1RixjQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUdoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXZCVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix5SkF4QzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVCwyREE5Q0MsaUJBQWlCLDZQQUNqQixVQUFVLDhFQUNWLFVBQVUsd0tBQ1YsU0FBUyxvR0FDVCxRQUFRLGlGQUNSLFVBQVUsbUZBQ1Ysa0JBQWtCOzs0RkEwQ1QsMEJBQTBCO2tCQXBEdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixVQUFVO3dCQUNWLGtCQUFrQjtxQkFDckI7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVDtpQkFDRjtvRkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IGZhWG1hcmsgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvblRpdGxlLCBJb25Ub29sYmFyLCBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRpbWUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkhlYWRlcixcbiAgICBJb25UaXRsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbl0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gICAgPGlvbi10b29sYmFyPlxuICAgICAgPGlvbi10aXRsZT5TZWxlY3Qge3t2aWV3fX08L2lvbi10aXRsZT5cbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgIDxzcHgtYnV0dG9uIFtzcHhTZXZlcml0eV09XCJ0eXBlRXJyb3JcIiAoc3B4Q2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhWG1hcmtcIj48L2ZhLWljb24+XG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPC9pb24tdG9vbGJhcj5cbiAgPC9pb24taGVhZGVyPlxuICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZyBiZy13aGl0ZVwiPlxuICAgIDwhLS0gVXJlbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJnIGdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTNcIj5cbiAgICAgIEBpZiAodmlldyA9PT0gJ2hvdXJzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTMgbWQ6Z3JpZC1jb2xzLTQgZ2FwLTNcIj5cbiAgICAgICAgICAgIEBmb3IgKGhvdXIgb2YgaG91ck9wdGlvbnM7IHRyYWNrIGhvdXIpIHtcbiAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmb250LWJvbGQgY3VzdG9tLXNxdWFyZSByb3VuZGVkIHRleHQtZ3JheS05MDAgdGV4dC1sZyBwLTMgdy1mdWxsIHRydW5jYXRlIG91dGxpbmUtbm9uZSBiZy1za3ktMTAwIGZvY3VzOnJpbmctc2t5LTMwMCBob3ZlcjpiZy1za3ktMzAwIGFjdGl2ZTpiZy1za3ktMzAwXCIgW2NsYXNzLnNlbGVjdGVkXT1cInZhbHVlID09PSBob3VyXCIgKGNsaWNrKT1cIm9uQ2hhbmdlKGhvdXIpXCI+XG4gICAgICAgICAgICAgICAge3sgaG91ciB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8IS0tIE1pbnV0ZW4gLS0+XG4gICAgICBAaWYgKHZpZXcgPT09ICdtaW51dGVzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy00IG1kOmdyaWQtY29scy01IGdhcC0zXCI+XG4gICAgICAgICAgICBAZm9yIChtaW51dGUgb2YgbWludXRlT3B0aW9uczsgdHJhY2sgbWludXRlKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmb250LWJvbGQgY3VzdG9tLXNxdWFyZSByb3VuZGVkIHRleHQtZ3JheS05MDAgdGV4dC1sZyBwLTMgdy1mdWwgdHJ1bmNhdGUgb3V0bGluZS1ub25lIGJnLXNreS0xMDAgZm9jdXM6cmluZy1za3ktMzAwIGhvdmVyOmJnLXNreS0zMDAgYWN0aXZlOmJnLXNreS0zMDBcIiBbY2xhc3Muc2VsZWN0ZWRdPVwidmFsdWUgPT09IG1pbnV0ZVwiIChjbGljayk9XCJvbkNoYW5nZShtaW51dGUpXCI+XG4gICAgICAgICAgICAgICAge3sgbWludXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9pb24tY29udGVudD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRUaW1lTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aWV3ITogJ2hvdXJzJyB8ICdtaW51dGVzJztcbiAgQElucHV0KCkgdmFsdWUhOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgZmFYbWFyayA9IGZhWG1hcmtcbiAgaG91ck9wdGlvbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9LCAoXywgaSkgPT4gaSk7IC8vIDAgdG8gMjNcbiAgbWludXRlT3B0aW9ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PiBpICogNSk7IC8vIE1pbnV0ZXMgaW4gaW5jcmVtZW50ZW4gdmFuIDVcbiAgdHlwZUVycm9yID0gU3B4U2V2ZXJpdHlFbnVtLmVycm9yO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIpe1xuICAgIHRoaXMuaG91ck9wdGlvbnMucHVzaCh0aGlzLmhvdXJPcHRpb25zLnNoaWZ0KCkhKTtcbiAgICB0aGlzLm1pbnV0ZU9wdGlvbnMucHVzaCh0aGlzLm1pbnV0ZU9wdGlvbnMuc2hpZnQoKSEpO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcygpO1xuICB9XG5cbiAgb25DaGFuZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKHZhbHVlKTtcbiAgfVxufVxuIl19
|