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-labs.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;
|
|
@@ -3334,14 +3344,13 @@
|
|
|
3334
3344
|
type: String
|
|
3335
3345
|
},
|
|
3336
3346
|
scrollThreshold: {
|
|
3337
|
-
type: [String, Number]
|
|
3347
|
+
type: [String, Number],
|
|
3348
|
+
default: 300
|
|
3338
3349
|
}
|
|
3339
3350
|
}, 'scroll');
|
|
3340
3351
|
function useScroll(props) {
|
|
3341
3352
|
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3342
3353
|
const {
|
|
3343
|
-
thresholdMetCallback,
|
|
3344
|
-
scrollThreshold,
|
|
3345
3354
|
canScroll
|
|
3346
3355
|
} = args;
|
|
3347
3356
|
let previousScroll = 0;
|
|
@@ -3351,8 +3360,16 @@
|
|
|
3351
3360
|
const currentThreshold = vue.ref(0);
|
|
3352
3361
|
const isScrollActive = vue.ref(false);
|
|
3353
3362
|
const isScrollingUp = vue.ref(false);
|
|
3354
|
-
const
|
|
3355
|
-
return Number(props.scrollThreshold
|
|
3363
|
+
const scrollThreshold = vue.computed(() => {
|
|
3364
|
+
return Number(props.scrollThreshold);
|
|
3365
|
+
});
|
|
3366
|
+
|
|
3367
|
+
/**
|
|
3368
|
+
* 1: at top
|
|
3369
|
+
* 0: at threshold
|
|
3370
|
+
*/
|
|
3371
|
+
const scrollRatio = vue.computed(() => {
|
|
3372
|
+
return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
|
|
3356
3373
|
});
|
|
3357
3374
|
const onScroll = () => {
|
|
3358
3375
|
const targetEl = target.value;
|
|
@@ -3360,7 +3377,7 @@
|
|
|
3360
3377
|
previousScroll = currentScroll.value;
|
|
3361
3378
|
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3362
3379
|
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3363
|
-
currentThreshold.value = Math.abs(currentScroll.value -
|
|
3380
|
+
currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
|
|
3364
3381
|
};
|
|
3365
3382
|
vue.watch(isScrollingUp, () => {
|
|
3366
3383
|
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
@@ -3388,15 +3405,6 @@
|
|
|
3388
3405
|
vue.onBeforeUnmount(() => {
|
|
3389
3406
|
target.value?.removeEventListener('scroll', onScroll);
|
|
3390
3407
|
});
|
|
3391
|
-
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3392
|
-
thresholdMet && thresholdMetCallback({
|
|
3393
|
-
currentThreshold: currentThreshold.value,
|
|
3394
|
-
isScrollingUp: isScrollingUp.value,
|
|
3395
|
-
savedScroll
|
|
3396
|
-
});
|
|
3397
|
-
}, {
|
|
3398
|
-
immediate: true
|
|
3399
|
-
});
|
|
3400
3408
|
|
|
3401
3409
|
// Do we need this? If yes - seems that
|
|
3402
3410
|
// there's no need to expose onScroll
|
|
@@ -3404,10 +3412,11 @@
|
|
|
3404
3412
|
immediate: true
|
|
3405
3413
|
});
|
|
3406
3414
|
return {
|
|
3407
|
-
|
|
3415
|
+
scrollThreshold,
|
|
3408
3416
|
currentScroll,
|
|
3409
3417
|
currentThreshold,
|
|
3410
3418
|
isScrollActive,
|
|
3419
|
+
scrollRatio,
|
|
3411
3420
|
// required only for testing
|
|
3412
3421
|
// probably can be removed
|
|
3413
3422
|
// later (2 chars chlng)
|
|
@@ -3490,15 +3499,14 @@
|
|
|
3490
3499
|
});
|
|
3491
3500
|
const {
|
|
3492
3501
|
currentScroll,
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3502
|
+
scrollThreshold,
|
|
3503
|
+
isScrollingUp,
|
|
3504
|
+
scrollRatio
|
|
3496
3505
|
} = useScroll(props, {
|
|
3497
3506
|
canScroll
|
|
3498
3507
|
});
|
|
3499
|
-
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ?
|
|
3500
|
-
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate &&
|
|
3501
|
-
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3508
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
|
3509
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
|
3502
3510
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3503
3511
|
const height = vue.computed(() => {
|
|
3504
3512
|
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
@@ -3507,15 +3515,12 @@
|
|
|
3507
3515
|
return height + extensionHeight;
|
|
3508
3516
|
});
|
|
3509
3517
|
function setActive() {
|
|
3510
|
-
const val = currentScroll.value;
|
|
3511
3518
|
if (scrollBehavior.value.hide) {
|
|
3512
3519
|
if (scrollBehavior.value.inverted) {
|
|
3513
|
-
isActive.value =
|
|
3520
|
+
isActive.value = currentScroll.value > scrollThreshold.value;
|
|
3514
3521
|
} else {
|
|
3515
|
-
isActive.value = isScrollingUp.value ||
|
|
3522
|
+
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
|
3516
3523
|
}
|
|
3517
|
-
} else if (scrollBehavior.value.inverted) {
|
|
3518
|
-
isActive.value = currentScroll.value === 0;
|
|
3519
3524
|
} else {
|
|
3520
3525
|
isActive.value = true;
|
|
3521
3526
|
}
|
|
@@ -4091,7 +4096,7 @@
|
|
|
4091
4096
|
const icons = vue.inject(IconSymbol);
|
|
4092
4097
|
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
4093
4098
|
const iconData = vue.computed(() => {
|
|
4094
|
-
const iconAlias = vue.
|
|
4099
|
+
const iconAlias = vue.unref(props);
|
|
4095
4100
|
if (!iconAlias) return {
|
|
4096
4101
|
component: VComponentIcon
|
|
4097
4102
|
};
|
|
@@ -4158,8 +4163,6 @@
|
|
|
4158
4163
|
});
|
|
4159
4164
|
}
|
|
4160
4165
|
|
|
4161
|
-
// Types
|
|
4162
|
-
|
|
4163
4166
|
const makeVIconProps = propsFactory({
|
|
4164
4167
|
color: String,
|
|
4165
4168
|
start: Boolean,
|
|
@@ -4180,20 +4183,13 @@
|
|
|
4180
4183
|
attrs,
|
|
4181
4184
|
slots
|
|
4182
4185
|
} = _ref;
|
|
4183
|
-
|
|
4184
|
-
if (slots.default) {
|
|
4185
|
-
slotIcon = vue.computed(() => {
|
|
4186
|
-
const slot = slots.default?.();
|
|
4187
|
-
if (!slot) return;
|
|
4188
|
-
return slot.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4189
|
-
});
|
|
4190
|
-
}
|
|
4186
|
+
const slotIcon = vue.ref();
|
|
4191
4187
|
const {
|
|
4192
4188
|
themeClasses
|
|
4193
4189
|
} = provideTheme(props);
|
|
4194
4190
|
const {
|
|
4195
4191
|
iconData
|
|
4196
|
-
} = useIcon(slotIcon || props);
|
|
4192
|
+
} = useIcon(vue.computed(() => slotIcon.value || props.icon));
|
|
4197
4193
|
const {
|
|
4198
4194
|
sizeClasses
|
|
4199
4195
|
} = useSize(props);
|
|
@@ -4201,24 +4197,30 @@
|
|
|
4201
4197
|
textColorClasses,
|
|
4202
4198
|
textColorStyles
|
|
4203
4199
|
} = useTextColor(vue.toRef(props, 'color'));
|
|
4204
|
-
useRender(() =>
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4200
|
+
useRender(() => {
|
|
4201
|
+
const slotValue = slots.default?.();
|
|
4202
|
+
if (slotValue) {
|
|
4203
|
+
slotIcon.value = slotValue.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4204
|
+
}
|
|
4205
|
+
return vue.createVNode(iconData.value.component, {
|
|
4206
|
+
"tag": props.tag,
|
|
4207
|
+
"icon": iconData.value.icon,
|
|
4208
|
+
"class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
|
|
4209
|
+
'v-icon--clickable': !!attrs.onClick,
|
|
4210
|
+
'v-icon--start': props.start,
|
|
4211
|
+
'v-icon--end': props.end
|
|
4212
|
+
}, props.class],
|
|
4213
|
+
"style": [!sizeClasses.value ? {
|
|
4214
|
+
fontSize: convertToUnit(props.size),
|
|
4215
|
+
height: convertToUnit(props.size),
|
|
4216
|
+
width: convertToUnit(props.size)
|
|
4217
|
+
} : undefined, textColorStyles.value, props.style],
|
|
4218
|
+
"role": attrs.onClick ? 'button' : undefined,
|
|
4219
|
+
"aria-hidden": !attrs.onClick
|
|
4220
|
+
}, {
|
|
4221
|
+
default: () => [slotValue]
|
|
4222
|
+
});
|
|
4223
|
+
});
|
|
4222
4224
|
return {};
|
|
4223
4225
|
}
|
|
4224
4226
|
});
|
|
@@ -5055,7 +5057,7 @@
|
|
|
5055
5057
|
...makeVariantProps({
|
|
5056
5058
|
variant: 'elevated'
|
|
5057
5059
|
})
|
|
5058
|
-
}, '
|
|
5060
|
+
}, 'v-btn');
|
|
5059
5061
|
const VBtn = genericComponent()({
|
|
5060
5062
|
name: 'VBtn',
|
|
5061
5063
|
directives: {
|
|
@@ -5125,6 +5127,11 @@
|
|
|
5125
5127
|
if (props.value === undefined) return undefined;
|
|
5126
5128
|
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
|
5127
5129
|
});
|
|
5130
|
+
function onClick(e) {
|
|
5131
|
+
if (isDisabled.value) return;
|
|
5132
|
+
link.navigate?.(e);
|
|
5133
|
+
group?.toggle();
|
|
5134
|
+
}
|
|
5128
5135
|
useSelectLink(link, group?.select);
|
|
5129
5136
|
useRender(() => {
|
|
5130
5137
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -5147,11 +5154,7 @@
|
|
|
5147
5154
|
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
5148
5155
|
"disabled": isDisabled.value || undefined,
|
|
5149
5156
|
"href": link.href.value,
|
|
5150
|
-
"onClick":
|
|
5151
|
-
if (isDisabled.value) return;
|
|
5152
|
-
link.navigate?.(e);
|
|
5153
|
-
group?.toggle();
|
|
5154
|
-
},
|
|
5157
|
+
"onClick": onClick,
|
|
5155
5158
|
"value": valueAttr.value
|
|
5156
5159
|
}, {
|
|
5157
5160
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
|
|
@@ -5217,22 +5220,17 @@
|
|
|
5217
5220
|
|
|
5218
5221
|
const VAppBarNavIcon = genericComponent()({
|
|
5219
5222
|
name: 'VAppBarNavIcon',
|
|
5220
|
-
props: {
|
|
5221
|
-
icon:
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
},
|
|
5225
|
-
...makeComponentProps()
|
|
5226
|
-
},
|
|
5223
|
+
props: makeVBtnProps({
|
|
5224
|
+
icon: '$menu',
|
|
5225
|
+
variant: 'text'
|
|
5226
|
+
}),
|
|
5227
5227
|
setup(props, _ref) {
|
|
5228
5228
|
let {
|
|
5229
5229
|
slots
|
|
5230
5230
|
} = _ref;
|
|
5231
|
-
useRender(() => vue.createVNode(VBtn, {
|
|
5232
|
-
"class": ['v-app-bar-nav-icon'
|
|
5233
|
-
|
|
5234
|
-
"style": props.style
|
|
5235
|
-
}, slots));
|
|
5231
|
+
useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
|
|
5232
|
+
"class": ['v-app-bar-nav-icon']
|
|
5233
|
+
}), slots));
|
|
5236
5234
|
return {};
|
|
5237
5235
|
}
|
|
5238
5236
|
});
|
|
@@ -6435,7 +6433,7 @@
|
|
|
6435
6433
|
const vInputRef = vue.ref();
|
|
6436
6434
|
const vFieldRef = vue.ref();
|
|
6437
6435
|
const inputRef = vue.ref();
|
|
6438
|
-
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
|
|
6436
|
+
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
|
|
6439
6437
|
function onFocus() {
|
|
6440
6438
|
if (inputRef.value !== document.activeElement) {
|
|
6441
6439
|
inputRef.value?.focus();
|
|
@@ -6871,7 +6869,6 @@
|
|
|
6871
6869
|
"class": ['v-checkbox-btn', props.class],
|
|
6872
6870
|
"style": props.style,
|
|
6873
6871
|
"type": "checkbox",
|
|
6874
|
-
"inline": true,
|
|
6875
6872
|
"falseIcon": falseIcon.value,
|
|
6876
6873
|
"trueIcon": trueIcon.value,
|
|
6877
6874
|
"aria-checked": props.indeterminate ? 'mixed' : undefined
|
|
@@ -10370,11 +10367,13 @@
|
|
|
10370
10367
|
let {
|
|
10371
10368
|
isSelected
|
|
10372
10369
|
} = _ref2;
|
|
10373
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10370
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10374
10371
|
"modelValue": isSelected,
|
|
10375
10372
|
"ripple": false,
|
|
10376
10373
|
"tabindex": "-1"
|
|
10377
|
-
}, null) : undefined
|
|
10374
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
10375
|
+
"icon": item.props.prependIcon
|
|
10376
|
+
}, null)]);
|
|
10378
10377
|
}
|
|
10379
10378
|
});
|
|
10380
10379
|
}), slots['append-item']?.()]
|
|
@@ -10387,6 +10386,10 @@
|
|
|
10387
10386
|
}
|
|
10388
10387
|
const slotProps = {
|
|
10389
10388
|
'onClick:close': onChipClose,
|
|
10389
|
+
onMousedown(e) {
|
|
10390
|
+
e.preventDefault();
|
|
10391
|
+
e.stopPropagation();
|
|
10392
|
+
},
|
|
10390
10393
|
modelValue: true,
|
|
10391
10394
|
'onUpdate:modelValue': undefined
|
|
10392
10395
|
};
|
|
@@ -10730,6 +10733,7 @@
|
|
|
10730
10733
|
isPristine.value = true;
|
|
10731
10734
|
vue.nextTick(() => isSelecting.value = false);
|
|
10732
10735
|
} else {
|
|
10736
|
+
if (!props.multiple && !search.value) model.value = [];
|
|
10733
10737
|
menu.value = false;
|
|
10734
10738
|
search.value = '';
|
|
10735
10739
|
}
|
|
@@ -10809,11 +10813,13 @@
|
|
|
10809
10813
|
let {
|
|
10810
10814
|
isSelected
|
|
10811
10815
|
} = _ref2;
|
|
10812
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10816
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
10813
10817
|
"modelValue": isSelected,
|
|
10814
10818
|
"ripple": false,
|
|
10815
10819
|
"tabindex": "-1"
|
|
10816
|
-
}, null) : undefined
|
|
10820
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
10821
|
+
"icon": item.props.prependIcon
|
|
10822
|
+
}, null)]);
|
|
10817
10823
|
},
|
|
10818
10824
|
title: () => {
|
|
10819
10825
|
return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
@@ -10828,6 +10834,10 @@
|
|
|
10828
10834
|
}
|
|
10829
10835
|
const slotProps = {
|
|
10830
10836
|
'onClick:close': onChipClose,
|
|
10837
|
+
onMousedown(e) {
|
|
10838
|
+
e.preventDefault();
|
|
10839
|
+
e.stopPropagation();
|
|
10840
|
+
},
|
|
10831
10841
|
modelValue: true,
|
|
10832
10842
|
'onUpdate:modelValue': undefined
|
|
10833
10843
|
};
|
|
@@ -14254,11 +14264,13 @@
|
|
|
14254
14264
|
let {
|
|
14255
14265
|
isSelected
|
|
14256
14266
|
} = _ref2;
|
|
14257
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
14267
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
14258
14268
|
"modelValue": isSelected,
|
|
14259
14269
|
"ripple": false,
|
|
14260
14270
|
"tabindex": "-1"
|
|
14261
|
-
}, null) : undefined
|
|
14271
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
|
14272
|
+
"icon": item.props.prependIcon
|
|
14273
|
+
}, null)]);
|
|
14262
14274
|
},
|
|
14263
14275
|
title: () => {
|
|
14264
14276
|
return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
@@ -14273,6 +14285,10 @@
|
|
|
14273
14285
|
}
|
|
14274
14286
|
const slotProps = {
|
|
14275
14287
|
'onClick:close': onChipClose,
|
|
14288
|
+
onMousedown(e) {
|
|
14289
|
+
e.preventDefault();
|
|
14290
|
+
e.stopPropagation();
|
|
14291
|
+
},
|
|
14276
14292
|
modelValue: true,
|
|
14277
14293
|
'onUpdate:modelValue': undefined
|
|
14278
14294
|
};
|
|
@@ -14736,6 +14752,7 @@
|
|
|
14736
14752
|
const vInputRef = vue.ref();
|
|
14737
14753
|
const vFieldRef = vue.ref();
|
|
14738
14754
|
const inputRef = vue.ref();
|
|
14755
|
+
const isActive = vue.computed(() => isFocused.value || props.active);
|
|
14739
14756
|
function onFocus() {
|
|
14740
14757
|
if (inputRef.value !== document.activeElement) {
|
|
14741
14758
|
inputRef.value?.focus();
|
|
@@ -14804,7 +14821,7 @@
|
|
|
14804
14821
|
"onClick:appendInner": props['onClick:appendInner']
|
|
14805
14822
|
}, fieldProps, {
|
|
14806
14823
|
"id": id.value,
|
|
14807
|
-
"active":
|
|
14824
|
+
"active": isActive.value || isDirty.value,
|
|
14808
14825
|
"dirty": isDirty.value,
|
|
14809
14826
|
"disabled": isDisabled.value,
|
|
14810
14827
|
"focused": isFocused.value,
|
|
@@ -15970,7 +15987,6 @@
|
|
|
15970
15987
|
});
|
|
15971
15988
|
const {
|
|
15972
15989
|
layoutItemStyles,
|
|
15973
|
-
layoutRect,
|
|
15974
15990
|
layoutItemScrimStyles
|
|
15975
15991
|
} = useLayoutItem({
|
|
15976
15992
|
id: props.name,
|
|
@@ -16000,12 +16016,6 @@
|
|
|
16000
16016
|
opacity: dragProgress.value * 0.2,
|
|
16001
16017
|
transition: 'none'
|
|
16002
16018
|
} : undefined),
|
|
16003
|
-
...(layoutRect.value ? {
|
|
16004
|
-
left: convertToUnit(layoutRect.value.left),
|
|
16005
|
-
right: convertToUnit(layoutRect.value.right),
|
|
16006
|
-
top: convertToUnit(layoutRect.value.top),
|
|
16007
|
-
bottom: convertToUnit(layoutRect.value.bottom)
|
|
16008
|
-
} : undefined),
|
|
16009
16019
|
...layoutItemScrimStyles.value
|
|
16010
16020
|
}));
|
|
16011
16021
|
provideDefaults({
|
|
@@ -17969,7 +17979,7 @@
|
|
|
17969
17979
|
const vFieldRef = vue.ref();
|
|
17970
17980
|
const controlHeight = vue.ref('');
|
|
17971
17981
|
const textareaRef = vue.ref();
|
|
17972
|
-
const isActive = vue.computed(() => isFocused.value || props.
|
|
17982
|
+
const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
|
17973
17983
|
function onFocus() {
|
|
17974
17984
|
if (textareaRef.value !== document.activeElement) {
|
|
17975
17985
|
textareaRef.value?.focus();
|
|
@@ -19660,6 +19670,11 @@
|
|
|
19660
19670
|
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
|
19661
19671
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
|
19662
19672
|
});
|
|
19673
|
+
vue.watchEffect(() => {
|
|
19674
|
+
if (page.value > pageCount.value) {
|
|
19675
|
+
page.value = pageCount.value;
|
|
19676
|
+
}
|
|
19677
|
+
});
|
|
19663
19678
|
function setItemsPerPage(value) {
|
|
19664
19679
|
itemsPerPage.value = value;
|
|
19665
19680
|
page.value = 1;
|
|
@@ -21535,7 +21550,7 @@
|
|
|
21535
21550
|
date
|
|
21536
21551
|
};
|
|
21537
21552
|
}
|
|
21538
|
-
const version$1 = "3.2.
|
|
21553
|
+
const version$1 = "3.2.2";
|
|
21539
21554
|
createVuetify$1.version = version$1;
|
|
21540
21555
|
|
|
21541
21556
|
// Vue's inject() can only be used in setup
|
|
@@ -21547,7 +21562,7 @@
|
|
|
21547
21562
|
}
|
|
21548
21563
|
}
|
|
21549
21564
|
|
|
21550
|
-
const version = "3.2.
|
|
21565
|
+
const version = "3.2.2";
|
|
21551
21566
|
|
|
21552
21567
|
const createVuetify = function () {
|
|
21553
21568
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|