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.
Files changed (114) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3762 -3475
  3. package/dist/yuyeon.umd.cjs +6 -6
  4. package/lib/components/date-picker/YDateCalendar.scss +82 -82
  5. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
  6. package/lib/components/dialog/YDialog.mjs +4 -1
  7. package/lib/components/dialog/YDialog.mjs.map +1 -1
  8. package/lib/components/dialog/YDialog.scss +2 -0
  9. package/lib/components/divider/YDivider.mjs.map +1 -1
  10. package/lib/components/dropdown/YDropdown.mjs +11 -5
  11. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  12. package/lib/components/dropdown/YDropdown.scss +3 -8
  13. package/lib/components/field-input/YFieldInput.mjs +22 -15
  14. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  15. package/lib/components/icon/YIcon.mjs +62 -0
  16. package/lib/components/icon/YIcon.mjs.map +1 -0
  17. package/lib/components/icon/YIcon.scss +18 -0
  18. package/lib/components/icon/index.mjs +2 -0
  19. package/lib/components/icon/index.mjs.map +1 -0
  20. package/lib/components/icon/poly.mjs +57 -0
  21. package/lib/components/icon/poly.mjs.map +1 -0
  22. package/lib/components/icons/index.mjs +14 -0
  23. package/lib/components/icons/index.mjs.map +1 -1
  24. package/lib/components/index.mjs +2 -1
  25. package/lib/components/index.mjs.map +1 -1
  26. package/lib/components/input/YInput.mjs +173 -308
  27. package/lib/components/input/YInput.mjs.map +1 -1
  28. package/lib/components/input/index.mjs.map +1 -1
  29. package/lib/components/layer/YLayer.mjs +3 -1
  30. package/lib/components/layer/YLayer.mjs.map +1 -1
  31. package/lib/components/layer/active-stack.mjs.map +1 -1
  32. package/lib/components/menu/YMenu.mjs +16 -4
  33. package/lib/components/menu/YMenu.mjs.map +1 -1
  34. package/lib/components/select/YSelect.mjs +27 -12
  35. package/lib/components/select/YSelect.mjs.map +1 -1
  36. package/lib/components/select/YSelect.scss +3 -8
  37. package/lib/components/tab/types.mjs.map +1 -1
  38. package/lib/components/textarea/YTextarea.mjs +159 -0
  39. package/lib/components/textarea/YTextarea.mjs.map +1 -0
  40. package/lib/components/textarea/YTextarea.scss +25 -0
  41. package/lib/components/textarea/index.mjs +2 -0
  42. package/lib/components/textarea/index.mjs.map +1 -0
  43. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  44. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  45. package/lib/composables/communication.mjs.map +1 -1
  46. package/lib/composables/icon.mjs +161 -0
  47. package/lib/composables/icon.mjs.map +1 -1
  48. package/lib/composables/theme/index.mjs.map +1 -1
  49. package/lib/composables/validation.mjs +101 -0
  50. package/lib/composables/validation.mjs.map +1 -0
  51. package/lib/index.mjs +3 -0
  52. package/lib/index.mjs.map +1 -1
  53. package/lib/styles/util/_mixin.scss +34 -34
  54. package/lib/types/index.mjs.map +1 -1
  55. package/lib/util/date/adapters/yuyeon-date-adapter.mjs +1 -1
  56. package/lib/util/date/adapters/yuyeon-date-adapter.mjs.map +1 -1
  57. package/lib/util/date/built-in.mjs +6 -2
  58. package/lib/util/date/built-in.mjs.map +1 -1
  59. package/package.json +2 -2
  60. package/types/abstract/items.d.ts +4 -4
  61. package/types/components/button/YButton.d.ts +10 -10
  62. package/types/components/checkbox/YInputCheckbox.d.ts +2 -2
  63. package/types/components/date-picker/YDateCalendar.d.ts +10 -4
  64. package/types/components/dialog/YDialog.d.ts +4 -1
  65. package/types/components/dropdown/YDropdown.d.ts +34 -13
  66. package/types/components/field-input/YFieldInput.d.ts +121 -53
  67. package/types/components/form/YForm.d.ts +1 -1
  68. package/types/components/icon/YIcon.d.ts +81 -0
  69. package/types/components/icon/index.d.ts +1 -0
  70. package/types/components/icons/YIconCheckbox.d.ts +2 -2
  71. package/types/components/icons/YIconSort.d.ts +2 -2
  72. package/types/components/icons/index.d.ts +48 -0
  73. package/types/components/index.d.ts +2 -1
  74. package/types/components/input/YInput.d.ts +120 -91
  75. package/types/components/layer/YLayer.d.ts +20 -19
  76. package/types/components/layer/active-stack.d.ts +1 -2
  77. package/types/components/list/YListItem.d.ts +2 -2
  78. package/types/components/menu/YMenu.d.ts +8 -3
  79. package/types/components/pagination/YPagination.d.ts +8 -6
  80. package/types/components/progress-bar/YProgressBar.d.ts +1 -1
  81. package/types/components/select/YSelect.d.ts +1483 -272
  82. package/types/components/snackbar/YSnackbar.d.ts +3 -1
  83. package/types/components/switch/YSwitch.d.ts +1 -1
  84. package/types/components/tab/YTab.d.ts +15 -15
  85. package/types/components/tab/YTabs.d.ts +5 -5
  86. package/types/components/tab/types.d.ts +1 -0
  87. package/types/components/table/YDataTable.d.ts +18 -18
  88. package/types/components/table/YDataTableBody.d.ts +5 -5
  89. package/types/components/table/YDataTableControl.d.ts +2 -2
  90. package/types/components/table/YDataTableHead.d.ts +2 -2
  91. package/types/components/table/YDataTableServer.d.ts +21 -21
  92. package/types/components/table/YTable.d.ts +4 -4
  93. package/types/components/table/composibles/header.d.ts +1 -1
  94. package/types/components/table/composibles/items.d.ts +3 -3
  95. package/types/components/table/composibles/pagination.d.ts +8 -4
  96. package/types/components/table/composibles/selection.d.ts +2 -2
  97. package/types/components/table/composibles/sorting.d.ts +4 -2
  98. package/types/components/textarea/YTextarea.d.ts +664 -0
  99. package/types/components/textarea/index.d.ts +1 -0
  100. package/types/components/tooltip/YTooltip.d.ts +9 -8
  101. package/types/components/tree-view/YTreeView.d.ts +4 -4
  102. package/types/components/tree-view/YTreeViewNode.d.ts +9 -9
  103. package/types/composables/choice.d.ts +1 -1
  104. package/types/composables/communication.d.ts +7 -2
  105. package/types/composables/coordinate/index.d.ts +6 -6
  106. package/types/composables/focus.d.ts +3 -1
  107. package/types/composables/icon.d.ts +96 -0
  108. package/types/composables/list-items.d.ts +10 -10
  109. package/types/composables/theme/index.d.ts +2 -2
  110. package/types/composables/validation.d.ts +75 -0
  111. package/types/globals.d.ts +12 -7
  112. package/types/shims.d.ts +88 -85
  113. package/types/types/index.d.ts +5 -0
  114. package/types/util/date/built-in.d.ts +2 -2
@@ -1,7 +1,11 @@
1
- import { defineComponent, h } from 'vue';
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 { getSlot, propsFactory } from "../../util/vue-component.mjs";
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
- readonly: Boolean,
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
- data() {
62
- const iid = uidCounter.toString();
63
- uidCounter += 1;
64
- return {
65
- iid,
66
- lazyValue: undefined,
67
- inValue: '',
68
- hasMouseDown: false,
69
- errorResult: undefined,
70
- inError: false
71
- };
72
- },
73
- computed: {
74
- classes() {
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': !!this.ceramic,
77
- 'y-input--outlined': !this.ceramic && (this.variations.includes('outlined') || !!this.outlined),
78
- 'y-input--filled': this.variations.includes('filled') || !!this.filled,
79
- 'y-input--focused': this.isFocused,
80
- 'y-input--readonly': !!this.readonly,
81
- 'y-input--has-value': !!this.inValue,
82
- 'y-input--disabled': !!this.disabled,
83
- 'y-input--error': this.isError,
84
- 'y-input--success': this.isSuccess,
85
- [this.themeClasses]: true
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: this.getDisplayHeight()
113
+ width: toStyleSizeValue(props.width),
114
+ height: toStyleSizeValue(props.height)
98
115
  };
99
- },
100
- attrId() {
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
- isError() {
115
- return this.status === 'error' || this.inError;
116
- },
117
- isSuccess() {
118
- return !this.isError && this.status === 'success';
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
- return [];
130
- }
131
- },
132
- methods: {
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
- return slot ? [slot] : [];
158
- },
159
- createLabel() {
160
- const show = !!this.label || !!getSlot(this, 'label');
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 h('label', {
165
- class: {
177
+ return _createVNode("label", {
178
+ "class": [{
166
179
  [`${NAME}__label`]: true,
167
- 'y-input__floating-label': this.floating,
168
- 'y-input__floating-label--floated': this.floating && this.isFloatedLabel
169
- },
170
- '.for': this.attrId
171
- }, this.createLabelSlot());
172
- },
173
- createDefaultChildren() {
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
- created() {
354
- this.inValue = this.modelValue;
355
- },
356
- setup(props) {
357
- const {
358
- themeClasses
359
- } = useLocalTheme(props);
360
- const {
361
- focused: isFocused,
362
- focusedClasses,
363
- whenFocus,
364
- whenBlur
365
- } = useFocus(props, 'y-input');
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":["\nexport * from './YInput';\n"],"mappings":""}
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,