yuyeon 0.0.42-rc2 → 0.0.42-rc24
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/dist/style.css +1 -1
- package/dist/yuyeon.js +3762 -3475
- package/dist/yuyeon.umd.cjs +6 -6
- package/lib/components/date-picker/YDateCalendar.scss +82 -82
- package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
- package/lib/components/dialog/YDialog.mjs +4 -1
- package/lib/components/dialog/YDialog.mjs.map +1 -1
- package/lib/components/dialog/YDialog.scss +2 -0
- package/lib/components/divider/YDivider.mjs.map +1 -1
- package/lib/components/dropdown/YDropdown.mjs +11 -5
- package/lib/components/dropdown/YDropdown.mjs.map +1 -1
- package/lib/components/dropdown/YDropdown.scss +3 -8
- package/lib/components/field-input/YFieldInput.mjs +22 -15
- package/lib/components/field-input/YFieldInput.mjs.map +1 -1
- package/lib/components/icon/YIcon.mjs +62 -0
- package/lib/components/icon/YIcon.mjs.map +1 -0
- package/lib/components/icon/YIcon.scss +18 -0
- package/lib/components/icon/index.mjs +2 -0
- package/lib/components/icon/index.mjs.map +1 -0
- package/lib/components/icon/poly.mjs +57 -0
- package/lib/components/icon/poly.mjs.map +1 -0
- package/lib/components/icons/index.mjs +14 -0
- package/lib/components/icons/index.mjs.map +1 -1
- package/lib/components/index.mjs +2 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/input/YInput.mjs +173 -308
- package/lib/components/input/YInput.mjs.map +1 -1
- package/lib/components/input/index.mjs.map +1 -1
- package/lib/components/layer/YLayer.mjs +3 -1
- package/lib/components/layer/YLayer.mjs.map +1 -1
- package/lib/components/layer/active-stack.mjs.map +1 -1
- package/lib/components/menu/YMenu.mjs +16 -4
- package/lib/components/menu/YMenu.mjs.map +1 -1
- package/lib/components/select/YSelect.mjs +27 -12
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/lib/components/select/YSelect.scss +3 -8
- package/lib/components/tab/types.mjs.map +1 -1
- package/lib/components/textarea/YTextarea.mjs +159 -0
- package/lib/components/textarea/YTextarea.mjs.map +1 -0
- package/lib/components/textarea/YTextarea.scss +25 -0
- package/lib/components/textarea/index.mjs +2 -0
- package/lib/components/textarea/index.mjs.map +1 -0
- package/lib/components/tree-view/YTreeView.mjs.map +1 -1
- package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
- package/lib/composables/communication.mjs.map +1 -1
- package/lib/composables/icon.mjs +161 -0
- package/lib/composables/icon.mjs.map +1 -1
- package/lib/composables/theme/index.mjs.map +1 -1
- package/lib/composables/validation.mjs +101 -0
- package/lib/composables/validation.mjs.map +1 -0
- package/lib/index.mjs +3 -0
- package/lib/index.mjs.map +1 -1
- package/lib/styles/util/_mixin.scss +34 -34
- package/lib/types/index.mjs.map +1 -1
- package/lib/util/date/adapters/yuyeon-date-adapter.mjs +1 -1
- package/lib/util/date/adapters/yuyeon-date-adapter.mjs.map +1 -1
- package/lib/util/date/built-in.mjs +6 -2
- package/lib/util/date/built-in.mjs.map +1 -1
- package/package.json +2 -2
- package/types/abstract/items.d.ts +4 -4
- package/types/components/button/YButton.d.ts +10 -10
- package/types/components/checkbox/YInputCheckbox.d.ts +2 -2
- package/types/components/date-picker/YDateCalendar.d.ts +10 -4
- package/types/components/dialog/YDialog.d.ts +4 -1
- package/types/components/dropdown/YDropdown.d.ts +34 -13
- package/types/components/field-input/YFieldInput.d.ts +121 -53
- package/types/components/form/YForm.d.ts +1 -1
- package/types/components/icon/YIcon.d.ts +81 -0
- package/types/components/icon/index.d.ts +1 -0
- package/types/components/icons/YIconCheckbox.d.ts +2 -2
- package/types/components/icons/YIconSort.d.ts +2 -2
- package/types/components/icons/index.d.ts +48 -0
- package/types/components/index.d.ts +2 -1
- package/types/components/input/YInput.d.ts +120 -91
- package/types/components/layer/YLayer.d.ts +20 -19
- package/types/components/layer/active-stack.d.ts +1 -2
- package/types/components/list/YListItem.d.ts +2 -2
- package/types/components/menu/YMenu.d.ts +8 -3
- package/types/components/pagination/YPagination.d.ts +8 -6
- package/types/components/progress-bar/YProgressBar.d.ts +1 -1
- package/types/components/select/YSelect.d.ts +1483 -272
- package/types/components/snackbar/YSnackbar.d.ts +3 -1
- package/types/components/switch/YSwitch.d.ts +1 -1
- package/types/components/tab/YTab.d.ts +15 -15
- package/types/components/tab/YTabs.d.ts +5 -5
- package/types/components/tab/types.d.ts +1 -0
- package/types/components/table/YDataTable.d.ts +18 -18
- package/types/components/table/YDataTableBody.d.ts +5 -5
- package/types/components/table/YDataTableControl.d.ts +2 -2
- package/types/components/table/YDataTableHead.d.ts +2 -2
- package/types/components/table/YDataTableServer.d.ts +21 -21
- package/types/components/table/YTable.d.ts +4 -4
- package/types/components/table/composibles/header.d.ts +1 -1
- package/types/components/table/composibles/items.d.ts +3 -3
- package/types/components/table/composibles/pagination.d.ts +8 -4
- package/types/components/table/composibles/selection.d.ts +2 -2
- package/types/components/table/composibles/sorting.d.ts +4 -2
- package/types/components/textarea/YTextarea.d.ts +664 -0
- package/types/components/textarea/index.d.ts +1 -0
- package/types/components/tooltip/YTooltip.d.ts +9 -8
- package/types/components/tree-view/YTreeView.d.ts +4 -4
- package/types/components/tree-view/YTreeViewNode.d.ts +9 -9
- package/types/composables/choice.d.ts +1 -1
- package/types/composables/communication.d.ts +7 -2
- package/types/composables/coordinate/index.d.ts +6 -6
- package/types/composables/focus.d.ts +3 -1
- package/types/composables/icon.d.ts +96 -0
- package/types/composables/list-items.d.ts +10 -10
- package/types/composables/theme/index.d.ts +2 -2
- package/types/composables/validation.d.ts +75 -0
- package/types/globals.d.ts +12 -7
- package/types/shims.d.ts +88 -85
- package/types/types/index.d.ts +5 -0
- package/types/util/date/built-in.d.ts +2 -2
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createVNode as _createVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from "vue";
|
|
2
|
+
import { computed, defineComponent, ref, shallowRef, watch } from 'vue';
|
|
3
|
+
import { useRender } from "../../composables/component.mjs";
|
|
2
4
|
import { pressFocusPropsOptions, useFocus } from "../../composables/focus.mjs";
|
|
3
5
|
import { pressThemePropsOptions, useLocalTheme } from "../../composables/theme/index.mjs";
|
|
4
|
-
import {
|
|
6
|
+
import { pressValidationPropsOptions, useValidation } from "../../composables/validation.mjs";
|
|
7
|
+
import { getUid, toStyleSizeValue } from "../../util/index.mjs";
|
|
8
|
+
import { propsFactory } from "../../util/vue-component.mjs";
|
|
5
9
|
import "./YInput.scss";
|
|
6
10
|
const NAME = 'y-input';
|
|
7
11
|
let uidCounter = 0;
|
|
@@ -40,15 +44,7 @@ export const pressYInputPropsOptions = propsFactory({
|
|
|
40
44
|
filled: Boolean,
|
|
41
45
|
ceramic: Boolean,
|
|
42
46
|
// validate
|
|
43
|
-
|
|
44
|
-
disabled: Boolean,
|
|
45
|
-
status: {
|
|
46
|
-
type: String,
|
|
47
|
-
validator(value) {
|
|
48
|
-
return ['success', 'warning', 'error'].includes(value);
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
validators: Array,
|
|
47
|
+
...pressValidationPropsOptions(),
|
|
52
48
|
...pressFocusPropsOptions()
|
|
53
49
|
}, 'YInput');
|
|
54
50
|
export const YInput = defineComponent({
|
|
@@ -58,326 +54,195 @@ export const YInput = defineComponent({
|
|
|
58
54
|
...pressYInputPropsOptions()
|
|
59
55
|
},
|
|
60
56
|
emits: ['error', 'click', 'mousedown', 'mouseup', 'focus', 'blur', 'mousedown:display', 'mouseup:display', 'click:leading', 'update:modelValue', 'update:focused'],
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
57
|
+
slots: Object,
|
|
58
|
+
setup(props, _ref) {
|
|
59
|
+
let {
|
|
60
|
+
slots,
|
|
61
|
+
attrs,
|
|
62
|
+
expose,
|
|
63
|
+
emit
|
|
64
|
+
} = _ref;
|
|
65
|
+
const UID = getUid();
|
|
66
|
+
const {
|
|
67
|
+
themeClasses
|
|
68
|
+
} = useLocalTheme(props);
|
|
69
|
+
const {
|
|
70
|
+
focused: isFocused,
|
|
71
|
+
focusedClasses,
|
|
72
|
+
whenFocus,
|
|
73
|
+
whenBlur
|
|
74
|
+
} = useFocus(props, 'y-input');
|
|
75
|
+
const {
|
|
76
|
+
invokeValidators,
|
|
77
|
+
isError,
|
|
78
|
+
isSuccess,
|
|
79
|
+
errorResult
|
|
80
|
+
} = useValidation(props, NAME, UID);
|
|
81
|
+
const stack$ = ref();
|
|
82
|
+
const display$ = ref();
|
|
83
|
+
const inValue = ref();
|
|
84
|
+
const lazyValue = ref();
|
|
85
|
+
const hasMouseDown = shallowRef(false);
|
|
86
|
+
const variations = computed(() => {
|
|
87
|
+
if (props.variation) {
|
|
88
|
+
return props.variation.split(',').map(value => {
|
|
89
|
+
return value.trim();
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return [];
|
|
93
|
+
});
|
|
94
|
+
const isFloatedLabel = computed(() => {
|
|
95
|
+
return props.floated || !!props.placeholder || !props.placeholder && isFocused.value || !!inValue.value;
|
|
96
|
+
});
|
|
97
|
+
const classes = computed(() => {
|
|
75
98
|
return {
|
|
76
|
-
'y-input--ceramic': !!
|
|
77
|
-
'y-input--outlined': !
|
|
78
|
-
'y-input--filled':
|
|
79
|
-
'y-input--focused':
|
|
80
|
-
'y-input--readonly': !!
|
|
81
|
-
'y-input--has-value': !!
|
|
82
|
-
'y-input--disabled': !!
|
|
83
|
-
'y-input--error':
|
|
84
|
-
'y-input--success':
|
|
85
|
-
[
|
|
99
|
+
'y-input--ceramic': !!props.ceramic,
|
|
100
|
+
'y-input--outlined': !props.ceramic && (variations.value.includes('outlined') || !!props.outlined),
|
|
101
|
+
'y-input--filled': variations.value.includes('filled') || !!props.filled,
|
|
102
|
+
'y-input--focused': isFocused.value,
|
|
103
|
+
'y-input--readonly': !!props.readonly,
|
|
104
|
+
'y-input--has-value': !!inValue.value,
|
|
105
|
+
'y-input--disabled': !!props.disabled,
|
|
106
|
+
'y-input--error': isError.value,
|
|
107
|
+
'y-input--success': isSuccess.value,
|
|
108
|
+
[themeClasses.value]: true
|
|
86
109
|
};
|
|
87
|
-
}
|
|
88
|
-
displayStyles() {
|
|
89
|
-
let {
|
|
90
|
-
width
|
|
91
|
-
} = this;
|
|
92
|
-
if (!Number.isNaN(Number(width))) {
|
|
93
|
-
width = `${width}px`;
|
|
94
|
-
}
|
|
110
|
+
});
|
|
111
|
+
const displayStyles = computed(() => {
|
|
95
112
|
return {
|
|
96
|
-
width,
|
|
97
|
-
height:
|
|
113
|
+
width: toStyleSizeValue(props.width),
|
|
114
|
+
height: toStyleSizeValue(props.height)
|
|
98
115
|
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return this.$attrs.id ?? `y-input--${this.iid}`;
|
|
102
|
-
},
|
|
103
|
-
isFloatedLabel() {
|
|
104
|
-
return this.floated || !!this.placeholder || !this.placeholder && this.isFocused || !!this.inValue;
|
|
105
|
-
},
|
|
106
|
-
formLoading() {
|
|
116
|
+
});
|
|
117
|
+
const formLoading = computed(() => {
|
|
107
118
|
// TODO: composable `form` binding
|
|
108
119
|
// const form$ = (this as any)?.form$ as any;
|
|
109
120
|
// if (form$) {
|
|
110
121
|
// return form$.loading;
|
|
111
122
|
// }
|
|
112
123
|
return false;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
variations() {
|
|
121
|
-
const {
|
|
122
|
-
variation
|
|
123
|
-
} = this;
|
|
124
|
-
if (variation) {
|
|
125
|
-
return variation.split(',').map(value => {
|
|
126
|
-
return value.trim();
|
|
127
|
-
});
|
|
124
|
+
});
|
|
125
|
+
watch(() => props.modelValue, neo => {
|
|
126
|
+
inValue.value = neo;
|
|
127
|
+
});
|
|
128
|
+
watch(() => props.readonly, neo => {
|
|
129
|
+
if (!neo) {
|
|
130
|
+
inValue.value = props.modelValue;
|
|
128
131
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
createPrepend() {
|
|
134
|
-
const slot = getSlot(this, 'prepend');
|
|
135
|
-
return slot ? h('div', {
|
|
136
|
-
class: `${NAME}__prepend`
|
|
137
|
-
}, slot) : undefined;
|
|
138
|
-
},
|
|
139
|
-
createAppend() {
|
|
140
|
-
const slot = getSlot(this, 'append');
|
|
141
|
-
return slot ? h('div', {
|
|
142
|
-
class: `${NAME}__append`
|
|
143
|
-
}, slot) : undefined;
|
|
144
|
-
},
|
|
145
|
-
createLabelSlot() {
|
|
146
|
-
const slot = getSlot(this, 'label');
|
|
147
|
-
if (!slot) {
|
|
148
|
-
if (this.label) {
|
|
149
|
-
return [this.label, this.required ? h('span', {
|
|
150
|
-
class: 'y-input__required-mark'
|
|
151
|
-
}, '*') : undefined];
|
|
152
|
-
}
|
|
153
|
-
if (this.placeholder && !this.inValue) {
|
|
154
|
-
return [this.placeholder];
|
|
155
|
-
}
|
|
132
|
+
});
|
|
133
|
+
watch(inValue, neo => {
|
|
134
|
+
if (!props.readonly) {
|
|
135
|
+
emit('update:modelValue', neo);
|
|
156
136
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
137
|
+
});
|
|
138
|
+
watch(isError, neo => {
|
|
139
|
+
emit('error', neo);
|
|
140
|
+
});
|
|
141
|
+
watch(() => props.focused, neo => {
|
|
142
|
+
if (!neo) {
|
|
143
|
+
invokeValidators();
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
function onClick(event) {
|
|
147
|
+
emit('click', event);
|
|
148
|
+
}
|
|
149
|
+
function onMousedown(e) {
|
|
150
|
+
hasMouseDown.value = true;
|
|
151
|
+
emit('mousedown:display', e);
|
|
152
|
+
}
|
|
153
|
+
function onMouseup(e) {
|
|
154
|
+
hasMouseDown.value = false;
|
|
155
|
+
emit('mouseup:display', e);
|
|
156
|
+
}
|
|
157
|
+
function onFocus(event) {
|
|
158
|
+
whenFocus();
|
|
159
|
+
emit('focus', event);
|
|
160
|
+
}
|
|
161
|
+
function onBlur(event) {
|
|
162
|
+
whenBlur();
|
|
163
|
+
invokeValidators();
|
|
164
|
+
emit('blur', event);
|
|
165
|
+
}
|
|
166
|
+
function onClickLeading(event) {
|
|
167
|
+
emit('click:leading', event);
|
|
168
|
+
}
|
|
169
|
+
function onChange(event) {
|
|
170
|
+
invokeValidators();
|
|
171
|
+
}
|
|
172
|
+
function createLabel() {
|
|
173
|
+
const show = !!props.label || !!slots.label;
|
|
161
174
|
if (!show) {
|
|
162
175
|
return undefined;
|
|
163
176
|
}
|
|
164
|
-
return
|
|
165
|
-
class: {
|
|
177
|
+
return _createVNode("label", {
|
|
178
|
+
"class": [{
|
|
166
179
|
[`${NAME}__label`]: true,
|
|
167
|
-
'y-input__floating-label':
|
|
168
|
-
'y-input__floating-label--floated':
|
|
169
|
-
},
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const {
|
|
175
|
-
modelValue
|
|
176
|
-
} = this;
|
|
177
|
-
return [this.floating ? this.createLabel() : undefined, modelValue?.toString()];
|
|
178
|
-
},
|
|
179
|
-
createDefault() {
|
|
180
|
-
const {
|
|
181
|
-
modelValue,
|
|
182
|
-
formLoading,
|
|
183
|
-
attrId
|
|
184
|
-
} = this;
|
|
185
|
-
const slotContent = getSlot(this, 'default', {
|
|
186
|
-
value: modelValue,
|
|
187
|
-
formLoading,
|
|
188
|
-
attrId
|
|
189
|
-
});
|
|
190
|
-
return slotContent ?? h('div', {
|
|
191
|
-
[`.${NAME}__value`]: true,
|
|
192
|
-
'.data-id': this.attrId,
|
|
193
|
-
'.tabindex': 0,
|
|
194
|
-
onFocus: this.onFocus,
|
|
195
|
-
onBlur: this.onBlur
|
|
196
|
-
}, this.createDefaultChildren());
|
|
197
|
-
},
|
|
198
|
-
createLeading() {
|
|
199
|
-
const slot = getSlot(this, 'leading', {
|
|
200
|
-
error: this.isError
|
|
201
|
-
});
|
|
202
|
-
return slot ? h('div', {
|
|
203
|
-
class: 'y-input__leading',
|
|
204
|
-
onClick: this.onClickLeading
|
|
205
|
-
}, slot) : undefined;
|
|
206
|
-
},
|
|
207
|
-
createTrailing() {
|
|
208
|
-
return getSlot(this, 'trailing');
|
|
209
|
-
},
|
|
210
|
-
getDisplayHeight() {
|
|
211
|
-
const {
|
|
212
|
-
height
|
|
213
|
-
} = this;
|
|
214
|
-
if (!isNaN(Number(height))) {
|
|
215
|
-
return `${height}px`;
|
|
216
|
-
}
|
|
217
|
-
return height;
|
|
218
|
-
},
|
|
219
|
-
createDisplay() {
|
|
220
|
-
return h('div', {
|
|
221
|
-
class: {
|
|
222
|
-
[`${NAME}__display`]: true
|
|
223
|
-
},
|
|
224
|
-
onClick: this.onClick,
|
|
225
|
-
onMousedown: this.onMousedown,
|
|
226
|
-
onMouseup: this.onMouseup,
|
|
227
|
-
ref: 'display',
|
|
228
|
-
style: {
|
|
229
|
-
...this.displayStyles
|
|
230
|
-
}
|
|
231
|
-
}, [h('div', {
|
|
232
|
-
class: `${NAME}__plate`
|
|
233
|
-
}), this.createLeading(), this.createDefault(), this.createTrailing()]);
|
|
234
|
-
},
|
|
235
|
-
createHelperText() {
|
|
236
|
-
const helperTextSlot = getSlot(this, 'helper-text', {
|
|
237
|
-
error: this.status === 'error' || this.inError,
|
|
238
|
-
errorResult: this.errorResult
|
|
239
|
-
});
|
|
240
|
-
const children = [];
|
|
241
|
-
if (helperTextSlot) {
|
|
242
|
-
children.push(h('span', {}, () => helperTextSlot));
|
|
243
|
-
} else {
|
|
244
|
-
children.push(this.errorResult);
|
|
245
|
-
}
|
|
246
|
-
return h('div', {
|
|
247
|
-
class: `${NAME}__helper-text`
|
|
248
|
-
}, children);
|
|
249
|
-
},
|
|
250
|
-
createStackChildren() {
|
|
251
|
-
return [!this.floating ? this.createLabel() : undefined, this.createDisplay(), this.createHelperText()];
|
|
252
|
-
},
|
|
253
|
-
createStack() {
|
|
254
|
-
return h('div', {
|
|
255
|
-
class: `${NAME}__stack`,
|
|
256
|
-
ref: 'stack'
|
|
257
|
-
}, this.createStackChildren());
|
|
258
|
-
},
|
|
259
|
-
createContent() {
|
|
260
|
-
return [this.createPrepend(), this.createStack(), this.createAppend()];
|
|
261
|
-
},
|
|
262
|
-
//
|
|
263
|
-
onClick(event) {
|
|
264
|
-
this.$emit('click', event);
|
|
265
|
-
},
|
|
266
|
-
onMousedown(e) {
|
|
267
|
-
this.hasMouseDown = true;
|
|
268
|
-
this.$emit('mousedown:display', e);
|
|
269
|
-
},
|
|
270
|
-
onMouseup(e) {
|
|
271
|
-
this.hasMouseDown = false;
|
|
272
|
-
this.$emit('mouseup:display', e);
|
|
273
|
-
},
|
|
274
|
-
onFocus(event) {
|
|
275
|
-
this.whenFocus();
|
|
276
|
-
this.$emit('focus', event);
|
|
277
|
-
},
|
|
278
|
-
onBlur(event) {
|
|
279
|
-
this.whenBlur();
|
|
280
|
-
this.invokeValidators();
|
|
281
|
-
this.$emit('blur', event);
|
|
282
|
-
},
|
|
283
|
-
onClickLeading(event) {
|
|
284
|
-
this.$emit('click:leading', event);
|
|
285
|
-
},
|
|
286
|
-
onChange(event) {
|
|
287
|
-
this.invokeValidators();
|
|
288
|
-
},
|
|
289
|
-
//
|
|
290
|
-
invokeValidators() {
|
|
291
|
-
const {
|
|
292
|
-
validators,
|
|
293
|
-
inValue,
|
|
294
|
-
$attrs
|
|
295
|
-
} = this;
|
|
296
|
-
const {
|
|
297
|
-
required
|
|
298
|
-
} = $attrs;
|
|
299
|
-
this.resetError();
|
|
300
|
-
let flag = true;
|
|
301
|
-
if (Array.isArray(validators)) {
|
|
302
|
-
validators.some(validator => {
|
|
303
|
-
const result = validator(inValue);
|
|
304
|
-
if (typeof result === 'string') {
|
|
305
|
-
this.inError = true;
|
|
306
|
-
this.errorResult = result;
|
|
307
|
-
flag = false;
|
|
308
|
-
return true;
|
|
309
|
-
}
|
|
310
|
-
if (result === false) {
|
|
311
|
-
this.inError = true;
|
|
312
|
-
this.errorResult = '';
|
|
313
|
-
flag = false;
|
|
314
|
-
return true;
|
|
315
|
-
}
|
|
316
|
-
return false;
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
if (flag && required && !inValue) {
|
|
320
|
-
this.inError = true;
|
|
321
|
-
return false;
|
|
322
|
-
}
|
|
323
|
-
return flag;
|
|
324
|
-
},
|
|
325
|
-
resetError() {
|
|
326
|
-
this.inError = false;
|
|
327
|
-
this.errorResult = undefined;
|
|
328
|
-
},
|
|
329
|
-
getClasses() {
|
|
330
|
-
return this.classes;
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
watch: {
|
|
334
|
-
modelValue(neo) {
|
|
335
|
-
if (!this.readonly) {
|
|
336
|
-
this.inValue = neo;
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
readonly(neo) {
|
|
340
|
-
if (!neo) {
|
|
341
|
-
this.inValue = this.modelValue;
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
inValue(neo) {
|
|
345
|
-
if (!this.readonly) {
|
|
346
|
-
this.$emit('update:modelValue', neo);
|
|
347
|
-
}
|
|
348
|
-
},
|
|
349
|
-
isError(neo) {
|
|
350
|
-
this.$emit('error', neo);
|
|
180
|
+
'y-input__floating-label': props.floating,
|
|
181
|
+
'y-input__floating-label--floated': props.floating && isFloatedLabel.value
|
|
182
|
+
}],
|
|
183
|
+
"for": `y-input--${UID}`
|
|
184
|
+
}, [slots.label ? slots.label() : props.label ? _createVNode(_Fragment, null, [props.label, props.required && _createVNode("span", {
|
|
185
|
+
"class": 'y-input__required-mark'
|
|
186
|
+
}, [_createTextVNode("*")])]) : props.placeholder && !inValue.value && props.placeholder]);
|
|
351
187
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
188
|
+
expose({
|
|
189
|
+
createLabel,
|
|
190
|
+
invokeValidators
|
|
191
|
+
});
|
|
192
|
+
useRender(() => {
|
|
193
|
+
return _createVNode("div", {
|
|
194
|
+
"class": [`${NAME}`, {
|
|
195
|
+
...classes.value
|
|
196
|
+
}]
|
|
197
|
+
}, [slots.prepend ? () => _createVNode("div", {
|
|
198
|
+
"class": `${NAME}__prepend`
|
|
199
|
+
}, [_createTextVNode("slots.prepend()")]) : undefined, _createVNode("div", {
|
|
200
|
+
"ref": stack$,
|
|
201
|
+
"class": [`${NAME}__stack`]
|
|
202
|
+
}, [!props.floating && createLabel(), _createVNode("div", {
|
|
203
|
+
"ref": display$,
|
|
204
|
+
"class": `${NAME}__display`,
|
|
205
|
+
"style": [{
|
|
206
|
+
...displayStyles.value
|
|
207
|
+
}],
|
|
208
|
+
"onClick": onClick,
|
|
209
|
+
"onMousedown": onMousedown,
|
|
210
|
+
"onMouseup": onMouseup
|
|
211
|
+
}, [_createVNode("div", {
|
|
212
|
+
"class": `${NAME}__plate`
|
|
213
|
+
}, null), slots.leading && _createVNode("div", {
|
|
214
|
+
"class": 'y-input__leading',
|
|
215
|
+
"onClick": onClickLeading
|
|
216
|
+
}, [slots.leading({
|
|
217
|
+
error: isError.value
|
|
218
|
+
})]), slots.default ? slots.default({
|
|
219
|
+
value: props.modelValue,
|
|
220
|
+
formLoading: formLoading.value,
|
|
221
|
+
attrId: `y-input--${UID}`
|
|
222
|
+
}) : _createVNode("div", {
|
|
223
|
+
"class": `${NAME}__value`,
|
|
224
|
+
"data-id": `y-input--${UID}`,
|
|
225
|
+
"tabindex": 0,
|
|
226
|
+
"onFocus": onFocus,
|
|
227
|
+
"onBlur": onBlur
|
|
228
|
+
}, [props.floating && createLabel(), props.modelValue?.toString()]), slots.trailing?.()]), _createVNode("div", {
|
|
229
|
+
"class": `${NAME}__helper-text`
|
|
230
|
+
}, [slots['helper-text'] ? _createVNode("span", null, [slots['helper-text']({
|
|
231
|
+
error: isError.value,
|
|
232
|
+
errorResult: errorResult.value
|
|
233
|
+
})]) : props.helperText ?? errorResult.value])]), slots.append ? () => _createVNode("div", {
|
|
234
|
+
"class": `${NAME}__append`
|
|
235
|
+
}, [_createTextVNode("slots.append()")]) : undefined]);
|
|
236
|
+
});
|
|
366
237
|
return {
|
|
367
238
|
themeClasses,
|
|
368
239
|
isFocused,
|
|
369
240
|
focusedClasses,
|
|
370
241
|
whenFocus,
|
|
371
|
-
whenBlur
|
|
242
|
+
whenBlur,
|
|
243
|
+
createLabel,
|
|
244
|
+
invokeValidators
|
|
372
245
|
};
|
|
373
|
-
},
|
|
374
|
-
render() {
|
|
375
|
-
return h('div', {
|
|
376
|
-
class: {
|
|
377
|
-
...this.getClasses(),
|
|
378
|
-
[`${NAME}`]: true
|
|
379
|
-
}
|
|
380
|
-
}, this.createContent());
|
|
381
246
|
}
|
|
382
247
|
});
|
|
383
248
|
//# sourceMappingURL=YInput.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YInput.mjs","names":["defineComponent","h","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","getSlot","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","readonly","disabled","status","validator","value","includes","validators","YInput","props","emits","data","iid","toString","lazyValue","undefined","inValue","hasMouseDown","errorResult","inError","computed","classes","variations","isFocused","isError","isSuccess","themeClasses","displayStyles","isNaN","getDisplayHeight","attrId","$attrs","id","isFloatedLabel","formLoading","split","map","trim","methods","createPrepend","slot","class","createAppend","createLabelSlot","createLabel","show","createDefaultChildren","createDefault","slotContent","onFocus","onBlur","createLeading","error","onClick","onClickLeading","createTrailing","createDisplay","onMousedown","onMouseup","ref","style","createHelperText","helperTextSlot","children","push","createStackChildren","createStack","createContent","event","$emit","e","whenFocus","whenBlur","invokeValidators","onChange","resetError","flag","isArray","some","result","getClasses","watch","neo","created","setup","focused","focusedClasses","render"],"sources":["../../../src/components/input/YInput.ts"],"sourcesContent":["import {\r\n PropType,\r\n VNode,\r\n defineComponent,\r\n h,\r\n resolveDirective,\r\n withDirectives,\r\n} from 'vue';\r\n\r\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport DiMixin from '../../mixins/di';\r\nimport { getSlot, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YInput.scss';\r\n\r\nconst NAME = 'y-input';\r\nlet uidCounter = 0;\r\n\r\nexport const pressYInputPropsOptions = propsFactory(\r\n {\r\n name: String,\r\n width: {\r\n type: [String, Number] as PropType<string | number>,\r\n },\r\n height: [Number, String],\r\n displayTag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n label: String as PropType<string>,\r\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\r\n autoSelect: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n floating: { type: Boolean as PropType<boolean>, default: false },\r\n floated: { type: Boolean as PropType<boolean>, default: () => false },\r\n placeholder: String as PropType<string>,\r\n required: Boolean as PropType<boolean>,\r\n loading: Boolean as PropType<boolean>,\r\n // variations\r\n variation: String as PropType<string>,\r\n outlined: Boolean as PropType<boolean>,\r\n filled: Boolean as PropType<boolean>,\r\n ceramic: Boolean as PropType<boolean>,\r\n // validate\r\n readonly: Boolean as PropType<boolean>,\r\n disabled: Boolean as PropType<boolean>,\r\n status: {\r\n type: String as PropType<'success' | 'warning' | 'error' | undefined>,\r\n validator(value: string) {\r\n return ['success', 'warning', 'error'].includes(value);\r\n },\r\n },\r\n validators: Array as PropType<((v: any) => boolean | string)[] | string[]>,\r\n ...pressFocusPropsOptions(),\r\n },\r\n 'YInput',\r\n);\r\n\r\nexport const YInput = defineComponent({\r\n name: 'YInput',\r\n\r\n props: {\r\n ...pressThemePropsOptions(),\r\n ...pressYInputPropsOptions(),\r\n },\r\n emits: [\r\n 'error',\r\n 'click',\r\n 'mousedown',\r\n 'mouseup',\r\n 'focus',\r\n 'blur',\r\n 'mousedown:display',\r\n 'mouseup:display',\r\n 'click:leading',\r\n 'update:modelValue',\r\n 'update:focused',\r\n ],\r\n data() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n return {\r\n iid,\r\n lazyValue: undefined as string | undefined,\r\n inValue: '' as string | number | undefined,\r\n hasMouseDown: false,\r\n errorResult: undefined as string | undefined,\r\n inError: false,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n return {\r\n 'y-input--ceramic': !!this.ceramic,\r\n 'y-input--outlined':\r\n !this.ceramic &&\r\n (this.variations.includes('outlined') || !!this.outlined),\r\n 'y-input--filled': this.variations.includes('filled') || !!this.filled,\r\n 'y-input--focused': this.isFocused,\r\n 'y-input--readonly': !!this.readonly,\r\n 'y-input--has-value': !!this.inValue,\r\n 'y-input--disabled': !!this.disabled,\r\n 'y-input--error': this.isError,\r\n 'y-input--success': this.isSuccess,\r\n [this.themeClasses as string]: true,\r\n };\r\n },\r\n displayStyles(): Record<string, any> {\r\n let { width } = this;\r\n if (!Number.isNaN(Number(width))) {\r\n width = `${width}px`;\r\n }\r\n return {\r\n width,\r\n height: this.getDisplayHeight(),\r\n };\r\n },\r\n attrId(): string {\r\n return (this.$attrs.id as string) ?? `y-input--${this.iid}`;\r\n },\r\n isFloatedLabel(): boolean {\r\n return (\r\n this.floated ||\r\n !!this.placeholder ||\r\n (!this.placeholder && this.isFocused) ||\r\n !!this.inValue\r\n );\r\n },\r\n formLoading(): boolean {\r\n // TODO: composable `form` binding\r\n // const form$ = (this as any)?.form$ as any;\r\n // if (form$) {\r\n // return form$.loading;\r\n // }\r\n return false;\r\n },\r\n isError(): boolean {\r\n return this.status === 'error' || this.inError;\r\n },\r\n isSuccess(): boolean {\r\n return !this.isError && this.status === 'success';\r\n },\r\n variations(): string[] {\r\n const { variation } = this;\r\n if (variation) {\r\n return variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n },\r\n },\r\n methods: {\r\n createPrepend(): VNode | undefined {\r\n const slot = getSlot(this, 'prepend');\r\n return slot ? h('div', { class: `${NAME}__prepend` }, slot) : undefined;\r\n },\r\n createAppend(): VNode | undefined {\r\n const slot = getSlot(this, 'append');\r\n return slot ? h('div', { class: `${NAME}__append` }, slot) : undefined;\r\n },\r\n createLabelSlot(): (VNode | string | VNode[] | undefined)[] {\r\n const slot: VNode[] | undefined = getSlot(this, 'label');\r\n if (!slot) {\r\n if (this.label) {\r\n return [\r\n this.label,\r\n this.required ? h('span', { class: 'y-input__required-mark' }, '*') : undefined,\r\n ];\r\n }\r\n if (this.placeholder && !this.inValue) {\r\n return [this.placeholder];\r\n }\r\n }\r\n\r\n return slot ? [slot] : [];\r\n },\r\n createLabel(): VNode | undefined {\r\n const show = !!this.label || !!getSlot(this, 'label');\r\n if (!show) {\r\n return undefined;\r\n }\r\n return h(\r\n 'label',\r\n {\r\n class: {\r\n [`${NAME}__label`]: true,\r\n 'y-input__floating-label': this.floating,\r\n 'y-input__floating-label--floated':\r\n this.floating && this.isFloatedLabel,\r\n },\r\n '.for': this.attrId,\r\n },\r\n this.createLabelSlot(),\r\n );\r\n },\r\n createDefaultChildren(): (VNode | undefined | VNode[] | string)[] {\r\n const { modelValue } = this;\r\n return [\r\n this.floating ? this.createLabel() : undefined,\r\n modelValue?.toString(),\r\n ];\r\n },\r\n createDefault(): VNode[] | VNode {\r\n const { modelValue, formLoading, attrId } = this;\r\n const slotContent = getSlot(this, 'default', {\r\n value: modelValue,\r\n formLoading,\r\n attrId,\r\n });\r\n return (\r\n slotContent ??\r\n h(\r\n 'div',\r\n {\r\n [`.${NAME}__value`]: true,\r\n '.data-id': this.attrId,\r\n '.tabindex': 0,\r\n onFocus: this.onFocus,\r\n onBlur: this.onBlur,\r\n },\r\n this.createDefaultChildren(),\r\n )\r\n );\r\n },\r\n createLeading(): VNode | undefined {\r\n const slot = getSlot(this, 'leading', { error: this.isError });\r\n return slot\r\n ? h(\r\n 'div',\r\n {\r\n class: 'y-input__leading',\r\n onClick: this.onClickLeading,\r\n },\r\n slot,\r\n )\r\n : undefined;\r\n },\r\n createTrailing(): VNode | VNode[] | undefined {\r\n return getSlot(this, 'trailing');\r\n },\r\n getDisplayHeight() {\r\n const { height } = this;\r\n if (!isNaN(Number(height))) {\r\n return `${height}px`;\r\n }\r\n return height;\r\n },\r\n createDisplay(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: {\r\n [`${NAME}__display`]: true,\r\n },\r\n onClick: this.onClick,\r\n onMousedown: this.onMousedown,\r\n onMouseup: this.onMouseup,\r\n ref: 'display',\r\n style: {\r\n ...this.displayStyles,\r\n },\r\n },\r\n [\r\n h('div', { class: `${NAME}__plate` }),\r\n this.createLeading(),\r\n this.createDefault(),\r\n this.createTrailing(),\r\n ],\r\n );\r\n },\r\n createHelperText(): VNode {\r\n const helperTextSlot = getSlot(this, 'helper-text', {\r\n error: this.status === 'error' || this.inError,\r\n errorResult: this.errorResult,\r\n });\r\n const children = [];\r\n if (helperTextSlot) {\r\n children.push(h('span', {}, () => helperTextSlot));\r\n } else {\r\n children.push(this.errorResult);\r\n }\r\n return h('div', { class: `${NAME}__helper-text` }, children);\r\n },\r\n createStackChildren(): (VNode | undefined)[] {\r\n return [\r\n !this.floating ? this.createLabel() : undefined,\r\n this.createDisplay(),\r\n this.createHelperText(),\r\n ];\r\n },\r\n createStack(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: `${NAME}__stack`,\r\n ref: 'stack',\r\n },\r\n this.createStackChildren(),\r\n );\r\n },\r\n createContent(): (VNode | undefined)[] {\r\n return [this.createPrepend(), this.createStack(), this.createAppend()];\r\n },\r\n //\r\n onClick(event: MouseEvent) {\r\n this.$emit('click', event);\r\n },\r\n onMousedown(e: Event) {\r\n this.hasMouseDown = true;\r\n this.$emit('mousedown:display', e);\r\n },\r\n onMouseup(e: Event) {\r\n this.hasMouseDown = false;\r\n this.$emit('mouseup:display', e);\r\n },\r\n onFocus(event: FocusEvent) {\r\n this.whenFocus();\r\n this.$emit('focus', event);\r\n },\r\n onBlur(event: FocusEvent) {\r\n this.whenBlur();\r\n this.invokeValidators();\r\n this.$emit('blur', event);\r\n },\r\n onClickLeading(event: MouseEvent) {\r\n this.$emit('click:leading', event);\r\n },\r\n onChange(event?: Event) {\r\n this.invokeValidators();\r\n },\r\n //\r\n invokeValidators(): boolean {\r\n const { validators, inValue, $attrs } = this;\r\n const { required } = $attrs;\r\n this.resetError();\r\n let flag = true;\r\n if (Array.isArray(validators)) {\r\n validators.some((validator: any) => {\r\n const result = validator(inValue);\r\n if (typeof result === 'string') {\r\n this.inError = true;\r\n this.errorResult = result;\r\n flag = false;\r\n return true;\r\n }\r\n if (result === false) {\r\n this.inError = true;\r\n this.errorResult = '';\r\n flag = false;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n if (flag && required && !inValue) {\r\n this.inError = true;\r\n return false;\r\n }\r\n return flag;\r\n },\r\n resetError() {\r\n this.inError = false;\r\n this.errorResult = undefined;\r\n },\r\n getClasses() {\r\n return this.classes;\r\n },\r\n },\r\n watch: {\r\n modelValue(neo: string) {\r\n if (!this.readonly) {\r\n this.inValue = neo;\r\n }\r\n },\r\n readonly(neo: boolean) {\r\n if (!neo) {\r\n this.inValue = this.modelValue;\r\n }\r\n },\r\n inValue(neo: string) {\r\n if (!this.readonly) {\r\n this.$emit('update:modelValue', neo);\r\n }\r\n },\r\n isError(neo: boolean) {\r\n this.$emit('error', neo);\r\n },\r\n },\r\n created() {\r\n this.inValue = this.modelValue;\r\n },\r\n setup(props) {\r\n const { themeClasses } = useLocalTheme(props);\r\n const {\r\n focused: isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n } = useFocus(props, 'y-input');\r\n return {\r\n themeClasses,\r\n isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n };\r\n },\r\n render(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: { ...this.getClasses(), [`${NAME}`]: true },\r\n },\r\n this.createContent(),\r\n );\r\n },\r\n});\r\n\r\nexport type YInput = InstanceType<typeof YInput>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YInput.mjs","names":["computed","defineComponent","ref","shallowRef","watch","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","getUid","toStyleSizeValue","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","invokeValidators","isError","isSuccess","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","readonly","disabled","displayStyles","formLoading","neo","onClick","event","onMousedown","e","onMouseup","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","_createVNode","_Fragment","_createTextVNode","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n PropType,\n SlotsType,\n VNode,\n computed,\n defineComponent,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '../../composables/validation';\nimport { getUid, toStyleSizeValue } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n },\n 'YInput',\n);\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: { value: any; formLoading: boolean; attrId: string };\n leading: { error: boolean };\n trailing: any;\n 'helper-text': { error: boolean; errorResult: string | undefined };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const { invokeValidators, isError, isSuccess, errorResult } = useValidation(\n props,\n NAME,\n UID,\n );\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': !!props.readonly,\n 'y-input--has-value': !!inValue.value,\n 'y-input--disabled': !!props.disabled,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n [themeClasses.value as string]: true,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n const formLoading = computed(() => {\n // TODO: composable `form` binding\n // const form$ = (this as any)?.form$ as any;\n // if (form$) {\n // return form$.loading;\n // }\n return false;\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!props.readonly) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n createLabel,\n invokeValidators,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend\n ? () => <div class={`${NAME}__prepend`}>slots.prepend()</div>\n : undefined}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n formLoading: formLoading.value,\n attrId: `y-input--${UID}`,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n props.helperText ?? errorResult.value\n )}\n </div>\n </div>\n {slots.append\n ? () => <div class={`${NAME}__append`}>slots.append()</div>\n : undefined}\n </div>\n );\n });\n\n return {\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/input/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/input/index.ts"],"sourcesContent":["export * from './YInput';\r\n"],"mappings":""}
|
|
@@ -208,12 +208,13 @@ export const YLayer = defineComponent({
|
|
|
208
208
|
expose({
|
|
209
209
|
scrim$,
|
|
210
210
|
base$,
|
|
211
|
-
content
|
|
211
|
+
content$: content$.value,
|
|
212
212
|
baseEl,
|
|
213
213
|
active,
|
|
214
214
|
onAfterUpdate,
|
|
215
215
|
updateCoordinate,
|
|
216
216
|
hovered,
|
|
217
|
+
finish,
|
|
217
218
|
modal: computed(() => props.modal),
|
|
218
219
|
getActiveLayers,
|
|
219
220
|
isMe: vnode => {
|
|
@@ -286,6 +287,7 @@ export const YLayer = defineComponent({
|
|
|
286
287
|
complementClickOption,
|
|
287
288
|
layerGroup,
|
|
288
289
|
active,
|
|
290
|
+
finish,
|
|
289
291
|
rendered,
|
|
290
292
|
lazyValue,
|
|
291
293
|
onAfterUpdate: onAfterUpdate,
|