@yamato-daiwa/frontend-vue 0.2.0 → 0.3.0-alpha.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.
Potentially problematic release.
This version of @yamato-daiwa/frontend-vue might be problematic. Click here for more details.
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +5 -1
- package/README.md +5 -0
- package/Source/Functions/getElementByVueReference.ts +105 -8
- package/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.vue +67 -0
- package/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.vue.d.ts +48 -0
- package/Source/GUI_Components/AdmonitionBlock/{AdmonitionBlock.vue.ts → AdmonitionBlockLogic.vue.ts} +83 -59
- package/Source/GUI_Components/Badge/Badge.vue.ts +98 -63
- package/Source/GUI_Components/Badge/LoadingPlaceholder/Badge-LoadingPlaceholder.vue.ts +51 -32
- package/Source/GUI_Components/Controls/Buttons/Closing/ClosingButton.vue.pug +1 -0
- package/Source/GUI_Components/Controls/Buttons/Closing/ClosingButton.vue.ts +224 -0
- package/Source/GUI_Components/Controls/Buttons/HamburgerMenu/HamburgerMenuButton-ForInheritance.vue.ts +253 -0
- package/Source/GUI_Components/Controls/Buttons/HamburgerMenu/HamburgerMenuButton.vue +24 -0
- package/Source/GUI_Components/Controls/Buttons/HamburgerMenu/HamburgerMenuButton.vue.d.ts +45 -0
- package/Source/GUI_Components/Controls/Buttons/HamburgerMenu/HamburgerMenuButton.vue.pug +0 -0
- package/Source/GUI_Components/Controls/Buttons/Plain/Button.vue.ts +217 -105
- package/Source/GUI_Components/Controls/Buttons/Plain/LoadingPlaceholder/Button-LoadingPlaceholder.vue.ts +38 -30
- package/Source/GUI_Components/Controls/ValidatableControlShell/ValidatableControlShell.vue.pug +33 -20
- package/Source/GUI_Components/Controls/ValidatableControlShell/ValidatableControlShell.vue.ts +303 -121
- package/Source/GUI_Components/Controls/Validatables/InputtableControl.vue.ts +233 -0
- package/Source/GUI_Components/Controls/Validatables/TextBox/TextBox.vue.pug +38 -0
- package/Source/GUI_Components/Controls/Validatables/TextBox/TextBox.vue.ts +538 -96
- package/Source/GUI_Components/Controls/Validatables/ValidatableControl.ts +63 -54
- package/Source/GUI_Components/Controls/Validatables/ValidatableControlsGroup.ts +176 -0
- package/Source/GUI_Components/OverflowSafeSingleLineLabel.vue +9 -2
- package/Source/GUI_Components/ThemesShowcase.vue +10 -5
- package/Source/GUI_Components/YDF_ComponentsCoordinator.ts +164 -5
- package/Source/GUI_Components/_Decorators/AccessibleFromTemplateAsNonReactive.ts +67 -0
- package/Source/GUI_Components/_Decorators/NonReactiveVueData.ts +26 -0
- package/Source/GUI_Components/_Decorators/{OptionalButNotNullableVueProperty.ts → preventNullForOptionalVueProperty.ts} +3 -4
- package/Source/GUI_Components/_Errors/InvalidVueProperty/InvalidVuePropertyError.ts +43 -0
- package/Source/GUI_Components/_Errors/InvalidVueProperty/InvalidVuePropertyErrorLocalization.english.ts +16 -0
- package/Source/GUI_Components/_VuePropertiesValidators/BooleanVuePropertyValidator.ts +25 -0
- package/Source/GUI_Components/_VuePropertiesValidators/DecorativeModifiersVuePropertyValidator.ts +22 -0
- package/Source/GUI_Components/_VuePropertiesValidators/DecorativeVariationVuePropertyValidator.ts +23 -0
- package/Source/GUI_Components/_VuePropertiesValidators/ElementOfEnumerationVuePropertyValidator.ts +29 -0
- package/Source/GUI_Components/_VuePropertiesValidators/GeometricModifiersVuePropertyValidator.ts +22 -0
- package/Source/GUI_Components/_VuePropertiesValidators/GeometricVariationVuePropertyValidator.ts +23 -0
- package/Source/GUI_Components/_VuePropertiesValidators/NaturalNumberOrZeroVuePropertyValidator.ts +25 -0
- package/Source/GUI_Components/_VuePropertiesValidators/NonEmptyStringVuePropertyValidator.ts +25 -0
- package/Source/GUI_Components/_VuePropertiesValidators/ThemeVuePropertyValidator.ts +23 -0
- package/Source/GUI_Components/_VuePropertiesValidators/VuePropertyValidator.ts +51 -0
- package/Source/index.ts +24 -8
- package/Workbenches/Source/Decorators/Decorators.workbench.pug +20 -0
- package/Workbenches/Source/Decorators/Decorators.workbench.ts +5 -0
- package/Workbenches/Source/Decorators/DecoratorsWorkbench.vue +69 -0
- package/Workbenches/Source/GUI_Components/AdmonitionBlock/AdmonitionBlockComponentTestSite.vue +9 -2
- package/Workbenches/Source/GUI_Components/Badge/BadgeBlockComponentTestSite.vue +9 -2
- package/Workbenches/Source/GUI_Components/Controls/Buttons/Plain/ButtonComponentTestSite.vue +19 -8
- package/Workbenches/Source/GUI_Components/Controls/Validatable/TextBox/TextBoxWorkbench.vue +45 -2
- package/Workbenches/Source/GUI_Components/Controls/ValidatableControlShell/ValidatableControlShellTestSite.vue +9 -2
- package/Workbenches/Source/GUI_Components/OverflowSafeSingleLineLabel/OverflowSafeSingleLineLabelComponentTestSite.vue +9 -2
- package/Workbenches/Source/Workbenches.pug +6 -0
- package/eslint.config.js +15 -0
- package/package.json +40 -48
- package/tsconfig.json +0 -3
- package/yda.config.yaml +1 -1
- package/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.vue.pug +0 -43
- package/Source/GUI_Components/Controls/Validatables/InputtableControl.ts +0 -134
- package/Source/GUI_Components/_Utils/validateVuePropertyAndLogIfInvalid.ts +0 -34
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/* ─── Validations ─────────────────────────────────────────────────────────────────────────────────────── */
|
|
2
|
+
import type VuePropertyValidator from "../../_VuePropertiesValidators/VuePropertyValidator";
|
|
3
|
+
import BooleanVuePropertyValidator from "../../_VuePropertiesValidators/BooleanVuePropertyValidator";
|
|
4
|
+
import NonEmptyStringVuePropertyValidator from "../../_VuePropertiesValidators/NonEmptyStringVuePropertyValidator";
|
|
5
|
+
import InvalidVuePropertiesCombinationError from
|
|
6
|
+
"../../_Errors/InvalidVuePropertiesCombination/InvalidVuePropertiesCombinationError";
|
|
7
|
+
import preventNullForOptionalVueProperty from "../../_Decorators/preventNullForOptionalVueProperty";
|
|
8
|
+
import { type ValidatableControl } from "@yamato-daiwa/frontend";
|
|
9
|
+
|
|
10
|
+
/* ─── Framework ──────────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
11
|
+
import {
|
|
12
|
+
ComponentBase as VueComponentConfiguration,
|
|
13
|
+
Vue as VueComponent,
|
|
14
|
+
Prop as VueProperty
|
|
15
|
+
} from "vue-facing-decorator";
|
|
16
|
+
|
|
17
|
+
/* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
18
|
+
import { Logger, isEitherUndefinedOrNull } from "@yamato-daiwa/es-extensions";
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@VueComponentConfiguration({})
|
|
22
|
+
export default abstract class InputtableControl extends VueComponent {
|
|
23
|
+
|
|
24
|
+
/* ━━━ Component Common Properties ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
25
|
+
/* ┅┅┅ Textings ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
|
|
26
|
+
@VueProperty({
|
|
27
|
+
required: false,
|
|
28
|
+
get validator(): VuePropertyValidator {
|
|
29
|
+
return NonEmptyStringVuePropertyValidator({
|
|
30
|
+
isPropertyRequired: this.required === true,
|
|
31
|
+
propertyName: "label",
|
|
32
|
+
componentName: "(Inheritor of InputtableControl)"
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
@preventNullForOptionalVueProperty
|
|
37
|
+
protected readonly label?: string;
|
|
38
|
+
|
|
39
|
+
@VueProperty({
|
|
40
|
+
required: false,
|
|
41
|
+
get validator(): VuePropertyValidator {
|
|
42
|
+
return NonEmptyStringVuePropertyValidator({
|
|
43
|
+
isPropertyRequired: this.required === true,
|
|
44
|
+
propertyName: "accessibilityGuidance",
|
|
45
|
+
componentName: "(Inheritor of InputtableControl)"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
@preventNullForOptionalVueProperty
|
|
50
|
+
protected readonly accessibilityGuidance?: string;
|
|
51
|
+
|
|
52
|
+
@VueProperty({
|
|
53
|
+
required: false,
|
|
54
|
+
get validator(): VuePropertyValidator {
|
|
55
|
+
return NonEmptyStringVuePropertyValidator({
|
|
56
|
+
isPropertyRequired: this.required === true,
|
|
57
|
+
propertyName: "externalLabelHTML_ID",
|
|
58
|
+
componentName: "(Inheritor of InputtableControl)"
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
@preventNullForOptionalVueProperty
|
|
63
|
+
protected readonly externalLabelHTML_ID?: string;
|
|
64
|
+
|
|
65
|
+
@VueProperty({
|
|
66
|
+
required: false,
|
|
67
|
+
get validator(): VuePropertyValidator {
|
|
68
|
+
return NonEmptyStringVuePropertyValidator({
|
|
69
|
+
isPropertyRequired: this.required === true,
|
|
70
|
+
propertyName: "guidance",
|
|
71
|
+
componentName: "(Inheritor of InputtableControl)"
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
@preventNullForOptionalVueProperty
|
|
76
|
+
protected readonly guidance?: string;
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
/* ┅┅┅ Requirement ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
|
|
80
|
+
@VueProperty({
|
|
81
|
+
default: false,
|
|
82
|
+
get validator(): VuePropertyValidator {
|
|
83
|
+
return BooleanVuePropertyValidator({
|
|
84
|
+
propertyName: "required",
|
|
85
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
86
|
+
isPropertyRequired: this.required === true
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
@preventNullForOptionalVueProperty
|
|
91
|
+
protected readonly required!: boolean;
|
|
92
|
+
|
|
93
|
+
@VueProperty({
|
|
94
|
+
default: false,
|
|
95
|
+
get validator(): VuePropertyValidator {
|
|
96
|
+
return BooleanVuePropertyValidator({
|
|
97
|
+
propertyName: "mustDisplayAppropriateBadgeIfInputIsRequired",
|
|
98
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
99
|
+
isPropertyRequired: this.required === true
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
@preventNullForOptionalVueProperty
|
|
104
|
+
protected readonly mustDisplayAppropriateBadgeIfInputIsRequired!: boolean;
|
|
105
|
+
|
|
106
|
+
@VueProperty({
|
|
107
|
+
default: false,
|
|
108
|
+
get validator(): VuePropertyValidator {
|
|
109
|
+
return BooleanVuePropertyValidator({
|
|
110
|
+
propertyName: "mustDisplayAppropriateBadgeIfInputIsOptional",
|
|
111
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
112
|
+
isPropertyRequired: this.required === true
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
})
|
|
116
|
+
@preventNullForOptionalVueProperty
|
|
117
|
+
protected readonly mustDisplayAppropriateBadgeIfInputIsOptional!: boolean;
|
|
118
|
+
|
|
119
|
+
@VueProperty({
|
|
120
|
+
default: false,
|
|
121
|
+
get validator(): VuePropertyValidator {
|
|
122
|
+
return BooleanVuePropertyValidator({
|
|
123
|
+
propertyName: "mustAddInvisibleBadgeForHeightEqualizingWhenNoBadge",
|
|
124
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
125
|
+
isPropertyRequired: this.required === true
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
@preventNullForOptionalVueProperty
|
|
130
|
+
protected readonly mustAddInvisibleBadgeForHeightEqualizingWhenNoBadge!: boolean;
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
/* ┅┅┅ State Limitations ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
|
|
134
|
+
@VueProperty({
|
|
135
|
+
default: false,
|
|
136
|
+
get validator(): VuePropertyValidator {
|
|
137
|
+
return BooleanVuePropertyValidator({
|
|
138
|
+
propertyName: "disabled",
|
|
139
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
140
|
+
isPropertyRequired: this.required === true
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
})
|
|
144
|
+
@preventNullForOptionalVueProperty
|
|
145
|
+
protected readonly disabled!: boolean;
|
|
146
|
+
|
|
147
|
+
@VueProperty({
|
|
148
|
+
default: false,
|
|
149
|
+
get validator(): VuePropertyValidator {
|
|
150
|
+
return BooleanVuePropertyValidator({
|
|
151
|
+
propertyName: "readonly",
|
|
152
|
+
componentName: "(Inheritor of InputtableControl)",
|
|
153
|
+
isPropertyRequired: this.required === true
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
@preventNullForOptionalVueProperty
|
|
158
|
+
protected readonly readonly!: boolean;
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
/* ━━━ State ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
162
|
+
protected abstract invalidInputHighlightingIfAnyValidationErrorsMessages: boolean;
|
|
163
|
+
protected abstract validInputHighlightingIfNoErrorsMessages: boolean;
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
/* ━━━ Methods ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
167
|
+
/* ┅┅┅ Public ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
|
|
168
|
+
/* ╍╍╍ Partial Implementations of ValidatableControl Interface ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
|
|
169
|
+
public highlightInvalidInput(): this {
|
|
170
|
+
this.invalidInputHighlightingIfAnyValidationErrorsMessages = true;
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
public getRootElementOffsetCoordinates(): ValidatableControl.RootElementOffsetCoordinates {
|
|
175
|
+
|
|
176
|
+
/* [ Specification ]
|
|
177
|
+
* The inputtable control must have a single root element.
|
|
178
|
+
* For YDF components, it is basically ValidatableControlShell. */
|
|
179
|
+
const rootElement: HTMLElement = this.$el;
|
|
180
|
+
|
|
181
|
+
return {
|
|
182
|
+
top: rootElement.offsetTop,
|
|
183
|
+
left: rootElement.offsetLeft
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
public resetStateToInitial(): void {
|
|
189
|
+
Object.assign(this.$data, this.$options.data?.({}));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
/* ╍╍╍ Lifecycle Hooks ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
|
|
194
|
+
protected beforeCreate(): void {
|
|
195
|
+
InputtableControl.validateProperties(this);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
protected beforeUpdate(): void {
|
|
199
|
+
InputtableControl.validateProperties(this);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
/* ┅┅┅ Protected ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
|
|
204
|
+
/** @descriptioin
|
|
205
|
+
* Validation with referencing of multiple properties is possible only via lifecycle hooks.
|
|
206
|
+
* This method is static because non-static methods are not accessible from the viewpoint of "vue-facing-decorator" */
|
|
207
|
+
protected static validateProperties(instance: InputtableControl): void {
|
|
208
|
+
|
|
209
|
+
const inheritedComponentNameForLogging: string = instance.$options.name ?? "(Unnamed component)";
|
|
210
|
+
|
|
211
|
+
if (
|
|
212
|
+
isEitherUndefinedOrNull(instance.label) &&
|
|
213
|
+
isEitherUndefinedOrNull(instance.accessibilityGuidance) &&
|
|
214
|
+
isEitherUndefinedOrNull(instance.externalLabelHTML_ID)
|
|
215
|
+
) {
|
|
216
|
+
Logger.logError({
|
|
217
|
+
errorType: InvalidVuePropertiesCombinationError.NAME,
|
|
218
|
+
title: InvalidVuePropertiesCombinationError.localization.defaultTitle,
|
|
219
|
+
description: InvalidVuePropertiesCombinationError.localization.generateMessage({
|
|
220
|
+
vueComponentName: inheritedComponentNameForLogging,
|
|
221
|
+
messageSpecificPart:
|
|
222
|
+
"From the accessibility requirements, one of next properties must be specified:\n" +
|
|
223
|
+
"● label\n" +
|
|
224
|
+
"● accessibilityGuidance\n" +
|
|
225
|
+
"● externalLabelHTML_ID"
|
|
226
|
+
}),
|
|
227
|
+
occurrenceLocation: `${ inheritedComponentNameForLogging }.beforeCreate()`
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
}
|
|
@@ -8,22 +8,60 @@ ValidatableControlShell.TextBox--YDF(
|
|
|
8
8
|
:mustDisplayAppropriateBadgeIfInputIsOptional="mustDisplayAppropriateBadgeIfInputIsOptional"
|
|
9
9
|
:mustAddInvisibleBadgeForHeightEqualizingWhenNoBadge="mustAddInvisibleBadgeForHeightEqualizingWhenNoBadge"
|
|
10
10
|
|
|
11
|
+
:validationErrorsMessages="validatablePayload.validationErrorsMessages"
|
|
12
|
+
:invalidInputHighlightingIfAnyValidationErrorsMessages="invalidInputHighlightingIfAnyValidationErrorsMessages"
|
|
13
|
+
:validValueHighlightingIfNoValidationErrorsMessages="validInputHighlightingIfNoErrorsMessages"
|
|
14
|
+
|
|
15
|
+
:coreElementHTML_ID="HTML_IDs.inputOrTextarea"
|
|
16
|
+
:labelElementHTML_ID="HTML_IDs.label"
|
|
17
|
+
|
|
18
|
+
:theme="validatableControlShellTheme"
|
|
19
|
+
:areThemesCSS_ClassesCommon="areThemesCSS_ClassesCommon"
|
|
20
|
+
:geometricVariation="validatableControlGeometricVariation"
|
|
21
|
+
:decorativeVariation="validatableControlDecorativeVariation"
|
|
22
|
+
|
|
23
|
+
:class="rootElementModifierCSS_Classes"
|
|
24
|
+
|
|
11
25
|
)
|
|
12
26
|
|
|
13
27
|
textarea.TextBox--YDF-InputOrTextAreaElement(
|
|
14
28
|
v-if="multiline"
|
|
29
|
+
v-model="rawInput"
|
|
15
30
|
:placeholder="placeholder"
|
|
31
|
+
:autocomplete="autocomplete"
|
|
16
32
|
:readonly="readonly"
|
|
17
33
|
:disabled="disabled"
|
|
18
34
|
:required="required"
|
|
35
|
+
:minlength="minimalCharactersCount"
|
|
36
|
+
:maxlength="maximalCharactersCount"
|
|
37
|
+
:id="HTML_IDs.inputOrTextarea"
|
|
38
|
+
:aria-label="accessibilityGuidance"
|
|
39
|
+
:aria-labelledby="externalLabelHTML_ID"
|
|
40
|
+
:ref="INPUT_OR_TEXT_AREA_ELEMENT_VUE_REFERENCE_ID"
|
|
41
|
+
@keydown="onKeyDown"
|
|
42
|
+
@input="$event => { onInput($event.target.value) }"
|
|
43
|
+
@blur="onFocusOut"
|
|
19
44
|
)
|
|
20
45
|
|
|
21
46
|
//- [ Bundler bug ] The `v-else` is being compiled to `v-else="v-else"`
|
|
22
47
|
input.TextBox--YDF-InputOrTextAreaElement(
|
|
23
48
|
v-else-if="!multiline"
|
|
49
|
+
v-model="rawInput"
|
|
24
50
|
:type="HTML_Type"
|
|
25
51
|
:placeholder="placeholder"
|
|
52
|
+
:autocomplete="autocomplete"
|
|
26
53
|
:readonly="readonly"
|
|
27
54
|
:disabled="disabled"
|
|
28
55
|
:required="required"
|
|
56
|
+
:minlength="minimalCharactersCount"
|
|
57
|
+
:maxlength="maximalCharactersCount"
|
|
58
|
+
:min="minimalNumericValue"
|
|
59
|
+
:max="maximalNumericValue"
|
|
60
|
+
:id="HTML_IDs.inputOrTextarea"
|
|
61
|
+
:aria-label="accessibilityGuidance"
|
|
62
|
+
:aria-labelledby="externalLabelHTML_ID"
|
|
63
|
+
:ref="INPUT_OR_TEXT_AREA_ELEMENT_VUE_REFERENCE_ID"
|
|
64
|
+
@keydown="onKeyDown"
|
|
65
|
+
@input="$event => { onInput($event.target.value) }"
|
|
66
|
+
@blur="onFocusOut"
|
|
29
67
|
)
|