vuetify 3.5.16 → 3.5.18
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/json/attributes.json +226 -30
- package/dist/json/importMap-labs.json +12 -8
- package/dist/json/importMap.json +114 -114
- package/dist/json/tags.json +54 -0
- package/dist/json/web-types.json +607 -84
- package/dist/vuetify-labs.css +2293 -2267
- package/dist/vuetify-labs.d.ts +742 -64
- package/dist/vuetify-labs.esm.js +365 -132
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +364 -131
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2324 -2298
- package/dist/vuetify.d.ts +120 -55
- package/dist/vuetify.esm.js +177 -104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +176 -103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +183 -179
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/index.d.mts +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +1 -1
- package/lib/components/VBtn/index.d.mts +1 -0
- package/lib/components/VBtnToggle/index.d.mts +1 -0
- package/lib/components/VCard/VCard.css +3 -3
- package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +1 -0
- package/lib/components/VChip/VChip.css +1 -1
- package/lib/components/VChip/VChip.sass +1 -0
- package/lib/components/VChipGroup/index.d.mts +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +8 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +12 -2
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +6 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +39 -0
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs.map +1 -0
- package/lib/components/VDialog/index.d.mts +4 -10
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +17 -5
- package/lib/components/VInput/VInput.mjs +6 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.mts +6 -0
- package/lib/components/VList/VList.mjs +2 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +16 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +11 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.mts +21 -0
- package/lib/components/VRangeSlider/index.d.mts +6 -0
- package/lib/components/VSelect/VSelect.mjs +5 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +1 -0
- package/lib/components/VSlider/index.d.mts +6 -0
- package/lib/components/VSnackbar/VSnackbar.css +18 -4
- package/lib/components/VSnackbar/VSnackbar.mjs +34 -9
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +19 -3
- package/lib/components/VSwitch/VSwitch.css +14 -2
- package/lib/components/VSwitch/VSwitch.sass +8 -2
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VTabs/index.d.mts +1 -0
- package/lib/components/VTextField/index.d.mts +15 -3
- package/lib/components/VTextarea/index.d.mts +15 -3
- package/lib/components/VWindow/index.d.mts +1 -0
- package/lib/components/index.d.mts +85 -21
- package/lib/composables/directiveComponent.mjs +4 -2
- package/lib/composables/directiveComponent.mjs.map +1 -1
- package/lib/composables/group.mjs +10 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +35 -34
- package/lib/labs/VCalendar/VCalendar.css +0 -1
- package/lib/labs/VCalendar/VCalendar.sass +0 -2
- package/lib/labs/VEmptyState/VEmptyState.css +3 -3
- package/lib/labs/VFab/VFab.css +1 -0
- package/lib/labs/VFab/VFab.mjs +3 -2
- package/lib/labs/VFab/VFab.mjs.map +1 -1
- package/lib/labs/VFab/VFab.sass +1 -0
- package/lib/labs/VFab/index.d.mts +10 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +79 -24
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +56 -29
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +112 -0
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs.map +1 -0
- package/lib/labs/VSnackbarQueue/index.d.mts +2693 -0
- package/lib/labs/VSnackbarQueue/index.mjs +2 -0
- package/lib/labs/VSnackbarQueue/index.mjs.map +1 -0
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +1 -2
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.mjs +1 -3
- package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +6 -13
- package/lib/labs/components.d.mts +2893 -282
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +43 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/km.mjs +1 -0
- package/lib/locale/km.mjs.map +1 -1
- package/lib/locale/ko.mjs +9 -8
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +78 -78
- package/lib/styles/settings/_variables.scss +21 -14
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment as _Fragment,
|
|
1
|
+
import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VNumberInput.css";
|
|
4
4
|
|
|
@@ -10,8 +10,8 @@ import { filterFieldProps, makeVFieldProps, VField } from "../../components/VFie
|
|
|
10
10
|
import { makeVInputProps, VInput } from "../../components/VInput/VInput.mjs"; // Composables
|
|
11
11
|
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
|
12
12
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
13
|
-
import { computed, ref } from 'vue';
|
|
14
|
-
import { filterInputAttrs, genericComponent, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
13
|
+
import { computed, ref, watchEffect } from 'vue';
|
|
14
|
+
import { clamp, filterInputAttrs, genericComponent, getDecimals, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
15
|
const makeVNumberInputProps = propsFactory({
|
|
16
16
|
controlVariant: {
|
|
17
17
|
type: String,
|
|
@@ -19,9 +19,18 @@ const makeVNumberInputProps = propsFactory({
|
|
|
19
19
|
},
|
|
20
20
|
inset: Boolean,
|
|
21
21
|
hideInput: Boolean,
|
|
22
|
-
min:
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
min: {
|
|
23
|
+
type: Number,
|
|
24
|
+
default: -Infinity
|
|
25
|
+
},
|
|
26
|
+
max: {
|
|
27
|
+
type: Number,
|
|
28
|
+
default: Infinity
|
|
29
|
+
},
|
|
30
|
+
step: {
|
|
31
|
+
type: Number,
|
|
32
|
+
default: 1
|
|
33
|
+
},
|
|
25
34
|
...only(makeVInputProps(), ['density', 'disabled', 'focused', 'hideDetails', 'hint', 'label', 'persistentHint', 'readonly']),
|
|
26
35
|
...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
|
|
27
36
|
...makeFocusProps()
|
|
@@ -32,8 +41,8 @@ export const VNumberInput = genericComponent()({
|
|
|
32
41
|
props: {
|
|
33
42
|
...makeVNumberInputProps(),
|
|
34
43
|
modelValue: {
|
|
35
|
-
type:
|
|
36
|
-
default:
|
|
44
|
+
type: Number,
|
|
45
|
+
default: undefined
|
|
37
46
|
}
|
|
38
47
|
},
|
|
39
48
|
emits: {
|
|
@@ -52,20 +61,45 @@ export const VNumberInput = genericComponent()({
|
|
|
52
61
|
blur
|
|
53
62
|
} = useFocus(props);
|
|
54
63
|
const inputRef = ref();
|
|
64
|
+
const stepDecimals = computed(() => getDecimals(props.step));
|
|
65
|
+
const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
|
|
66
|
+
const canIncrease = computed(() => {
|
|
67
|
+
if (model.value == null) return true;
|
|
68
|
+
return model.value + props.step <= props.max;
|
|
69
|
+
});
|
|
70
|
+
const canDecrease = computed(() => {
|
|
71
|
+
if (model.value == null) return true;
|
|
72
|
+
return model.value - props.step >= props.min;
|
|
73
|
+
});
|
|
74
|
+
watchEffect(() => {
|
|
75
|
+
if (model.value != null && (model.value < props.min || model.value > props.max)) {
|
|
76
|
+
model.value = clamp(model.value, props.min, props.max);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
55
79
|
function onFocus() {
|
|
56
80
|
if (!isFocused.value) focus();
|
|
57
81
|
}
|
|
58
82
|
const controlVariant = computed(() => {
|
|
59
83
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
60
84
|
});
|
|
85
|
+
const incrementSlotProps = computed(() => ({
|
|
86
|
+
click: onClickUp
|
|
87
|
+
}));
|
|
88
|
+
const decrementSlotProps = computed(() => ({
|
|
89
|
+
click: onClickDown
|
|
90
|
+
}));
|
|
61
91
|
function toggleUpDown() {
|
|
62
92
|
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
93
|
+
if (model.value == null) {
|
|
94
|
+
model.value = 0;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const decimals = Math.max(modelDecimals.value, stepDecimals.value);
|
|
63
98
|
if (increment) {
|
|
64
|
-
|
|
99
|
+
if (canIncrease.value) model.value = +(model.value + props.step).toFixed(decimals);
|
|
65
100
|
} else {
|
|
66
|
-
|
|
101
|
+
if (canDecrease.value) model.value = +(model.value - props.step).toFixed(decimals);
|
|
67
102
|
}
|
|
68
|
-
if (inputRef.value) model.value = parseInt(inputRef.value.value, 10);
|
|
69
103
|
}
|
|
70
104
|
function onClickUp() {
|
|
71
105
|
toggleUpDown();
|
|
@@ -73,12 +107,28 @@ export const VNumberInput = genericComponent()({
|
|
|
73
107
|
function onClickDown() {
|
|
74
108
|
toggleUpDown(false);
|
|
75
109
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
110
|
+
function onKeydown(e) {
|
|
111
|
+
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) || e.ctrlKey) return;
|
|
112
|
+
if (['ArrowDown'].includes(e.key)) {
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
toggleUpDown(false);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (['ArrowUp'].includes(e.key)) {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
toggleUpDown();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Only numbers, +, - & . are allowed
|
|
124
|
+
if (!/^[0-9\-+.]+$/.test(e.key)) {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function onInput(e) {
|
|
129
|
+
const el = e.target;
|
|
130
|
+
model.value = el.value ? +el.value : undefined;
|
|
131
|
+
}
|
|
82
132
|
useRender(() => {
|
|
83
133
|
const fieldProps = filterFieldProps(props);
|
|
84
134
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
@@ -91,9 +141,11 @@ export const VNumberInput = genericComponent()({
|
|
|
91
141
|
return _createVNode("div", {
|
|
92
142
|
"class": "v-number-input__control"
|
|
93
143
|
}, [!slots.decrement ? _createVNode(VBtn, {
|
|
144
|
+
"disabled": !canDecrease.value,
|
|
94
145
|
"flat": true,
|
|
95
146
|
"key": "decrement-btn",
|
|
96
147
|
"height": defaultHeight,
|
|
148
|
+
"name": "decrement-btn",
|
|
97
149
|
"icon": "$expand",
|
|
98
150
|
"size": "small",
|
|
99
151
|
"onClick": onClickDown
|
|
@@ -101,6 +153,7 @@ export const VNumberInput = genericComponent()({
|
|
|
101
153
|
"key": "decrement-defaults",
|
|
102
154
|
"defaults": {
|
|
103
155
|
VBtn: {
|
|
156
|
+
disabled: !canDecrease.value,
|
|
104
157
|
flat: true,
|
|
105
158
|
height: defaultHeight,
|
|
106
159
|
size: 'small',
|
|
@@ -112,9 +165,11 @@ export const VNumberInput = genericComponent()({
|
|
|
112
165
|
}), _createVNode(VDivider, {
|
|
113
166
|
"vertical": controlVariant.value !== 'stacked'
|
|
114
167
|
}, null), !slots.increment ? _createVNode(VBtn, {
|
|
168
|
+
"disabled": !canIncrease.value,
|
|
115
169
|
"flat": true,
|
|
116
170
|
"key": "increment-btn",
|
|
117
171
|
"height": defaultHeight,
|
|
172
|
+
"name": "increment-btn",
|
|
118
173
|
"icon": "$collapse",
|
|
119
174
|
"onClick": onClickUp,
|
|
120
175
|
"size": "small"
|
|
@@ -122,6 +177,7 @@ export const VNumberInput = genericComponent()({
|
|
|
122
177
|
"key": "increment-defaults",
|
|
123
178
|
"defaults": {
|
|
124
179
|
VBtn: {
|
|
180
|
+
disabled: !canIncrease.value,
|
|
125
181
|
flat: true,
|
|
126
182
|
height: defaultHeight,
|
|
127
183
|
size: 'small',
|
|
@@ -163,17 +219,16 @@ export const VNumberInput = genericComponent()({
|
|
|
163
219
|
...slotProps
|
|
164
220
|
}
|
|
165
221
|
} = _ref2;
|
|
166
|
-
return
|
|
222
|
+
return _createVNode("input", _mergeProps({
|
|
167
223
|
"ref": inputRef,
|
|
168
|
-
"type": "
|
|
169
|
-
"
|
|
224
|
+
"type": "text",
|
|
225
|
+
"value": model.value,
|
|
226
|
+
"onInput": onInput,
|
|
227
|
+
"onKeydown": onKeydown,
|
|
170
228
|
"class": fieldClass,
|
|
171
|
-
"max": props.max,
|
|
172
|
-
"min": props.min,
|
|
173
|
-
"step": props.step,
|
|
174
229
|
"onFocus": onFocus,
|
|
175
230
|
"onBlur": blur
|
|
176
|
-
}, inputAttrs), null)
|
|
231
|
+
}, inputAttrs), null);
|
|
177
232
|
},
|
|
178
233
|
'append-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
|
|
179
234
|
"class": "v-number-input__control"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","filterFieldProps","makeVFieldProps","VField","makeVInputProps","VInput","makeFocusProps","useFocus","useProxiedModel","computed","ref","filterInputAttrs","genericComponent","only","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","max","step","VNumberInput","name","inheritAttrs","props","modelValue","emits","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","inputRef","onFocus","value","toggleUpDown","increment","arguments","length","undefined","stepUp","stepDown","parseInt","onClickUp","onClickDown","incrementSlotProps","click","decrementSlotProps","fieldProps","rootAttrs","inputAttrs","_","inputProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","flat","height","size","icon","dividerNode","_mergeProps","reverse","class","style","_ref2","fieldClass","slotProps","_withDirectives","$event","_vModelText","_Fragment"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: Number,\n max: Number,\n step: Number,\n\n ...only(makeVInputProps(), [\n 'density',\n 'disabled',\n 'focused',\n 'hideDetails',\n 'hint',\n 'label',\n 'persistentHint',\n 'readonly',\n ]),\n ...only(makeVFieldProps(), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'reverse',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n ...makeFocusProps(),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const inputRef = ref<HTMLInputElement>()\n\n function onFocus () {\n if (!isFocused.value) focus()\n }\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n function toggleUpDown (increment = true) {\n if (increment) {\n inputRef.value?.stepUp()\n } else {\n inputRef.value?.stepDown()\n }\n\n if (inputRef.value) model.value = parseInt(inputRef.value.value, 10)\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n useRender(() => {\n const fieldProps = filterFieldProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n icon=\"$expand\"\n size=\"small\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n return (\n <VInput\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: () => (\n <VField\n { ...fieldProps }\n active\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <input\n ref={ inputRef }\n type=\"number\"\n v-model={ model.value }\n class={ fieldClass }\n max={ props.max }\n min={ props.min }\n step={ props.step }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...inputAttrs }\n />\n ),\n 'append-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? () => <>{ dividerNode() }{ controlNode() }</>\n : undefined),\n 'prepend-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? () => <>{ controlNode() }{ dividerNode() }</>\n : undefined),\n }}\n </VField>\n ),\n }}\n </VInput>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","filterFieldProps","makeVFieldProps","VField","makeVInputProps","VInput","makeFocusProps","useFocus","useProxiedModel","computed","ref","watchEffect","clamp","filterInputAttrs","genericComponent","getDecimals","only","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","modelValue","undefined","emits","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","inputRef","stepDecimals","modelDecimals","value","canIncrease","canDecrease","onFocus","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","decimals","Math","toFixed","onKeydown","e","includes","key","ctrlKey","preventDefault","test","onInput","el","target","fieldProps","rootAttrs","inputAttrs","_","inputProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","_mergeProps","reverse","class","style","_ref2","fieldClass","slotProps","_Fragment"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { clamp, filterInputAttrs, genericComponent, getDecimals, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...only(makeVInputProps(), [\n 'density',\n 'disabled',\n 'focused',\n 'hideDetails',\n 'hint',\n 'label',\n 'persistentHint',\n 'readonly',\n ]),\n ...only(makeVFieldProps(), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'reverse',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n ...makeFocusProps(),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n\n modelValue: {\n type: Number,\n default: undefined,\n },\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const inputRef = ref<HTMLInputElement>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n function onFocus () {\n if (!isFocused.value) focus()\n }\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value ? +(el.value) : undefined\n }\n\n useRender(() => {\n const fieldProps = filterFieldProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n return (\n <VInput\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: () => (\n <VField\n { ...fieldProps }\n active\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <input\n ref={ inputRef }\n type=\"text\"\n value={ model.value }\n onInput={ onInput }\n onKeydown={ onKeydown }\n class={ fieldClass }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...inputAttrs }\n />\n ),\n 'append-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? () => <>{ dividerNode() }{ controlNode() }</>\n : undefined),\n 'prepend-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? () => <>{ controlNode() }{ dividerNode() }</>\n : undefined),\n }}\n </VField>\n ),\n }}\n </VInput>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,11 +50,13 @@ declare const VNumberInput: {
|
|
|
50
50
|
disabled: boolean;
|
|
51
51
|
focused: boolean;
|
|
52
52
|
readonly: boolean | null;
|
|
53
|
-
modelValue: string | number;
|
|
54
53
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
55
54
|
inset: boolean;
|
|
56
55
|
density: Density;
|
|
56
|
+
max: number;
|
|
57
57
|
persistentHint: boolean;
|
|
58
|
+
min: number;
|
|
59
|
+
step: number;
|
|
58
60
|
controlVariant: ControlVariant;
|
|
59
61
|
hideInput: boolean;
|
|
60
62
|
} & {
|
|
@@ -64,14 +66,12 @@ declare const VNumberInput: {
|
|
|
64
66
|
color?: string | undefined;
|
|
65
67
|
loading?: string | boolean | undefined;
|
|
66
68
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
|
69
|
+
modelValue?: number | undefined;
|
|
67
70
|
rounded?: string | number | boolean | undefined;
|
|
68
|
-
max?: number | undefined;
|
|
69
71
|
bgColor?: string | undefined;
|
|
70
72
|
baseColor?: string | undefined;
|
|
71
73
|
hint?: string | undefined;
|
|
72
74
|
hideDetails?: boolean | "auto" | undefined;
|
|
73
|
-
min?: number | undefined;
|
|
74
|
-
step?: number | undefined;
|
|
75
75
|
} & {
|
|
76
76
|
$children?: {} | vue.VNodeChild | {
|
|
77
77
|
clear?: ((arg: DefaultInputSlot & {
|
|
@@ -137,11 +137,13 @@ declare const VNumberInput: {
|
|
|
137
137
|
disabled: boolean;
|
|
138
138
|
focused: boolean;
|
|
139
139
|
readonly: boolean | null;
|
|
140
|
-
modelValue: string | number;
|
|
141
140
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
142
141
|
inset: boolean;
|
|
143
142
|
density: Density;
|
|
143
|
+
max: number;
|
|
144
144
|
persistentHint: boolean;
|
|
145
|
+
min: number;
|
|
146
|
+
step: number;
|
|
145
147
|
controlVariant: ControlVariant;
|
|
146
148
|
hideInput: boolean;
|
|
147
149
|
} & {
|
|
@@ -151,14 +153,12 @@ declare const VNumberInput: {
|
|
|
151
153
|
color?: string | undefined;
|
|
152
154
|
loading?: string | boolean | undefined;
|
|
153
155
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
|
156
|
+
modelValue?: number | undefined;
|
|
154
157
|
rounded?: string | number | boolean | undefined;
|
|
155
|
-
max?: number | undefined;
|
|
156
158
|
bgColor?: string | undefined;
|
|
157
159
|
baseColor?: string | undefined;
|
|
158
160
|
hint?: string | undefined;
|
|
159
161
|
hideDetails?: boolean | "auto" | undefined;
|
|
160
|
-
min?: number | undefined;
|
|
161
|
-
step?: number | undefined;
|
|
162
162
|
} & {
|
|
163
163
|
$children?: {} | vue.VNodeChild | {
|
|
164
164
|
clear?: ((arg: DefaultInputSlot & {
|
|
@@ -222,12 +222,15 @@ declare const VNumberInput: {
|
|
|
222
222
|
disabled: boolean;
|
|
223
223
|
focused: boolean;
|
|
224
224
|
readonly: boolean | null;
|
|
225
|
-
modelValue:
|
|
225
|
+
modelValue: number;
|
|
226
226
|
rounded: string | number | boolean;
|
|
227
227
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
228
228
|
inset: boolean;
|
|
229
229
|
density: Density;
|
|
230
|
+
max: number;
|
|
230
231
|
persistentHint: boolean;
|
|
232
|
+
min: number;
|
|
233
|
+
step: number;
|
|
231
234
|
controlVariant: ControlVariant;
|
|
232
235
|
hideInput: boolean;
|
|
233
236
|
}, true, {}, vue.SlotsType<Partial<{
|
|
@@ -283,11 +286,13 @@ declare const VNumberInput: {
|
|
|
283
286
|
disabled: boolean;
|
|
284
287
|
focused: boolean;
|
|
285
288
|
readonly: boolean | null;
|
|
286
|
-
modelValue: string | number;
|
|
287
289
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
288
290
|
inset: boolean;
|
|
289
291
|
density: Density;
|
|
292
|
+
max: number;
|
|
290
293
|
persistentHint: boolean;
|
|
294
|
+
min: number;
|
|
295
|
+
step: number;
|
|
291
296
|
controlVariant: ControlVariant;
|
|
292
297
|
hideInput: boolean;
|
|
293
298
|
} & {
|
|
@@ -297,14 +302,12 @@ declare const VNumberInput: {
|
|
|
297
302
|
color?: string | undefined;
|
|
298
303
|
loading?: string | boolean | undefined;
|
|
299
304
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
|
305
|
+
modelValue?: number | undefined;
|
|
300
306
|
rounded?: string | number | boolean | undefined;
|
|
301
|
-
max?: number | undefined;
|
|
302
307
|
bgColor?: string | undefined;
|
|
303
308
|
baseColor?: string | undefined;
|
|
304
309
|
hint?: string | undefined;
|
|
305
310
|
hideDetails?: boolean | "auto" | undefined;
|
|
306
|
-
min?: number | undefined;
|
|
307
|
-
step?: number | undefined;
|
|
308
311
|
} & {
|
|
309
312
|
$children?: {} | vue.VNodeChild | {
|
|
310
313
|
clear?: ((arg: DefaultInputSlot & {
|
|
@@ -368,12 +371,15 @@ declare const VNumberInput: {
|
|
|
368
371
|
disabled: boolean;
|
|
369
372
|
focused: boolean;
|
|
370
373
|
readonly: boolean | null;
|
|
371
|
-
modelValue:
|
|
374
|
+
modelValue: number;
|
|
372
375
|
rounded: string | number | boolean;
|
|
373
376
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
374
377
|
inset: boolean;
|
|
375
378
|
density: Density;
|
|
379
|
+
max: number;
|
|
376
380
|
persistentHint: boolean;
|
|
381
|
+
min: number;
|
|
382
|
+
step: number;
|
|
377
383
|
controlVariant: ControlVariant;
|
|
378
384
|
hideInput: boolean;
|
|
379
385
|
}>;
|
|
@@ -387,11 +393,13 @@ declare const VNumberInput: {
|
|
|
387
393
|
disabled: boolean;
|
|
388
394
|
focused: boolean;
|
|
389
395
|
readonly: boolean | null;
|
|
390
|
-
modelValue: string | number;
|
|
391
396
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
392
397
|
inset: boolean;
|
|
393
398
|
density: Density;
|
|
399
|
+
max: number;
|
|
394
400
|
persistentHint: boolean;
|
|
401
|
+
min: number;
|
|
402
|
+
step: number;
|
|
395
403
|
controlVariant: ControlVariant;
|
|
396
404
|
hideInput: boolean;
|
|
397
405
|
} & {
|
|
@@ -401,14 +409,12 @@ declare const VNumberInput: {
|
|
|
401
409
|
color?: string | undefined;
|
|
402
410
|
loading?: string | boolean | undefined;
|
|
403
411
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
|
412
|
+
modelValue?: number | undefined;
|
|
404
413
|
rounded?: string | number | boolean | undefined;
|
|
405
|
-
max?: number | undefined;
|
|
406
414
|
bgColor?: string | undefined;
|
|
407
415
|
baseColor?: string | undefined;
|
|
408
416
|
hint?: string | undefined;
|
|
409
417
|
hideDetails?: boolean | "auto" | undefined;
|
|
410
|
-
min?: number | undefined;
|
|
411
|
-
step?: number | undefined;
|
|
412
418
|
} & {
|
|
413
419
|
$children?: {} | vue.VNodeChild | {
|
|
414
420
|
clear?: ((arg: DefaultInputSlot & {
|
|
@@ -474,12 +480,15 @@ declare const VNumberInput: {
|
|
|
474
480
|
disabled: boolean;
|
|
475
481
|
focused: boolean;
|
|
476
482
|
readonly: boolean | null;
|
|
477
|
-
modelValue:
|
|
483
|
+
modelValue: number;
|
|
478
484
|
rounded: string | number | boolean;
|
|
479
485
|
variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
|
|
480
486
|
inset: boolean;
|
|
481
487
|
density: Density;
|
|
488
|
+
max: number;
|
|
482
489
|
persistentHint: boolean;
|
|
490
|
+
min: number;
|
|
491
|
+
step: number;
|
|
483
492
|
controlVariant: ControlVariant;
|
|
484
493
|
hideInput: boolean;
|
|
485
494
|
}, {}, string, vue.SlotsType<Partial<{
|
|
@@ -523,8 +532,8 @@ declare const VNumberInput: {
|
|
|
523
532
|
}>[];
|
|
524
533
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
525
534
|
modelValue: {
|
|
526
|
-
type:
|
|
527
|
-
default:
|
|
535
|
+
type: NumberConstructor;
|
|
536
|
+
default: undefined;
|
|
528
537
|
};
|
|
529
538
|
focused: BooleanConstructor;
|
|
530
539
|
'onUpdate:focused': PropType<(args_0: boolean) => void>;
|
|
@@ -572,13 +581,22 @@ declare const VNumberInput: {
|
|
|
572
581
|
};
|
|
573
582
|
inset: BooleanConstructor;
|
|
574
583
|
hideInput: BooleanConstructor;
|
|
575
|
-
min:
|
|
576
|
-
|
|
577
|
-
|
|
584
|
+
min: {
|
|
585
|
+
type: NumberConstructor;
|
|
586
|
+
default: number;
|
|
587
|
+
};
|
|
588
|
+
max: {
|
|
589
|
+
type: NumberConstructor;
|
|
590
|
+
default: number;
|
|
591
|
+
};
|
|
592
|
+
step: {
|
|
593
|
+
type: NumberConstructor;
|
|
594
|
+
default: number;
|
|
595
|
+
};
|
|
578
596
|
}, vue.ExtractPropTypes<{
|
|
579
597
|
modelValue: {
|
|
580
|
-
type:
|
|
581
|
-
default:
|
|
598
|
+
type: NumberConstructor;
|
|
599
|
+
default: undefined;
|
|
582
600
|
};
|
|
583
601
|
focused: BooleanConstructor;
|
|
584
602
|
'onUpdate:focused': PropType<(args_0: boolean) => void>;
|
|
@@ -626,9 +644,18 @@ declare const VNumberInput: {
|
|
|
626
644
|
};
|
|
627
645
|
inset: BooleanConstructor;
|
|
628
646
|
hideInput: BooleanConstructor;
|
|
629
|
-
min:
|
|
630
|
-
|
|
631
|
-
|
|
647
|
+
min: {
|
|
648
|
+
type: NumberConstructor;
|
|
649
|
+
default: number;
|
|
650
|
+
};
|
|
651
|
+
max: {
|
|
652
|
+
type: NumberConstructor;
|
|
653
|
+
default: number;
|
|
654
|
+
};
|
|
655
|
+
step: {
|
|
656
|
+
type: NumberConstructor;
|
|
657
|
+
default: number;
|
|
658
|
+
};
|
|
632
659
|
}>>;
|
|
633
660
|
type VNumberInput = InstanceType<typeof VNumberInput>;
|
|
634
661
|
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
|
+
// Components
|
|
3
|
+
import { VBtn } from "../../components/VBtn/index.mjs";
|
|
4
|
+
import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
|
|
5
|
+
import { makeVSnackbarProps, VSnackbar } from "../../components/VSnackbar/VSnackbar.mjs"; // Composables
|
|
6
|
+
import { useLocale } from "../../composables/locale.mjs"; // Utilities
|
|
7
|
+
import { computed, nextTick, shallowRef, watch } from 'vue';
|
|
8
|
+
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
9
|
+
export const makeVSnackbarQueueProps = propsFactory({
|
|
10
|
+
// TODO: Port this to Snackbar on dev
|
|
11
|
+
closable: [Boolean, String],
|
|
12
|
+
closeText: {
|
|
13
|
+
type: String,
|
|
14
|
+
default: '$vuetify.dismiss'
|
|
15
|
+
},
|
|
16
|
+
modelValue: {
|
|
17
|
+
type: Array,
|
|
18
|
+
default: () => []
|
|
19
|
+
},
|
|
20
|
+
...omit(makeVSnackbarProps(), ['modelValue'])
|
|
21
|
+
}, 'VSnackbarQueue');
|
|
22
|
+
export const VSnackbarQueue = genericComponent()({
|
|
23
|
+
name: 'VSnackbarQueue',
|
|
24
|
+
props: makeVSnackbarQueueProps(),
|
|
25
|
+
emits: {
|
|
26
|
+
'update:modelValue': val => true
|
|
27
|
+
},
|
|
28
|
+
setup(props, _ref) {
|
|
29
|
+
let {
|
|
30
|
+
emit,
|
|
31
|
+
slots
|
|
32
|
+
} = _ref;
|
|
33
|
+
const {
|
|
34
|
+
t
|
|
35
|
+
} = useLocale();
|
|
36
|
+
const isActive = shallowRef(false);
|
|
37
|
+
const isVisible = shallowRef(false);
|
|
38
|
+
const current = shallowRef();
|
|
39
|
+
watch(() => props.modelValue.length, (val, oldVal) => {
|
|
40
|
+
if (!isVisible.value && val > oldVal) {
|
|
41
|
+
showNext();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
watch(isActive, val => {
|
|
45
|
+
if (val) isVisible.value = true;
|
|
46
|
+
});
|
|
47
|
+
function onAfterLeave() {
|
|
48
|
+
if (props.modelValue.length) {
|
|
49
|
+
showNext();
|
|
50
|
+
} else {
|
|
51
|
+
current.value = undefined;
|
|
52
|
+
isVisible.value = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function showNext() {
|
|
56
|
+
const [next, ...rest] = props.modelValue;
|
|
57
|
+
emit('update:modelValue', rest);
|
|
58
|
+
current.value = typeof next === 'string' ? {
|
|
59
|
+
text: next
|
|
60
|
+
} : next;
|
|
61
|
+
nextTick(() => {
|
|
62
|
+
isActive.value = true;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function onClickClose() {
|
|
66
|
+
isActive.value = false;
|
|
67
|
+
}
|
|
68
|
+
const btnProps = computed(() => ({
|
|
69
|
+
color: typeof props.closable === 'string' ? props.closable : undefined,
|
|
70
|
+
text: t(props.closeText)
|
|
71
|
+
}));
|
|
72
|
+
useRender(() => {
|
|
73
|
+
const hasActions = !!(props.closable || slots.actions);
|
|
74
|
+
const {
|
|
75
|
+
modelValue: _,
|
|
76
|
+
...snackbarProps
|
|
77
|
+
} = VSnackbar.filterProps(props);
|
|
78
|
+
return _createVNode(_Fragment, null, [isVisible.value && !!current.value && (slots.default ? _createVNode(VDefaultsProvider, {
|
|
79
|
+
"defaults": {
|
|
80
|
+
VSnackbar: current.value
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
default: () => [slots.default({
|
|
84
|
+
item: current.value
|
|
85
|
+
})]
|
|
86
|
+
}) : _createVNode(VSnackbar, _mergeProps(snackbarProps, current.value, {
|
|
87
|
+
"modelValue": isActive.value,
|
|
88
|
+
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
89
|
+
"onAfterLeave": onAfterLeave
|
|
90
|
+
}), {
|
|
91
|
+
text: slots.text ? () => slots.text?.({
|
|
92
|
+
item: current.value
|
|
93
|
+
}) : undefined,
|
|
94
|
+
actions: hasActions ? () => _createVNode(_Fragment, null, [!slots.actions ? _createVNode(VBtn, _mergeProps(btnProps.value, {
|
|
95
|
+
"onClick": onClickClose
|
|
96
|
+
}), null) : _createVNode(VDefaultsProvider, {
|
|
97
|
+
"defaults": {
|
|
98
|
+
VBtn: btnProps.value
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
default: () => [slots.actions({
|
|
102
|
+
item: current.value,
|
|
103
|
+
props: {
|
|
104
|
+
onClick: onClickClose
|
|
105
|
+
}
|
|
106
|
+
})]
|
|
107
|
+
})]) : undefined
|
|
108
|
+
}))]);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=VSnackbarQueue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSnackbarQueue.mjs","names":["VBtn","VDefaultsProvider","makeVSnackbarProps","VSnackbar","useLocale","computed","nextTick","shallowRef","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarQueueProps","closable","Boolean","String","closeText","type","default","modelValue","Array","VSnackbarQueue","name","props","emits","val","setup","_ref","emit","slots","t","isActive","isVisible","current","length","oldVal","value","showNext","onAfterLeave","undefined","next","rest","text","onClickClose","btnProps","color","hasActions","actions","_","snackbarProps","filterProps","_createVNode","_Fragment","item","_mergeProps","$event","onClick"],"sources":["../../../src/labs/VSnackbarQueue/VSnackbarQueue.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVSnackbarProps, VSnackbar } from '@/components/VSnackbar/VSnackbar'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, nextTick, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VSnackbarQueueSlots<T extends string | SnackbarMessage> = {\n default: { item: T }\n text: { item: T }\n actions: {\n item: T\n props: {\n onClick: () => void\n }\n }\n}\n\nexport type SnackbarMessage = Omit<\n VSnackbar['$props'],\n | '$children'\n | 'modelValue'\n | 'onUpdate:modelValue'\n | 'activator'\n | 'activatorProps'\n | 'closeDelay'\n | 'openDelay'\n | 'openOnClick'\n | 'openOnFocus'\n | 'openOnHover'\n>\n\nexport const makeVSnackbarQueueProps = propsFactory({\n // TODO: Port this to Snackbar on dev\n closable: [Boolean, String],\n closeText: {\n type: String,\n default: '$vuetify.dismiss',\n },\n modelValue: {\n type: Array as PropType<readonly (string | SnackbarMessage)[]>,\n default: () => [],\n },\n\n ...omit(makeVSnackbarProps(), ['modelValue']),\n}, 'VSnackbarQueue')\n\nexport const VSnackbarQueue = genericComponent<new <T extends readonly (string | SnackbarMessage)[]> (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => void\n },\n slots: VSnackbarQueueSlots<T[number]>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSnackbarQueue',\n\n props: makeVSnackbarQueueProps(),\n\n emits: {\n 'update:modelValue': (val: (string | SnackbarMessage)[]) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n const isActive = shallowRef(false)\n const isVisible = shallowRef(false)\n const current = shallowRef<SnackbarMessage>()\n\n watch(() => props.modelValue.length, (val, oldVal) => {\n if (!isVisible.value && val > oldVal) {\n showNext()\n }\n })\n watch(isActive, val => {\n if (val) isVisible.value = true\n })\n\n function onAfterLeave () {\n if (props.modelValue.length) {\n showNext()\n } else {\n current.value = undefined\n isVisible.value = false\n }\n }\n function showNext () {\n const [next, ...rest] = props.modelValue\n emit('update:modelValue', rest)\n current.value = typeof next === 'string' ? { text: next } : next\n nextTick(() => {\n isActive.value = true\n })\n }\n function onClickClose () {\n isActive.value = false\n }\n\n const btnProps = computed(() => ({\n color: typeof props.closable === 'string' ? props.closable : undefined,\n text: t(props.closeText),\n }))\n\n useRender(() => {\n const hasActions = !!(props.closable || slots.actions)\n const { modelValue: _, ...snackbarProps } = VSnackbar.filterProps(props as any)\n\n return (\n <>\n { isVisible.value && !!current.value && (\n slots.default\n ? (\n <VDefaultsProvider defaults={{ VSnackbar: current.value }}>\n { slots.default({ item: current.value }) }\n </VDefaultsProvider>\n ) : (\n <VSnackbar\n { ...snackbarProps }\n { ...current.value }\n v-model={ isActive.value }\n onAfterLeave={ onAfterLeave }\n >\n {{\n text: slots.text ? () => slots.text?.({ item: current.value! }) : undefined,\n actions: hasActions ? () => (\n <>\n { !slots.actions ? (\n <VBtn\n { ...btnProps.value }\n onClick={ onClickClose }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: btnProps.value,\n }}\n >\n { slots.actions({\n item: current.value!,\n props: { onClick: onClickClose },\n })}\n </VDefaultsProvider>\n )}\n </>\n ) : undefined,\n }}\n </VSnackbar>\n )\n )}\n </>\n )\n })\n },\n})\n\nexport type VSnackbarQueue = InstanceType<typeof VSnackbarQueue>\n"],"mappings":"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","ignoreList":[]}
|