vuetify 3.2.0 → 3.2.2
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 +775 -639
- package/dist/json/importMap.json +8 -8
- package/dist/json/tags.json +35 -1
- package/dist/json/web-types.json +1657 -1327
- package/dist/vuetify-labs.css +389 -383
- package/dist/vuetify-labs.d.ts +419 -89
- package/dist/vuetify-labs.esm.js +113 -98
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +112 -97
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +60 -54
- package/dist/vuetify.d.ts +522 -192
- package/dist/vuetify.esm.js +108 -98
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +107 -97
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +49 -49
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +7 -11
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +10 -16
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +394 -28
- package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +10 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VBtn/VBtn.mjs +7 -6
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +0 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +9 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.mjs +28 -29
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -8
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +9 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.css +6 -0
- package/lib/components/VSheet/_variables.scss +1 -1
- package/lib/components/VTextField/VTextField.mjs +1 -1
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +1 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTreeview/_mixins.sass +0 -0
- package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
- package/lib/components/index.d.ts +386 -53
- package/lib/composables/defaults.mjs +11 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/icons.mjs +2 -2
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/scroll.mjs +16 -17
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +4 -7
- package/lib/labs/VDataTable/composables/paginate.mjs +6 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/locale/el.mjs +0 -0
- package/lib/locale/index.mjs +0 -0
- package/lib/util/defineComponent.mjs +2 -2
- package/lib/util/defineComponent.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.2.
|
|
2
|
+
* Vuetify v3.2.2
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1016,7 +1016,7 @@
|
|
|
1016
1016
|
function propIsDefined(vnode, prop) {
|
|
1017
1017
|
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1018
1018
|
}
|
|
1019
|
-
function
|
|
1019
|
+
function internalUseDefaults() {
|
|
1020
1020
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1021
1021
|
let name = arguments.length > 1 ? arguments[1] : undefined;
|
|
1022
1022
|
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
|
@@ -1060,6 +1060,16 @@
|
|
|
1060
1060
|
provideSubDefaults
|
|
1061
1061
|
};
|
|
1062
1062
|
}
|
|
1063
|
+
function useDefaults() {
|
|
1064
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1065
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
|
1066
|
+
const {
|
|
1067
|
+
props: _props,
|
|
1068
|
+
provideSubDefaults
|
|
1069
|
+
} = internalUseDefaults(props, name);
|
|
1070
|
+
provideSubDefaults();
|
|
1071
|
+
return _props;
|
|
1072
|
+
}
|
|
1063
1073
|
|
|
1064
1074
|
// Utils
|
|
1065
1075
|
|
|
@@ -1087,7 +1097,7 @@
|
|
|
1087
1097
|
const {
|
|
1088
1098
|
props: _props,
|
|
1089
1099
|
provideSubDefaults
|
|
1090
|
-
} =
|
|
1100
|
+
} = internalUseDefaults(props, props._as ?? options.name, defaults);
|
|
1091
1101
|
const setupBindings = options._setup(_props, ctx);
|
|
1092
1102
|
provideSubDefaults();
|
|
1093
1103
|
return setupBindings;
|
|
@@ -3330,14 +3340,13 @@
|
|
|
3330
3340
|
type: String
|
|
3331
3341
|
},
|
|
3332
3342
|
scrollThreshold: {
|
|
3333
|
-
type: [String, Number]
|
|
3343
|
+
type: [String, Number],
|
|
3344
|
+
default: 300
|
|
3334
3345
|
}
|
|
3335
3346
|
}, 'scroll');
|
|
3336
3347
|
function useScroll(props) {
|
|
3337
3348
|
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3338
3349
|
const {
|
|
3339
|
-
thresholdMetCallback,
|
|
3340
|
-
scrollThreshold,
|
|
3341
3350
|
canScroll
|
|
3342
3351
|
} = args;
|
|
3343
3352
|
let previousScroll = 0;
|
|
@@ -3347,8 +3356,16 @@
|
|
|
3347
3356
|
const currentThreshold = vue.ref(0);
|
|
3348
3357
|
const isScrollActive = vue.ref(false);
|
|
3349
3358
|
const isScrollingUp = vue.ref(false);
|
|
3350
|
-
const
|
|
3351
|
-
return Number(props.scrollThreshold
|
|
3359
|
+
const scrollThreshold = vue.computed(() => {
|
|
3360
|
+
return Number(props.scrollThreshold);
|
|
3361
|
+
});
|
|
3362
|
+
|
|
3363
|
+
/**
|
|
3364
|
+
* 1: at top
|
|
3365
|
+
* 0: at threshold
|
|
3366
|
+
*/
|
|
3367
|
+
const scrollRatio = vue.computed(() => {
|
|
3368
|
+
return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
|
|
3352
3369
|
});
|
|
3353
3370
|
const onScroll = () => {
|
|
3354
3371
|
const targetEl = target.value;
|
|
@@ -3356,7 +3373,7 @@
|
|
|
3356
3373
|
previousScroll = currentScroll.value;
|
|
3357
3374
|
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3358
3375
|
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3359
|
-
currentThreshold.value = Math.abs(currentScroll.value -
|
|
3376
|
+
currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
|
|
3360
3377
|
};
|
|
3361
3378
|
vue.watch(isScrollingUp, () => {
|
|
3362
3379
|
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
@@ -3384,15 +3401,6 @@
|
|
|
3384
3401
|
vue.onBeforeUnmount(() => {
|
|
3385
3402
|
target.value?.removeEventListener('scroll', onScroll);
|
|
3386
3403
|
});
|
|
3387
|
-
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3388
|
-
thresholdMet && thresholdMetCallback({
|
|
3389
|
-
currentThreshold: currentThreshold.value,
|
|
3390
|
-
isScrollingUp: isScrollingUp.value,
|
|
3391
|
-
savedScroll
|
|
3392
|
-
});
|
|
3393
|
-
}, {
|
|
3394
|
-
immediate: true
|
|
3395
|
-
});
|
|
3396
3404
|
|
|
3397
3405
|
// Do we need this? If yes - seems that
|
|
3398
3406
|
// there's no need to expose onScroll
|
|
@@ -3400,10 +3408,11 @@
|
|
|
3400
3408
|
immediate: true
|
|
3401
3409
|
});
|
|
3402
3410
|
return {
|
|
3403
|
-
|
|
3411
|
+
scrollThreshold,
|
|
3404
3412
|
currentScroll,
|
|
3405
3413
|
currentThreshold,
|
|
3406
3414
|
isScrollActive,
|
|
3415
|
+
scrollRatio,
|
|
3407
3416
|
// required only for testing
|
|
3408
3417
|
// probably can be removed
|
|
3409
3418
|
// later (2 chars chlng)
|
|
@@ -3486,15 +3495,14 @@
|
|
|
3486
3495
|
});
|
|
3487
3496
|
const {
|
|
3488
3497
|
currentScroll,
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3498
|
+
scrollThreshold,
|
|
3499
|
+
isScrollingUp,
|
|
3500
|
+
scrollRatio
|
|
3492
3501
|
} = useScroll(props, {
|
|
3493
3502
|
canScroll
|
|
3494
3503
|
});
|
|
3495
|
-
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ?
|
|
3496
|
-
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate &&
|
|
3497
|
-
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3504
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
|
3505
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
|
3498
3506
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3499
3507
|
const height = vue.computed(() => {
|
|
3500
3508
|
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
@@ -3503,15 +3511,12 @@
|
|
|
3503
3511
|
return height + extensionHeight;
|
|
3504
3512
|
});
|
|
3505
3513
|
function setActive() {
|
|
3506
|
-
const val = currentScroll.value;
|
|
3507
3514
|
if (scrollBehavior.value.hide) {
|
|
3508
3515
|
if (scrollBehavior.value.inverted) {
|
|
3509
|
-
isActive.value =
|
|
3516
|
+
isActive.value = currentScroll.value > scrollThreshold.value;
|
|
3510
3517
|
} else {
|
|
3511
|
-
isActive.value = isScrollingUp.value ||
|
|
3518
|
+
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
|
3512
3519
|
}
|
|
3513
|
-
} else if (scrollBehavior.value.inverted) {
|
|
3514
|
-
isActive.value = currentScroll.value === 0;
|
|
3515
3520
|
} else {
|
|
3516
3521
|
isActive.value = true;
|
|
3517
3522
|
}
|
|
@@ -4087,7 +4092,7 @@
|
|
|
4087
4092
|
const icons = vue.inject(IconSymbol);
|
|
4088
4093
|
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
4089
4094
|
const iconData = vue.computed(() => {
|
|
4090
|
-
const iconAlias = vue.
|
|
4095
|
+
const iconAlias = vue.unref(props);
|
|
4091
4096
|
if (!iconAlias) return {
|
|
4092
4097
|
component: VComponentIcon
|
|
4093
4098
|
};
|
|
@@ -4154,8 +4159,6 @@
|
|
|
4154
4159
|
});
|
|
4155
4160
|
}
|
|
4156
4161
|
|
|
4157
|
-
// Types
|
|
4158
|
-
|
|
4159
4162
|
const makeVIconProps = propsFactory({
|
|
4160
4163
|
color: String,
|
|
4161
4164
|
start: Boolean,
|
|
@@ -4176,20 +4179,13 @@
|
|
|
4176
4179
|
attrs,
|
|
4177
4180
|
slots
|
|
4178
4181
|
} = _ref;
|
|
4179
|
-
|
|
4180
|
-
if (slots.default) {
|
|
4181
|
-
slotIcon = vue.computed(() => {
|
|
4182
|
-
const slot = slots.default?.();
|
|
4183
|
-
if (!slot) return;
|
|
4184
|
-
return slot.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4185
|
-
});
|
|
4186
|
-
}
|
|
4182
|
+
const slotIcon = vue.ref();
|
|
4187
4183
|
const {
|
|
4188
4184
|
themeClasses
|
|
4189
4185
|
} = provideTheme(props);
|
|
4190
4186
|
const {
|
|
4191
4187
|
iconData
|
|
4192
|
-
} = useIcon(slotIcon || props);
|
|
4188
|
+
} = useIcon(vue.computed(() => slotIcon.value || props.icon));
|
|
4193
4189
|
const {
|
|
4194
4190
|
sizeClasses
|
|
4195
4191
|
} = useSize(props);
|
|
@@ -4197,24 +4193,30 @@
|
|
|
4197
4193
|
textColorClasses,
|
|
4198
4194
|
textColorStyles
|
|
4199
4195
|
} = useTextColor(vue.toRef(props, 'color'));
|
|
4200
|
-
useRender(() =>
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4196
|
+
useRender(() => {
|
|
4197
|
+
const slotValue = slots.default?.();
|
|
4198
|
+
if (slotValue) {
|
|
4199
|
+
slotIcon.value = slotValue.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4200
|
+
}
|
|
4201
|
+
return vue.createVNode(iconData.value.component, {
|
|
4202
|
+
"tag": props.tag,
|
|
4203
|
+
"icon": iconData.value.icon,
|
|
4204
|
+
"class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
|
|
4205
|
+
'v-icon--clickable': !!attrs.onClick,
|
|
4206
|
+
'v-icon--start': props.start,
|
|
4207
|
+
'v-icon--end': props.end
|
|
4208
|
+
}, props.class],
|
|
4209
|
+
"style": [!sizeClasses.value ? {
|
|
4210
|
+
fontSize: convertToUnit(props.size),
|
|
4211
|
+
height: convertToUnit(props.size),
|
|
4212
|
+
width: convertToUnit(props.size)
|
|
4213
|
+
} : undefined, textColorStyles.value, props.style],
|
|
4214
|
+
"role": attrs.onClick ? 'button' : undefined,
|
|
4215
|
+
"aria-hidden": !attrs.onClick
|
|
4216
|
+
}, {
|
|
4217
|
+
default: () => [slotValue]
|
|
4218
|
+
});
|
|
4219
|
+
});
|
|
4218
4220
|
return {};
|
|
4219
4221
|
}
|
|
4220
4222
|
});
|
|
@@ -5051,7 +5053,7 @@
|
|
|
5051
5053
|
...makeVariantProps({
|
|
5052
5054
|
variant: 'elevated'
|
|
5053
5055
|
})
|
|
5054
|
-
}, '
|
|
5056
|
+
}, 'v-btn');
|
|
5055
5057
|
const VBtn = genericComponent()({
|
|
5056
5058
|
name: 'VBtn',
|
|
5057
5059
|
directives: {
|
|
@@ -5121,6 +5123,11 @@
|
|
|
5121
5123
|
if (props.value === undefined) return undefined;
|
|
5122
5124
|
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
|
5123
5125
|
});
|
|
5126
|
+
function onClick(e) {
|
|
5127
|
+
if (isDisabled.value) return;
|
|
5128
|
+
link.navigate?.(e);
|
|
5129
|
+
group?.toggle();
|
|
5130
|
+
}
|
|
5124
5131
|
useSelectLink(link, group?.select);
|
|
5125
5132
|
useRender(() => {
|
|
5126
5133
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -5143,11 +5150,7 @@
|
|
|
5143
5150
|
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
5144
5151
|
"disabled": isDisabled.value || undefined,
|
|
5145
5152
|
"href": link.href.value,
|
|
5146
|
-
"onClick":
|
|
5147
|
-
if (isDisabled.value) return;
|
|
5148
|
-
link.navigate?.(e);
|
|
5149
|
-
group?.toggle();
|
|
5150
|
-
},
|
|
5153
|
+
"onClick": onClick,
|
|
5151
5154
|
"value": valueAttr.value
|
|
5152
5155
|
}, {
|
|
5153
5156
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
|
|
@@ -5213,22 +5216,17 @@
|
|
|
5213
5216
|
|
|
5214
5217
|
const VAppBarNavIcon = genericComponent()({
|
|
5215
5218
|
name: 'VAppBarNavIcon',
|
|
5216
|
-
props: {
|
|
5217
|
-
icon:
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
},
|
|
5221
|
-
...makeComponentProps()
|
|
5222
|
-
},
|
|
5219
|
+
props: makeVBtnProps({
|
|
5220
|
+
icon: '$menu',
|
|
5221
|
+
variant: 'text'
|
|
5222
|
+
}),
|
|
5223
5223
|
setup(props, _ref) {
|
|
5224
5224
|
let {
|
|
5225
5225
|
slots
|
|
5226
5226
|
} = _ref;
|
|
5227
|
-
useRender(() => vue.createVNode(VBtn, {
|
|
5228
|
-
"class": ['v-app-bar-nav-icon'
|
|
5229
|
-
|
|
5230
|
-
"style": props.style
|
|
5231
|
-
}, slots));
|
|
5227
|
+
useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
|
|
5228
|
+
"class": ['v-app-bar-nav-icon']
|
|
5229
|
+
}), slots));
|
|
5232
5230
|
return {};
|
|
5233
5231
|
}
|
|
5234
5232
|
});
|
|
@@ -6431,7 +6429,7 @@
|
|
|
6431
6429
|
const vInputRef = vue.ref();
|
|
6432
6430
|
const vFieldRef = vue.ref();
|
|
6433
6431
|
const inputRef = vue.ref();
|
|
6434
|
-
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
|
|
6432
|
+
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
|
|
6435
6433
|
function onFocus() {
|
|
6436
6434
|
if (inputRef.value !== document.activeElement) {
|
|
6437
6435
|
inputRef.value?.focus();
|
|
@@ -6867,7 +6865,6 @@
|
|
|
6867
6865
|
"class": ['v-checkbox-btn', props.class],
|
|
6868
6866
|
"style": props.style,
|
|
6869
6867
|
"type": "checkbox",
|
|
6870
|
-
"inline": true,
|
|
6871
6868
|
"falseIcon": falseIcon.value,
|
|
6872
6869
|
"trueIcon": trueIcon.value,
|
|
6873
6870
|
"aria-checked": props.indeterminate ? 'mixed' : undefined
|
|
@@ -10366,11 +10363,13 @@
|
|
|
10366
10363
|
let {
|
|
10367
10364
|
isSelected
|
|
10368
10365
|
} = _ref2;
|
|
10369
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10366
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10370
10367
|
"modelValue": isSelected,
|
|
10371
10368
|
"ripple": false,
|
|
10372
10369
|
"tabindex": "-1"
|
|
10373
|
-
}, null) : undefined
|
|
10370
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
10371
|
+
"icon": item.props.prependIcon
|
|
10372
|
+
}, null)]);
|
|
10374
10373
|
}
|
|
10375
10374
|
});
|
|
10376
10375
|
}), slots['append-item']?.()]
|
|
@@ -10383,6 +10382,10 @@
|
|
|
10383
10382
|
}
|
|
10384
10383
|
const slotProps = {
|
|
10385
10384
|
'onClick:close': onChipClose,
|
|
10385
|
+
onMousedown(e) {
|
|
10386
|
+
e.preventDefault();
|
|
10387
|
+
e.stopPropagation();
|
|
10388
|
+
},
|
|
10386
10389
|
modelValue: true,
|
|
10387
10390
|
'onUpdate:modelValue': undefined
|
|
10388
10391
|
};
|
|
@@ -10726,6 +10729,7 @@
|
|
|
10726
10729
|
isPristine.value = true;
|
|
10727
10730
|
vue.nextTick(() => isSelecting.value = false);
|
|
10728
10731
|
} else {
|
|
10732
|
+
if (!props.multiple && !search.value) model.value = [];
|
|
10729
10733
|
menu.value = false;
|
|
10730
10734
|
search.value = '';
|
|
10731
10735
|
}
|
|
@@ -10805,11 +10809,13 @@
|
|
|
10805
10809
|
let {
|
|
10806
10810
|
isSelected
|
|
10807
10811
|
} = _ref2;
|
|
10808
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10812
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10809
10813
|
"modelValue": isSelected,
|
|
10810
10814
|
"ripple": false,
|
|
10811
10815
|
"tabindex": "-1"
|
|
10812
|
-
}, null) : undefined
|
|
10816
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
10817
|
+
"icon": item.props.prependIcon
|
|
10818
|
+
}, null)]);
|
|
10813
10819
|
},
|
|
10814
10820
|
title: () => {
|
|
10815
10821
|
return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
@@ -10824,6 +10830,10 @@
|
|
|
10824
10830
|
}
|
|
10825
10831
|
const slotProps = {
|
|
10826
10832
|
'onClick:close': onChipClose,
|
|
10833
|
+
onMousedown(e) {
|
|
10834
|
+
e.preventDefault();
|
|
10835
|
+
e.stopPropagation();
|
|
10836
|
+
},
|
|
10827
10837
|
modelValue: true,
|
|
10828
10838
|
'onUpdate:modelValue': undefined
|
|
10829
10839
|
};
|
|
@@ -14250,11 +14260,13 @@
|
|
|
14250
14260
|
let {
|
|
14251
14261
|
isSelected
|
|
14252
14262
|
} = _ref2;
|
|
14253
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
14263
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
14254
14264
|
"modelValue": isSelected,
|
|
14255
14265
|
"ripple": false,
|
|
14256
14266
|
"tabindex": "-1"
|
|
14257
|
-
}, null) : undefined
|
|
14267
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
14268
|
+
"icon": item.props.prependIcon
|
|
14269
|
+
}, null)]);
|
|
14258
14270
|
},
|
|
14259
14271
|
title: () => {
|
|
14260
14272
|
return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
@@ -14269,6 +14281,10 @@
|
|
|
14269
14281
|
}
|
|
14270
14282
|
const slotProps = {
|
|
14271
14283
|
'onClick:close': onChipClose,
|
|
14284
|
+
onMousedown(e) {
|
|
14285
|
+
e.preventDefault();
|
|
14286
|
+
e.stopPropagation();
|
|
14287
|
+
},
|
|
14272
14288
|
modelValue: true,
|
|
14273
14289
|
'onUpdate:modelValue': undefined
|
|
14274
14290
|
};
|
|
@@ -14732,6 +14748,7 @@
|
|
|
14732
14748
|
const vInputRef = vue.ref();
|
|
14733
14749
|
const vFieldRef = vue.ref();
|
|
14734
14750
|
const inputRef = vue.ref();
|
|
14751
|
+
const isActive = vue.computed(() => isFocused.value || props.active);
|
|
14735
14752
|
function onFocus() {
|
|
14736
14753
|
if (inputRef.value !== document.activeElement) {
|
|
14737
14754
|
inputRef.value?.focus();
|
|
@@ -14800,7 +14817,7 @@
|
|
|
14800
14817
|
"onClick:appendInner": props['onClick:appendInner']
|
|
14801
14818
|
}, fieldProps, {
|
|
14802
14819
|
"id": id.value,
|
|
14803
|
-
"active":
|
|
14820
|
+
"active": isActive.value || isDirty.value,
|
|
14804
14821
|
"dirty": isDirty.value,
|
|
14805
14822
|
"disabled": isDisabled.value,
|
|
14806
14823
|
"focused": isFocused.value,
|
|
@@ -15966,7 +15983,6 @@
|
|
|
15966
15983
|
});
|
|
15967
15984
|
const {
|
|
15968
15985
|
layoutItemStyles,
|
|
15969
|
-
layoutRect,
|
|
15970
15986
|
layoutItemScrimStyles
|
|
15971
15987
|
} = useLayoutItem({
|
|
15972
15988
|
id: props.name,
|
|
@@ -15996,12 +16012,6 @@
|
|
|
15996
16012
|
opacity: dragProgress.value * 0.2,
|
|
15997
16013
|
transition: 'none'
|
|
15998
16014
|
} : undefined),
|
|
15999
|
-
...(layoutRect.value ? {
|
|
16000
|
-
left: convertToUnit(layoutRect.value.left),
|
|
16001
|
-
right: convertToUnit(layoutRect.value.right),
|
|
16002
|
-
top: convertToUnit(layoutRect.value.top),
|
|
16003
|
-
bottom: convertToUnit(layoutRect.value.bottom)
|
|
16004
|
-
} : undefined),
|
|
16005
16015
|
...layoutItemScrimStyles.value
|
|
16006
16016
|
}));
|
|
16007
16017
|
provideDefaults({
|
|
@@ -17965,7 +17975,7 @@
|
|
|
17965
17975
|
const vFieldRef = vue.ref();
|
|
17966
17976
|
const controlHeight = vue.ref('');
|
|
17967
17977
|
const textareaRef = vue.ref();
|
|
17968
|
-
const isActive = vue.computed(() => isFocused.value || props.
|
|
17978
|
+
const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
|
17969
17979
|
function onFocus() {
|
|
17970
17980
|
if (textareaRef.value !== document.activeElement) {
|
|
17971
17981
|
textareaRef.value?.focus();
|
|
@@ -19421,7 +19431,7 @@
|
|
|
19421
19431
|
date
|
|
19422
19432
|
};
|
|
19423
19433
|
}
|
|
19424
|
-
const version$1 = "3.2.
|
|
19434
|
+
const version$1 = "3.2.2";
|
|
19425
19435
|
createVuetify$1.version = version$1;
|
|
19426
19436
|
|
|
19427
19437
|
// Vue's inject() can only be used in setup
|
|
@@ -19441,7 +19451,7 @@
|
|
|
19441
19451
|
...options
|
|
19442
19452
|
});
|
|
19443
19453
|
};
|
|
19444
|
-
const version = "3.2.
|
|
19454
|
+
const version = "3.2.2";
|
|
19445
19455
|
createVuetify.version = version;
|
|
19446
19456
|
|
|
19447
19457
|
exports.components = components;
|