@softpak/components 0.0.0-beta.1
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/README.md +24 -0
- 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 +191 -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-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 +129 -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-channel-selection/public-api.mjs +5 -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-channel-selection.component.mjs +40 -0
- package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +48 -0
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +43 -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 +85 -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 +37 -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 +8 -0
- package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
- package/esm2022/spx-inputs/public-api.mjs +5 -0
- package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
- package/esm2022/spx-inputs/spx-input-box.component.mjs +231 -0
- package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
- package/esm2022/spx-inputs/spx-input-float.component.mjs +154 -0
- package/esm2022/spx-inputs/spx-input-number.component.mjs +82 -0
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +63 -0
- package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
- package/esm2022/spx-inputs/spx-input.component.mjs +380 -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 +33 -0
- package/esm2022/spx-navigation/spx-home-tiles.component.mjs +17 -0
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
- package/esm2022/spx-navigation/spx-navigation.component.mjs +42 -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 +11 -0
- package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
- package/esm2022/spx-patch/spx-patch.component.mjs +46 -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 +157 -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 +47 -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 +46 -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 +88 -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 +10 -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 +63 -0
- package/esm2022/spx-validation/spx-validation.module.mjs +28 -0
- package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
- package/fesm2022/softpak-components-spx-alert.mjs +201 -0
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs +28 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-button.mjs +136 -0
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs +27 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs +171 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs +92 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-form-section.mjs +44 -0
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-helpers.mjs +42 -0
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-inputs.mjs +1340 -0
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-navigation.mjs +93 -0
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-patch.mjs +72 -0
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs +36 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-spinner.mjs +164 -0
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-storage.mjs +63 -0
- package/fesm2022/softpak-components-spx-storage.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs +54 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-toaster.mjs +79 -0
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-update.mjs +138 -0
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-validation.mjs +223 -0
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -0
- package/fesm2022/softpak-components.mjs +8 -0
- package/fesm2022/softpak-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +135 -0
- package/placeholder.d.ts +1 -0
- package/public_api.d.ts +1 -0
- package/spx-alert/index.d.ts +5 -0
- package/spx-alert/public-api.d.ts +2 -0
- package/spx-alert/spx-alert.component.d.ts +28 -0
- package/spx-alert/spx-alert.interface.d.ts +7 -0
- package/spx-app-configuration/index.d.ts +5 -0
- package/spx-app-configuration/public-api.d.ts +7 -0
- package/spx-app-configuration/spx-app-alert.interface.d.ts +7 -0
- package/spx-app-configuration/spx-app-bundle-set.interface.d.ts +4 -0
- package/spx-app-configuration/spx-app-channel-type.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-channel.interface.d.ts +10 -0
- package/spx-app-configuration/spx-app-config.interface.d.ts +19 -0
- package/spx-app-configuration/spx-app-id.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-lang.enum.d.ts +4 -0
- package/spx-app-configuration/spx-app-release-note.interface.d.ts +8 -0
- package/spx-button/index.d.ts +5 -0
- package/spx-button/public-api.d.ts +1 -0
- package/spx-button/spx-button.component.d.ts +23 -0
- package/spx-capitalize/index.d.ts +5 -0
- package/spx-capitalize/public-api.d.ts +1 -0
- package/spx-capitalize/spx-capitalize.pipe.d.ts +8 -0
- package/spx-channel-selection/index.d.ts +5 -0
- package/spx-channel-selection/public-api.d.ts +4 -0
- package/spx-channel-selection/src/spx-channel-indicator.component.d.ts +13 -0
- package/spx-channel-selection/src/spx-channel-selection.component.d.ts +11 -0
- package/spx-channel-selection/src/spx-company-selection.component.d.ts +12 -0
- package/spx-channel-selection/src/spx-welcome.component.d.ts +12 -0
- package/spx-check-digit/index.d.ts +5 -0
- package/spx-check-digit/public-api.d.ts +1 -0
- package/spx-check-digit/spx-check-digit.component.d.ts +19 -0
- package/spx-form-section/index.d.ts +5 -0
- package/spx-form-section/public-api.d.ts +1 -0
- package/spx-form-section/spx-form-section.component.d.ts +9 -0
- package/spx-helpers/calc-check-digit.function.d.ts +1 -0
- package/spx-helpers/index.d.ts +5 -0
- package/spx-helpers/public-api.d.ts +3 -0
- package/spx-helpers/spx-severity.enum.d.ts +6 -0
- package/spx-helpers/value-pair-to-value.function.d.ts +1 -0
- package/spx-inputs/index.d.ts +5 -0
- package/spx-inputs/public-api.d.ts +4 -0
- package/spx-inputs/spx-input-box.component.d.ts +33 -0
- package/spx-inputs/spx-input-date.component.d.ts +50 -0
- package/spx-inputs/spx-input-float.component.d.ts +28 -0
- package/spx-inputs/spx-input-number.component.d.ts +22 -0
- package/spx-inputs/spx-input-radio.component.d.ts +18 -0
- package/spx-inputs/spx-input-text.component.d.ts +29 -0
- package/spx-inputs/spx-input.component.d.ts +58 -0
- package/spx-inputs/spx-value-interface.d.ts +4 -0
- package/spx-navigation/index.d.ts +5 -0
- package/spx-navigation/public-api.d.ts +4 -0
- package/spx-navigation/spx-home-tile.component.d.ts +6 -0
- package/spx-navigation/spx-home-tiles.component.d.ts +5 -0
- package/spx-navigation/spx-navigation-item.interface.d.ts +19 -0
- package/spx-navigation/spx-navigation.component.d.ts +12 -0
- package/spx-patch/index.d.ts +5 -0
- package/spx-patch/patch-check.function.d.ts +4 -0
- package/spx-patch/public-api.d.ts +3 -0
- package/spx-patch/release-check.function.d.ts +1 -0
- package/spx-patch/spx-patch.component.d.ts +10 -0
- package/spx-progress-bar/index.d.ts +5 -0
- package/spx-progress-bar/public-api.d.ts +1 -0
- package/spx-progress-bar/spx-progress-bar.component.d.ts +7 -0
- package/spx-spinner/index.d.ts +5 -0
- package/spx-spinner/public-api.d.ts +1 -0
- package/spx-spinner/spx-spinner.component.d.ts +7 -0
- package/spx-storage/index.d.ts +5 -0
- package/spx-storage/public-api.d.ts +2 -0
- package/spx-storage/src/spx-storage-key.enum.d.ts +10 -0
- package/spx-storage/src/spx-storage.class.d.ts +9 -0
- package/spx-suggestion/index.d.ts +5 -0
- package/spx-suggestion/public-api.d.ts +1 -0
- package/spx-suggestion/spx-suggestion.component.d.ts +7 -0
- package/spx-toaster/index.d.ts +5 -0
- package/spx-toaster/public-api.d.ts +3 -0
- package/spx-toaster/src/spx-toaster-autoclose-speed.d.ts +11 -0
- package/spx-toaster/src/spx-toaster-message.interface.d.ts +9 -0
- package/spx-toaster/src/spx-toaster.component.d.ts +11 -0
- package/spx-update/index.d.ts +5 -0
- package/spx-update/public-api.d.ts +2 -0
- package/spx-update/src/spx-update-info.component.d.ts +18 -0
- package/spx-update/src/spx-update-progress.component.d.ts +14 -0
- package/spx-validation/index.d.ts +5 -0
- package/spx-validation/max.validator.d.ts +7 -0
- package/spx-validation/maxlength.validator.d.ts +7 -0
- package/spx-validation/min.validator.d.ts +7 -0
- package/spx-validation/minlength.validator.d.ts +7 -0
- package/spx-validation/pattern.validator.d.ts +2 -0
- package/spx-validation/public-api.d.ts +9 -0
- package/spx-validation/required.validator.d.ts +2 -0
- package/spx-validation/spx-validate-control.component.d.ts +24 -0
- package/spx-validation/spx-validation.module.d.ts +9 -0
- package/spx-validation/year-and-month.validator.d.ts +2 -0
- package/tailwind.css +1 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { NgFor, NgIf } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SpxInputFloatComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
// private elFirstInput?: HTMLElement;
|
|
8
|
+
// private elSecondInput?: HTMLElement;
|
|
9
|
+
this.internalValue = {
|
|
10
|
+
first: null,
|
|
11
|
+
second: null,
|
|
12
|
+
};
|
|
13
|
+
this.spxAutofocus = false;
|
|
14
|
+
this.spxReadonly = false;
|
|
15
|
+
this.spxFocused = true;
|
|
16
|
+
this.spxChange = new EventEmitter();
|
|
17
|
+
this.spxFocus = new EventEmitter();
|
|
18
|
+
this.spxWasInternalUpdate = false;
|
|
19
|
+
this.tick = {};
|
|
20
|
+
}
|
|
21
|
+
async spxSetFocus() {
|
|
22
|
+
// this.elFirstInput.focus();
|
|
23
|
+
}
|
|
24
|
+
// @Watch('value') onValueChanged(newValue: SpxValuePair<any>, _oldValue: SpxValuePair<any>) {
|
|
25
|
+
// this.handleSetValue(newValue);
|
|
26
|
+
// }
|
|
27
|
+
componentDidLoad() {
|
|
28
|
+
if (this.spxAutofocus) {
|
|
29
|
+
this.spxFocus.emit();
|
|
30
|
+
this.spxSetFocus();
|
|
31
|
+
}
|
|
32
|
+
this.handleSetValue(this.value);
|
|
33
|
+
}
|
|
34
|
+
handleFocus() {
|
|
35
|
+
this.spxFocus.emit();
|
|
36
|
+
}
|
|
37
|
+
handleSetValue(newValue) {
|
|
38
|
+
if (this.isNumeric(newValue?.value)) {
|
|
39
|
+
this.internalValue = {
|
|
40
|
+
first: Math.floor(parseFloat(newValue?.value)),
|
|
41
|
+
second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.internalValue = {
|
|
46
|
+
first: null,
|
|
47
|
+
second: null,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
this.tick = {};
|
|
51
|
+
}
|
|
52
|
+
handleInput(event, position) {
|
|
53
|
+
this.internalValue = {
|
|
54
|
+
first: position === 1 ? (event.target ? event.target.value : null) : this.internalValue.first,
|
|
55
|
+
second: position === 2 ? (event.target ? event.target.value : null) : this.internalValue.second,
|
|
56
|
+
};
|
|
57
|
+
let result;
|
|
58
|
+
if (this.internalValue.first === null && this.internalValue.second === null) {
|
|
59
|
+
result = null;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;
|
|
63
|
+
}
|
|
64
|
+
this.value = {
|
|
65
|
+
description: result,
|
|
66
|
+
value: result,
|
|
67
|
+
};
|
|
68
|
+
this.spxChange.emit(this.value);
|
|
69
|
+
}
|
|
70
|
+
isNumeric(value) {
|
|
71
|
+
return /^[+-]?\d+(\.\d+)?$/.test(value);
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputFloatComponent, isStandalone: true, selector: "spx-input-float", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate", tick: "tick" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class="flex items-end">
|
|
75
|
+
<input
|
|
76
|
+
class="spx-input-float__input"
|
|
77
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
78
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
79
|
+
[attr.pattern]="'[0-9]*'"
|
|
80
|
+
[attr.step]="1"
|
|
81
|
+
[attr.type]="'text'"
|
|
82
|
+
[attr.value]="this.internalValue?.first ? this.internalValue?.first : undefined"
|
|
83
|
+
[class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
84
|
+
(focus)="this.handleFocus()"
|
|
85
|
+
(input)="this.handleInput($event, 1)" />
|
|
86
|
+
<span class="text-black font-bold text-2xl mx-4">,</span>
|
|
87
|
+
<input
|
|
88
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
89
|
+
class="spx-input-float__input"
|
|
90
|
+
[class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
91
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
92
|
+
[attr.value]="this.internalValue?.second ? this.internalValue?.second : undefined"
|
|
93
|
+
(focus)="this.handleFocus()"
|
|
94
|
+
(input)="this.handleInput($event, 2)"
|
|
95
|
+
[attr.step]="1"
|
|
96
|
+
[attr.type]="'text'"
|
|
97
|
+
[attr.pattern]="'[0-9]*'" />
|
|
98
|
+
</div>`, isInline: true, styles: [":host{display:block}.spx-input-float__input{border:1px solid #333333;border-radius:8px;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));flex:1;font-size:20px;font-weight:700;padding:8px;width:100%}.spx-input-float__input:focus{outline:none}\n"] }); }
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{ selector: 'spx-input-float', standalone: true, imports: [
|
|
103
|
+
NgIf,
|
|
104
|
+
NgFor,
|
|
105
|
+
SpxButtonComponent,
|
|
106
|
+
], template: `<div class="flex items-end">
|
|
107
|
+
<input
|
|
108
|
+
class="spx-input-float__input"
|
|
109
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
110
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
111
|
+
[attr.pattern]="'[0-9]*'"
|
|
112
|
+
[attr.step]="1"
|
|
113
|
+
[attr.type]="'text'"
|
|
114
|
+
[attr.value]="this.internalValue?.first ? this.internalValue?.first : undefined"
|
|
115
|
+
[class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
116
|
+
(focus)="this.handleFocus()"
|
|
117
|
+
(input)="this.handleInput($event, 1)" />
|
|
118
|
+
<span class="text-black font-bold text-2xl mx-4">,</span>
|
|
119
|
+
<input
|
|
120
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
121
|
+
class="spx-input-float__input"
|
|
122
|
+
[class.spx-input-float--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
123
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
124
|
+
[attr.value]="this.internalValue?.second ? this.internalValue?.second : undefined"
|
|
125
|
+
(focus)="this.handleFocus()"
|
|
126
|
+
(input)="this.handleInput($event, 2)"
|
|
127
|
+
[attr.step]="1"
|
|
128
|
+
[attr.type]="'text'"
|
|
129
|
+
[attr.pattern]="'[0-9]*'" />
|
|
130
|
+
</div>`, styles: [":host{display:block}.spx-input-float__input{border:1px solid #333333;border-radius:8px;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));flex:1;font-size:20px;font-weight:700;padding:8px;width:100%}.spx-input-float__input:focus{outline:none}\n"] }]
|
|
131
|
+
}], propDecorators: { spxName: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], spxAutofocus: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], spxReadonly: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], spxValidators: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], spxFocused: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], spxStep: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], value: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], spxChange: [{
|
|
146
|
+
type: Output
|
|
147
|
+
}], spxFocus: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}], spxWasInternalUpdate: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], tick: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}] } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWZsb2F0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1mbG9hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQTBEcEUsTUFBTSxPQUFPLHNCQUFzQjtJQXhEbkM7UUF5REUsc0NBQXNDO1FBQ3RDLHVDQUF1QztRQUM3QixrQkFBYSxHQUduQjtZQUNGLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO1FBR08saUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUdqQixjQUFTLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ25GLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsU0FBSSxHQUFHLEVBQUUsQ0FBQztLQTBEcEI7SUF4REMsS0FBSyxDQUFDLFdBQVc7UUFDZiw2QkFBNkI7SUFDL0IsQ0FBQztJQUVELDhGQUE4RjtJQUM5RixtQ0FBbUM7SUFDbkMsSUFBSTtJQUVKLGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUEyQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRSxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVLEVBQUUsUUFBZTtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEtBQUssRUFBRSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLO1lBQzdGLE1BQU0sRUFBRSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNO1NBQ2hHLENBQUM7UUFDRixJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVFLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JJLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVyxFQUFFLE1BQU07WUFDbkIsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTlFVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwWEFoRHZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkw7OzJGQXdCTSxzQkFBc0I7a0JBeERsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkw7OEJBbUNJLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1mbG9hdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1lbmRcIj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJzcHgtaW5wdXQtZmxvYXRfX2lucHV0XCJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnBhdHRlcm5dPVwiJ1swLTldKidcIlxuICAgIFthdHRyLnN0ZXBdPVwiMVwiXG4gICAgW2F0dHIudHlwZV09XCIndGV4dCdcIlxuICAgIFthdHRyLnZhbHVlXT1cInRoaXMuaW50ZXJuYWxWYWx1ZT8uZmlyc3QgPyB0aGlzLmludGVybmFsVmFsdWU/LmZpcnN0IDogdW5kZWZpbmVkXCJcbiAgICBbY2xhc3Muc3B4LWlucHV0LWZsb2F0LS1yZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXG4gICAgKGlucHV0KT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAxKVwiIC8+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFjayBmb250LWJvbGQgdGV4dC0yeGwgbXgtNFwiPiw8L3NwYW4+XG4gIDxpbnB1dFxuICAgIFthdHRyLmF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1cyA/IHRoaXMuc3B4QXV0b2ZvY3VzIDogdW5kZWZpbmVkXCJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxuICAgIFtjbGFzcy5zcHgtaW5wdXQtZmxvYXQtLXJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHkgPyB0aGlzLnNweFJlYWRvbmx5IDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIudmFsdWVdPVwidGhpcy5pbnRlcm5hbFZhbHVlPy5zZWNvbmQgPyB0aGlzLmludGVybmFsVmFsdWU/LnNlY29uZCA6IHVuZGVmaW5lZFwiXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXG4gICAgKGlucHV0KT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAyKVwiXG4gICAgW2F0dHIuc3RlcF09XCIxXCJcbiAgICBbYXR0ci50eXBlXT1cIid0ZXh0J1wiXG4gICAgW2F0dHIucGF0dGVybl09XCInWzAtOV0qJ1wiIC8+XG48L2Rpdj5gLFxuICBzdHlsZXM6IGBcbiAgOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNweC1pbnB1dC1mbG9hdF9faW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xuICBmbGV4OiAxO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc3B4LWlucHV0LWZsb2F0X19pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0RmxvYXRDb21wb25lbnQge1xuICAvLyBwcml2YXRlIGVsRmlyc3RJbnB1dD86IEhUTUxFbGVtZW50O1xuICAvLyBwcml2YXRlIGVsU2Vjb25kSW5wdXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWU6IHtcbiAgICBmaXJzdDogbnVtYmVyIHwgbnVsbDtcbiAgICBzZWNvbmQ6IG51bWJlciB8IG51bGw7XG4gIH0gPSB7XG4gICAgZmlyc3Q6IG51bGwsXG4gICAgc2Vjb25kOiBudWxsLFxuICB9O1xuICAvLyBARWxlbWVudCgpIGVsITogSFRNTFN0ZW5jaWxFbGVtZW50O1xuICBASW5wdXQoKSBzcHhOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4U3RlcD86IG51bWJlcjtcbiAgQElucHV0KCkgdmFsdWUhOiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuICBASW5wdXQoKSB0aWNrID0ge307XG4gIFxuICBhc3luYyBzcHhTZXRGb2N1cygpIHtcbiAgICAvLyB0aGlzLmVsRmlyc3RJbnB1dC5mb2N1cygpO1xuICB9XG5cbiAgLy8gQFdhdGNoKCd2YWx1ZScpIG9uVmFsdWVDaGFuZ2VkKG5ld1ZhbHVlOiBTcHhWYWx1ZVBhaXI8YW55PiwgX29sZFZhbHVlOiBTcHhWYWx1ZVBhaXI8YW55Pikge1xuICAvLyAgIHRoaXMuaGFuZGxlU2V0VmFsdWUobmV3VmFsdWUpO1xuICAvLyB9XG5cbiAgY29tcG9uZW50RGlkTG9hZCgpIHtcbiAgICBpZiAodGhpcy5zcHhBdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xuICAgICAgdGhpcy5zcHhTZXRGb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmhhbmRsZVNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaGFuZGxlRm9jdXMoKSB7XG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVTZXRWYWx1ZShuZXdWYWx1ZTogU3B4VmFsdWVQYWlyPGFueT4pIHtcbiAgICBpZiAodGhpcy5pc051bWVyaWMobmV3VmFsdWU/LnZhbHVlKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xuICAgICAgICBmaXJzdDogTWF0aC5mbG9vcihwYXJzZUZsb2F0KG5ld1ZhbHVlPy52YWx1ZSkpLFxuICAgICAgICBzZWNvbmQ6IG5ld1ZhbHVlPy52YWx1ZT8uc3BsaXQgPyBuZXdWYWx1ZT8udmFsdWUuc3BsaXQoJy4nKVsxXSA6IDAsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7XG4gICAgICAgIGZpcnN0OiBudWxsLFxuICAgICAgICBzZWNvbmQ6IG51bGwsXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnRpY2sgPSB7fTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBhbnksIHBvc2l0aW9uOiAxIHwgMikge1xuICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcbiAgICAgIGZpcnN0OiBwb3NpdGlvbiA9PT0gMSA/IChldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsKSA6IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCxcbiAgICAgIHNlY29uZDogcG9zaXRpb24gPT09IDIgPyAoZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCkgOiB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kLFxuICAgIH07XG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAodGhpcy5pbnRlcm5hbFZhbHVlLmZpcnN0ID09PSBudWxsICYmIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgPT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGAke3RoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA/IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA6IDB9LiR7dGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCA/IHRoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgOiAwfWA7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogcmVzdWx0LFxuICAgICAgdmFsdWU6IHJlc3VsdCxcbiAgICB9O1xuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBpc051bWVyaWModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiAvXlsrLV0/XFxkKyhcXC5cXGQrKT8kLy50ZXN0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SpxInputNumberComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.spxAutofocus = false;
|
|
6
|
+
this.spxReadonly = false;
|
|
7
|
+
this.spxFocused = true;
|
|
8
|
+
this.spxChange = new EventEmitter();
|
|
9
|
+
this.spxFocus = new EventEmitter();
|
|
10
|
+
this.spxWasInternalUpdate = false;
|
|
11
|
+
}
|
|
12
|
+
async spxSetFocus() {
|
|
13
|
+
// this.elInput.focus();
|
|
14
|
+
}
|
|
15
|
+
componentDidLoad() {
|
|
16
|
+
if (this.spxAutofocus) {
|
|
17
|
+
this.spxFocus.emit();
|
|
18
|
+
this.spxSetFocus();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
handleFocus() {
|
|
22
|
+
this.spxFocus.emit();
|
|
23
|
+
}
|
|
24
|
+
handleInput(event) {
|
|
25
|
+
this.value = {
|
|
26
|
+
description: event.target ? event.target.value : null,
|
|
27
|
+
value: event.target ? event.target.value : null,
|
|
28
|
+
};
|
|
29
|
+
this.spxChange.emit(this.value);
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputNumberComponent, isStandalone: true, selector: "spx-input-number", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxStep: "spxStep", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class="spx-input-number__controls">
|
|
33
|
+
<input
|
|
34
|
+
class="spx-input-number__input"
|
|
35
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
36
|
+
[class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
37
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
38
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
39
|
+
[attr.value]="this.value?.value ? this.value?.value : undefined"
|
|
40
|
+
[attr.step]="this.spxStep ? this.spxStep : undefined"
|
|
41
|
+
[attr.type]="'number'"
|
|
42
|
+
(focus)="this.handleFocus()"
|
|
43
|
+
(input)="this.handleInput($event)" />
|
|
44
|
+
</div>`, isInline: true, styles: [":host{display:block}.spx-input-number__input{border:0;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}.spx-input-number__input:focus{outline:none}.spx-input-number__value{color:#0009;font-size:14px}\n"] }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputNumberComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'spx-input-number', standalone: true, imports: [], template: `<div class="spx-input-number__controls">
|
|
49
|
+
<input
|
|
50
|
+
class="spx-input-number__input"
|
|
51
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
52
|
+
[class.spx-input-number--readonly]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
53
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
54
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
55
|
+
[attr.value]="this.value?.value ? this.value?.value : undefined"
|
|
56
|
+
[attr.step]="this.spxStep ? this.spxStep : undefined"
|
|
57
|
+
[attr.type]="'number'"
|
|
58
|
+
(focus)="this.handleFocus()"
|
|
59
|
+
(input)="this.handleInput($event)" />
|
|
60
|
+
</div>`, styles: [":host{display:block}.spx-input-number__input{border:0;background-color:transparent;box-sizing:border-box;color:var(--spx-input--color, rgba(0, 0, 0, .9));font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}.spx-input-number__input:focus{outline:none}.spx-input-number__value{color:#0009;font-size:14px}\n"] }]
|
|
61
|
+
}], propDecorators: { spxName: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], spxAutofocus: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], spxInputMode: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], spxReadonly: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], spxValidators: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], spxFocused: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], spxStep: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], value: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], spxChange: [{
|
|
78
|
+
type: Output
|
|
79
|
+
}], spxFocus: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQStDdkUsTUFBTSxPQUFPLHVCQUF1QjtJQTVDcEM7UUFnRFcsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUdqQixjQUFTLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ25GLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7S0F3QjlCO0lBdEJDLEtBQUssQ0FBQyxXQUFXO1FBQ2Ysd0JBQXdCO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3JELEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBcENVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDZWQXhDeEI7Ozs7Ozs7Ozs7OztPQVlMOzsyRkE0Qk0sdUJBQXVCO2tCQTVDbkMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7Ozs7Ozs7Ozs7O09BWUw7OEJBK0JJLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LW51bWJlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJzcHgtaW5wdXQtbnVtYmVyX19jb250cm9sc1wiPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNweC1pbnB1dC1udW1iZXJfX2lucHV0XCJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXG4gICAgW2NsYXNzLnNweC1pbnB1dC1udW1iZXItLXJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHkgPyB0aGlzLnNweFJlYWRvbmx5IDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuaW5wdXRNb2RlXT1cInRoaXMuc3B4SW5wdXRNb2RlID8gdGhpcy5zcHhJbnB1dE1vZGUgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnZhbHVlXT1cInRoaXMudmFsdWU/LnZhbHVlID8gdGhpcy52YWx1ZT8udmFsdWUgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnN0ZXBdPVwidGhpcy5zcHhTdGVwID8gdGhpcy5zcHhTdGVwIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcbiAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcbiAgICAoaW5wdXQpPVwidGhpcy5oYW5kbGVJbnB1dCgkZXZlbnQpXCIgLz5cbjwvZGl2PmAsXG4gIHN0eWxlczogYFxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNweC1pbnB1dC1udW1iZXJfX2lucHV0IHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHZhcigtLXNweC1pbnB1dC0tY29sb3IsIHJnYmEoMCwgMCwgMCwgLjkpKTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNweC1pbnB1dC1udW1iZXJfX2lucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNweC1pbnB1dC1udW1iZXJfX3ZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjYpO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0TnVtYmVyQ29tcG9uZW50IHtcbiAgLy8gcHJpdmF0ZSBlbElucHV0PzogSFRNTEVsZW1lbnQ7XG4gIC8vIEBFbGVtZW50KCkgZWwhOiBIVE1MRWxlbWVudDtcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4QXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweElucHV0TW9kZT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4U3RlcD86IG51bWJlcjtcbiAgQElucHV0KCkgdmFsdWU/OiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuICBcbiAgYXN5bmMgc3B4U2V0Rm9jdXMoKSB7XG4gICAgLy8gdGhpcy5lbElucHV0LmZvY3VzKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRMb2FkKCkge1xuICAgIGlmICh0aGlzLnNweEF1dG9mb2N1cykge1xuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gICAgICB0aGlzLnNweFNldEZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRm9jdXMoKSB7XG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxuICAgICAgdmFsdWU6IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG59Il19
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { NgFor } from '@angular/common';
|
|
3
|
+
import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SpxInputRadioComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.spxFocused = true;
|
|
8
|
+
this.spxReadonly = false;
|
|
9
|
+
this.spxSuggestions = [];
|
|
10
|
+
this.spxChange = new EventEmitter();
|
|
11
|
+
this.spxFocus = new EventEmitter();
|
|
12
|
+
this.spxWasInternalUpdate = false;
|
|
13
|
+
}
|
|
14
|
+
async spxSetFocus() {
|
|
15
|
+
// this.elYear.focus();
|
|
16
|
+
}
|
|
17
|
+
handleSuggestionClick(value) {
|
|
18
|
+
this.value = value;
|
|
19
|
+
this.spxChange.emit(this.value);
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputRadioComponent, isStandalone: true, selector: "spx-input-radio", inputs: { spxName: "spxName", spxValidators: "spxValidators", spxFocused: "spxFocused", spxReadonly: "spxReadonly", spxSuggestions: "spxSuggestions", value: "value" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class="spx-input-radio__suggestions">
|
|
23
|
+
<spx-suggestion
|
|
24
|
+
*ngFor="let valuePair of this.spxSuggestions"
|
|
25
|
+
[spxDisabled]="this.spxReadonly"
|
|
26
|
+
[spxSelected]="this.value?.value === this.valuePair?.value"
|
|
27
|
+
(click)="this.spxReadonly ? undefined : this.handleSuggestionClick(valuePair)">
|
|
28
|
+
{{this.valuePair?.description}}
|
|
29
|
+
</spx-suggestion>
|
|
30
|
+
</div>`, isInline: true, styles: [":host{display:block}.spx-input-radio__suggestions{display:grid;grid-gap:8px;grid-template-columns:repeat(2,1fr);margin-top:8px}.spx-input-radio--readonly{background-color:transparent;border:0;box-sizing:border-box;font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxSuggestionComponent, selector: "spx-suggestion", inputs: ["spxDisabled", "spxSelected"] }] }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputRadioComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'spx-input-radio', standalone: true, imports: [
|
|
35
|
+
NgFor,
|
|
36
|
+
SpxSuggestionComponent,
|
|
37
|
+
], template: `<div class="spx-input-radio__suggestions">
|
|
38
|
+
<spx-suggestion
|
|
39
|
+
*ngFor="let valuePair of this.spxSuggestions"
|
|
40
|
+
[spxDisabled]="this.spxReadonly"
|
|
41
|
+
[spxSelected]="this.value?.value === this.valuePair?.value"
|
|
42
|
+
(click)="this.spxReadonly ? undefined : this.handleSuggestionClick(valuePair)">
|
|
43
|
+
{{this.valuePair?.description}}
|
|
44
|
+
</spx-suggestion>
|
|
45
|
+
</div>`, styles: [":host{display:block}.spx-input-radio__suggestions{display:grid;grid-gap:8px;grid-template-columns:repeat(2,1fr);margin-top:8px}.spx-input-radio--readonly{background-color:transparent;border:0;box-sizing:border-box;font-size:20px;font-weight:700;margin-right:10px;padding:0;width:100%}\n"] }]
|
|
46
|
+
}], propDecorators: { spxName: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], spxValidators: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], spxFocused: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], spxReadonly: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], spxSuggestions: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], value: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], spxChange: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}], spxFocus: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}] } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1yYWRpby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBMkM1RSxNQUFNLE9BQU8sc0JBQXNCO0lBekNuQztRQTZDVyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUV4QyxjQUFTLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ25GLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7S0FTOUI7SUFSQyxLQUFLLENBQUMsV0FBVztRQUNmLHVCQUF1QjtJQUN6QixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBd0I7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBbEJVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhTQWxDdkI7Ozs7Ozs7O09BUUwsd1dBWEgsS0FBSyxtSEFDTCxzQkFBc0I7OzJGQW9DYixzQkFBc0I7a0JBekNsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxLQUFLO3dCQUNMLHNCQUFzQjtxQkFDdkIsWUFDUzs7Ozs7Ozs7T0FRTDs4QkE0QkksT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtcmFkaW8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdGb3IsXG4gICAgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwic3B4LWlucHV0LXJhZGlvX19zdWdnZXN0aW9uc1wiPlxuICAgIDxzcHgtc3VnZ2VzdGlvblxuICAgICAgKm5nRm9yPVwibGV0IHZhbHVlUGFpciBvZiB0aGlzLnNweFN1Z2dlc3Rpb25zXCJcbiAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgIFtzcHhTZWxlY3RlZF09XCJ0aGlzLnZhbHVlPy52YWx1ZSA9PT0gdGhpcy52YWx1ZVBhaXI/LnZhbHVlXCJcbiAgICAgIChjbGljayk9XCJ0aGlzLnNweFJlYWRvbmx5ID8gdW5kZWZpbmVkIDogdGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyKVwiPlxuICAgICAge3t0aGlzLnZhbHVlUGFpcj8uZGVzY3JpcHRpb259fVxuICAgIDwvc3B4LXN1Z2dlc3Rpb24+XG48L2Rpdj5gLFxuICBzdHlsZXM6IGBcbiAgOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNweC1pbnB1dC1yYWRpb19fc3VnZ2VzdGlvbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogOHB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5zcHgtaW5wdXQtcmFkaW8tLXJlYWRvbmx5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dFJhZGlvQ29tcG9uZW50IHtcbiAgLy8gQEVsZW1lbnQoKSBlbCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBzcHhOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzITogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhTdWdnZXN0aW9uczogU3B4VmFsdWVQYWlyPGFueT5bXSA9IFtdO1xuICBASW5wdXQoKSB2YWx1ZT86IFNweFZhbHVlUGFpcjxhbnk+O1xuICBAT3V0cHV0KCkgc3B4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4oKTtcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHNweFdhc0ludGVybmFsVXBkYXRlID0gZmFsc2U7XG4gIGFzeW5jIHNweFNldEZvY3VzKCkge1xuICAgIC8vIHRoaXMuZWxZZWFyLmZvY3VzKCk7XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWU6IFNweFZhbHVlUGFpcjxhbnk+KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { NgFor, NgIf } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SpxInputTextComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.spxAutofocus = false;
|
|
8
|
+
this.spxSuggestions = [];
|
|
9
|
+
this.spxReadonly = false;
|
|
10
|
+
this.spxCapitalize = false;
|
|
11
|
+
this.spxFocused = true;
|
|
12
|
+
this.spxType = 'text';
|
|
13
|
+
this.spxBlurFromChild = new EventEmitter();
|
|
14
|
+
this.spxChange = new EventEmitter();
|
|
15
|
+
this.spxFocus = new EventEmitter();
|
|
16
|
+
this.spxWasInternalUpdate = false;
|
|
17
|
+
}
|
|
18
|
+
async spxSetFocus() {
|
|
19
|
+
// this.elInput.focus();
|
|
20
|
+
}
|
|
21
|
+
componentDidLoad() {
|
|
22
|
+
if (this.spxAutofocus) {
|
|
23
|
+
this.spxFocus.emit();
|
|
24
|
+
this.spxSetFocus();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
handleBlur() {
|
|
28
|
+
this.spxBlurFromChild.emit();
|
|
29
|
+
}
|
|
30
|
+
handleFocus() {
|
|
31
|
+
this.spxFocus.emit();
|
|
32
|
+
}
|
|
33
|
+
handleDescriptionInput(event) {
|
|
34
|
+
this.value = {
|
|
35
|
+
description: event.target ? event.target.value : null,
|
|
36
|
+
value: event.target ? event.target.value : null,
|
|
37
|
+
};
|
|
38
|
+
this.spxChange.emit(this.value);
|
|
39
|
+
}
|
|
40
|
+
handleSuggestionClick(value) {
|
|
41
|
+
if (!this.spxReadonly) {
|
|
42
|
+
this.value = value;
|
|
43
|
+
this.spxChange.emit(this.value);
|
|
44
|
+
this.spxFocused = false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
handleKeyUp() {
|
|
48
|
+
this.spxFocused = true;
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxInputTextComponent, isStandalone: true, selector: "spx-input-text", 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" }, ngImport: i0, template: `<div class="relative">
|
|
52
|
+
<input
|
|
53
|
+
class="font-bold text-lg w-full outline-none"
|
|
54
|
+
[class.uppercase]="this.spxCapitalize"
|
|
55
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
56
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
57
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
58
|
+
[attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
|
|
59
|
+
[attr.name]="this.spxName"
|
|
60
|
+
[attr.type]="this.spxType"
|
|
61
|
+
[attr.value]="this.value?.description ? this.value?.description : this.value?.value"
|
|
62
|
+
(blur)="this.handleBlur()"
|
|
63
|
+
(keyUp)="this.handleKeyUp()"
|
|
64
|
+
(focus)="this.handleFocus()"
|
|
65
|
+
(input)="this.handleDescriptionInput($event)"
|
|
66
|
+
/>
|
|
67
|
+
<span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
|
|
68
|
+
<div
|
|
69
|
+
*ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
|
|
70
|
+
class="absolute bg-gray-100 left-0 right-0 z-20">
|
|
71
|
+
<div
|
|
72
|
+
*ngFor="let valuePair of this.spxSuggestions"
|
|
73
|
+
class="text-black block w-full p-2 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 flex items-center"
|
|
74
|
+
(click)="this.handleSuggestionClick($event)"
|
|
75
|
+
[attr.tabindex]="0"
|
|
76
|
+
>
|
|
77
|
+
<div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
|
|
78
|
+
<spx-button spxType="button">Select</spx-button>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>`, 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: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxInputTextComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{
|
|
86
|
+
selector: 'spx-input-text',
|
|
87
|
+
standalone: true,
|
|
88
|
+
imports: [
|
|
89
|
+
NgIf,
|
|
90
|
+
NgFor,
|
|
91
|
+
SpxButtonComponent,
|
|
92
|
+
],
|
|
93
|
+
template: `<div class="relative">
|
|
94
|
+
<input
|
|
95
|
+
class="font-bold text-lg w-full outline-none"
|
|
96
|
+
[class.uppercase]="this.spxCapitalize"
|
|
97
|
+
[attr.autofocus]="this.spxAutofocus ? this.spxAutofocus : undefined"
|
|
98
|
+
[attr.disabled]="this.spxReadonly ? this.spxReadonly : undefined"
|
|
99
|
+
[attr.inputMode]="this.spxInputMode ? this.spxInputMode : undefined"
|
|
100
|
+
[attr.pattern]="this.spxPattern ? this.spxPattern : undefined"
|
|
101
|
+
[attr.name]="this.spxName"
|
|
102
|
+
[attr.type]="this.spxType"
|
|
103
|
+
[attr.value]="this.value?.description ? this.value?.description : this.value?.value"
|
|
104
|
+
(blur)="this.handleBlur()"
|
|
105
|
+
(keyUp)="this.handleKeyUp()"
|
|
106
|
+
(focus)="this.handleFocus()"
|
|
107
|
+
(input)="this.handleDescriptionInput($event)"
|
|
108
|
+
/>
|
|
109
|
+
<span *ngIf="this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()">{{this.value?.value}}</span>
|
|
110
|
+
<div
|
|
111
|
+
*ngIf="this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')"
|
|
112
|
+
class="absolute bg-gray-100 left-0 right-0 z-20">
|
|
113
|
+
<div
|
|
114
|
+
*ngFor="let valuePair of this.spxSuggestions"
|
|
115
|
+
class="text-black block w-full p-2 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 flex items-center"
|
|
116
|
+
(click)="this.handleSuggestionClick($event)"
|
|
117
|
+
[attr.tabindex]="0"
|
|
118
|
+
>
|
|
119
|
+
<div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
|
|
120
|
+
<spx-button spxType="button">Select</spx-button>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</div>`,
|
|
124
|
+
}]
|
|
125
|
+
}], propDecorators: { spxName: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], spxAutofocus: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], spxInputMode: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], spxPattern: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], spxSuggestions: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], spxReadonly: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], spxValidators: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], spxCapitalize: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], spxFocused: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], spxType: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], value: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], spxBlurFromChild: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}], spxChange: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], spxFocus: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}], spxWasInternalUpdate: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}] } });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUEwQ3BFLE1BQU0sT0FBTyxxQkFBcUI7SUF4Q2xDO1FBNENXLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLG1CQUFjLEdBQThDLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFlBQU8sR0FBdUUsTUFBTSxDQUFDO1FBRXBGLHFCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hFLGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDbkYsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pELHlCQUFvQixHQUFHLEtBQUssQ0FBQztLQXlDdkM7SUF0Q0MsS0FBSyxDQUFDLFdBQVc7UUFDZix3QkFBd0I7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNyRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDaEQsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDOzhHQXpEVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwyZ0JBaEN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BOEJMLDREQWxDSCxJQUFJLDZGQUNKLEtBQUssbUhBQ0wsa0JBQWtCOzsyRkFrQ1QscUJBQXFCO2tCQXhDakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxrQkFBa0I7cUJBQ25CO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BOEJMO2lCQUNOOzhCQUlVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRleHQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBTcHhCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgdy1mdWxsIG91dGxpbmUtbm9uZVwiXG4gICAgW2NsYXNzLnVwcGVyY2FzZV09XCJ0aGlzLnNweENhcGl0YWxpemVcIlxuICAgIFthdHRyLmF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1cyA/IHRoaXMuc3B4QXV0b2ZvY3VzIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuaW5wdXRNb2RlXT1cInRoaXMuc3B4SW5wdXRNb2RlID8gdGhpcy5zcHhJbnB1dE1vZGUgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnBhdHRlcm5dPVwidGhpcy5zcHhQYXR0ZXJuID8gdGhpcy5zcHhQYXR0ZXJuIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5uYW1lXT1cInRoaXMuc3B4TmFtZVwiXG4gICAgW2F0dHIudHlwZV09XCJ0aGlzLnNweFR5cGVcIlxuICAgIFthdHRyLnZhbHVlXT1cInRoaXMudmFsdWU/LmRlc2NyaXB0aW9uID8gdGhpcy52YWx1ZT8uZGVzY3JpcHRpb24gOiB0aGlzLnZhbHVlPy52YWx1ZVwiXG4gICAgKGJsdXIpPVwidGhpcy5oYW5kbGVCbHVyKClcIlxuICAgIChrZXlVcCk9XCJ0aGlzLmhhbmRsZUtleVVwKClcIlxuICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxuICAgIChpbnB1dCk9XCJ0aGlzLmhhbmRsZURlc2NyaXB0aW9uSW5wdXQoJGV2ZW50KVwiXG4gIC8+XG4gIDxzcGFuICpuZ0lmPVwidGhpcy52YWx1ZT8uZGVzY3JpcHRpb24gJiYgdGhpcy52YWx1ZT8udmFsdWUgJiYgdGhpcy52YWx1ZT8uZGVzY3JpcHRpb24/LnZhbHVlT2YoKSAhPT0gdGhpcy52YWx1ZT8udmFsdWU/LnZhbHVlT2YoKVwiPnt7dGhpcy52YWx1ZT8udmFsdWV9fTwvc3Bhbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwidGhpcy5zcHhGb2N1c2VkICYmICh0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5JyB8fCB0aGlzLnNweFR5cGUgPT09ICdvdmVybGF5bnVtYmVyJylcIlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgYmctZ3JheS0xMDAgbGVmdC0wIHJpZ2h0LTAgei0yMFwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWVQYWlyIG9mIHRoaXMuc3B4U3VnZ2VzdGlvbnNcIlxuICAgICAgICBjbGFzcz1cInRleHQtYmxhY2sgYmxvY2sgdy1mdWxsIHAtMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93IGhvdmVyOmJnLWdyYXktMTAwIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgKGNsaWNrKT1cInRoaXMuaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKCRldmVudClcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgcC0xIGZvbnQtYm9sZCB0ZXh0LWxnXCI+e3t2YWx1ZVBhaXI/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgPHNweC1idXR0b24gc3B4VHlwZT1cImJ1dHRvblwiPlNlbGVjdDwvc3B4LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0VGV4dENvbXBvbmVudCB7XG4gIC8vIHByaXZhdGUgZWxJbnB1dD86IEhUTUxFbGVtZW50O1xuICAvLyBARWxlbWVudCgpIGVsITogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgpIHNweE5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweEF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhJbnB1dE1vZGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFBhdHRlcm4/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzPzogYW55W107XG4gIEBJbnB1dCgpIHNweENhcGl0YWxpemUgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNweFR5cGU6ICdhdXRvY29tcGxldGUnIHwgJ292ZXJsYXknIHwgJ292ZXJsYXludW1iZXInIHwgJ3RleHQnIHwgJ3Bhc3N3b3JkJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgdmFsdWU/OiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweEJsdXJGcm9tQ2hpbGQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xuICBcbiAgXG4gIGFzeW5jIHNweFNldEZvY3VzKCkge1xuICAgIC8vIHRoaXMuZWxJbnB1dC5mb2N1cygpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTG9hZCgpIHtcbiAgICBpZiAodGhpcy5zcHhBdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xuICAgICAgdGhpcy5zcHhTZXRGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUJsdXIoKSB7XG4gICAgdGhpcy5zcHhCbHVyRnJvbUNoaWxkLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKCkge1xuICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xuICB9XG5cbiAgaGFuZGxlRGVzY3JpcHRpb25JbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxuICAgICAgdmFsdWU6IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuc3B4UmVhZG9ubHkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlVcCgpIHtcbiAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xuICB9XG59XG4iXX0=
|