@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.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/CHANGELOG.md +53 -2
- package/dist/json/attributes.json +343 -195
- package/dist/json/importMap.json +20 -0
- package/dist/json/tags.json +106 -44
- package/dist/json/web-types.json +946 -549
- package/dist/vuetify.css +1486 -1085
- package/dist/vuetify.d.ts +9036 -8077
- package/dist/vuetify.esm.js +1511 -944
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1510 -943
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +825 -754
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +29 -8
- package/lib/components/VAlert/VAlert.mjs +31 -17
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +27 -7
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VAppBar/VAppBar.mjs +7 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +15 -14
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +39 -43
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -54
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +20 -1
- package/lib/components/VBtn/VBtn.mjs +20 -7
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +15 -2
- package/lib/components/VBtn/_variables.scss +3 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
- package/lib/components/VCard/VCard.css +13 -11
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -9
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +3 -0
- package/lib/components/VChip/VChip.sass +3 -0
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +92 -74
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -11
- package/lib/components/VDialog/VDialog.mjs +6 -9
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -10
- package/lib/components/VDialog/_variables.scss +3 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VField/VField.css +1 -1
- package/lib/components/VField/VField.mjs +3 -4
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +19 -16
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -16
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +3 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -1
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VList/VList.css +7 -6
- package/lib/components/VList/VList.mjs +36 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -2
- package/lib/components/VList/VListChildren.mjs +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +28 -10
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +119 -42
- package/lib/components/VList/VListItem.mjs +36 -32
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +76 -28
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -3
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +61 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -6
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +8 -0
- package/lib/components/VOverlay/VOverlay.mjs +16 -15
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +9 -0
- package/lib/components/VOverlay/_variables.scss +1 -0
- package/lib/components/VOverlay/positionStrategies.mjs +7 -3
- package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -14
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +10 -12
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VRadio/VRadio.mjs +1 -2
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +13 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -2
- package/lib/components/VSelect/VSelect.mjs +70 -91
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.sass +11 -5
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -7
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSnackbar/VSnackbar.css +14 -13
- package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -16
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSwitch/VSwitch.mjs +8 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -5
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VTabs/VTab.mjs +28 -32
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -2
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +5 -9
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -5
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.sass +9 -5
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -51
- package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +8 -11
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VWindow/VWindow.mjs +0 -8
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/index.d.ts +9025 -8077
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +18 -5
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +56 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +7 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/overlay.mjs +5 -1
- package/lib/composables/overlay.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +17 -5
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/stack.mjs +7 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/validation.mjs +6 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +0 -3
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +12 -7
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +18 -2
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +2 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +31 -29
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.0.0-beta.
|
|
2
|
+
* Vuetify v3.0.0-beta.2
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Fragment, ref, computed, unref, provide, inject, defineComponent as defineComponent$1, getCurrentInstance as getCurrentInstance$1, shallowReactive, toRaw, watchEffect, capitalize, camelize, h,
|
|
7
|
+
import { Fragment, ref, computed, unref, provide, inject, defineComponent as defineComponent$1, getCurrentInstance as getCurrentInstance$1, shallowRef, shallowReactive, toRaw, watchEffect, watch, effectScope, capitalize, camelize, h, readonly, onBeforeUnmount, onDeactivated, onActivated, reactive, onMounted, createVNode, toRefs, mergeProps, Transition, onBeforeMount, nextTick, withDirectives, vShow, resolveDirective, isRef, toRef, resolveDynamicComponent, TransitionGroup, onScopeDispose, warn, toHandlers, Teleport, vModelDynamic, createTextVNode, onBeforeUpdate, vModelText } from 'vue';
|
|
8
8
|
|
|
9
9
|
class Box {
|
|
10
10
|
constructor(_ref) {
|
|
@@ -793,7 +793,7 @@ function provideDefaults(defaults, options) {
|
|
|
793
793
|
return properties;
|
|
794
794
|
}
|
|
795
795
|
|
|
796
|
-
return mergeDeep(properties, properties
|
|
796
|
+
return mergeDeep(properties.prev, properties);
|
|
797
797
|
});
|
|
798
798
|
provide(DefaultsSymbol, newDefaults);
|
|
799
799
|
return newDefaults;
|
|
@@ -818,16 +818,33 @@ const defineComponent = function defineComponent(options) {
|
|
|
818
818
|
}
|
|
819
819
|
|
|
820
820
|
if (options._setup) {
|
|
821
|
+
var _options$props;
|
|
822
|
+
|
|
823
|
+
options.props = (_options$props = options.props) != null ? _options$props : {};
|
|
824
|
+
options.props._as = String;
|
|
825
|
+
|
|
821
826
|
options.setup = function setup(props, ctx) {
|
|
822
827
|
const vm = getCurrentInstance$1();
|
|
823
828
|
const defaults = useDefaults();
|
|
824
829
|
|
|
830
|
+
const _subcomponentDefaults = shallowRef();
|
|
831
|
+
|
|
825
832
|
const _props = shallowReactive({ ...toRaw(props)
|
|
826
833
|
});
|
|
827
834
|
|
|
828
835
|
watchEffect(() => {
|
|
836
|
+
var _props$_as;
|
|
837
|
+
|
|
829
838
|
const globalDefaults = defaults.value.global;
|
|
830
|
-
const componentDefaults = defaults.value[options.name];
|
|
839
|
+
const componentDefaults = defaults.value[(_props$_as = props._as) != null ? _props$_as : options.name];
|
|
840
|
+
|
|
841
|
+
if (componentDefaults) {
|
|
842
|
+
const subComponents = Object.entries(componentDefaults).filter(_ref => {
|
|
843
|
+
let [key] = _ref;
|
|
844
|
+
return key.startsWith('V');
|
|
845
|
+
});
|
|
846
|
+
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
847
|
+
}
|
|
831
848
|
|
|
832
849
|
for (const prop of Object.keys(props)) {
|
|
833
850
|
let newVal;
|
|
@@ -835,9 +852,9 @@ const defineComponent = function defineComponent(options) {
|
|
|
835
852
|
if (propIsDefined(vm.vnode, prop)) {
|
|
836
853
|
newVal = props[prop];
|
|
837
854
|
} else {
|
|
838
|
-
var
|
|
855
|
+
var _ref2, _componentDefaults$pr;
|
|
839
856
|
|
|
840
|
-
newVal = (
|
|
857
|
+
newVal = (_ref2 = (_componentDefaults$pr = componentDefaults == null ? void 0 : componentDefaults[prop]) != null ? _componentDefaults$pr : globalDefaults == null ? void 0 : globalDefaults[prop]) != null ? _ref2 : props[prop];
|
|
841
858
|
}
|
|
842
859
|
|
|
843
860
|
if (_props[prop] !== newVal) {
|
|
@@ -845,7 +862,21 @@ const defineComponent = function defineComponent(options) {
|
|
|
845
862
|
}
|
|
846
863
|
}
|
|
847
864
|
});
|
|
848
|
-
|
|
865
|
+
|
|
866
|
+
const setupBindings = options._setup(_props, ctx);
|
|
867
|
+
|
|
868
|
+
let scope;
|
|
869
|
+
watch(_subcomponentDefaults, (val, oldVal) => {
|
|
870
|
+
if (!val && scope) scope.stop();else if (val && !oldVal) {
|
|
871
|
+
scope = effectScope();
|
|
872
|
+
scope.run(() => {
|
|
873
|
+
provideDefaults(val);
|
|
874
|
+
});
|
|
875
|
+
}
|
|
876
|
+
}, {
|
|
877
|
+
immediate: true
|
|
878
|
+
});
|
|
879
|
+
return setupBindings;
|
|
849
880
|
};
|
|
850
881
|
}
|
|
851
882
|
|
|
@@ -1402,16 +1433,12 @@ function useTheme() {
|
|
|
1402
1433
|
function useResizeObserver(callback) {
|
|
1403
1434
|
const resizeRef = ref();
|
|
1404
1435
|
const contentRect = ref();
|
|
1405
|
-
const contentBoxSize = ref();
|
|
1406
|
-
const borderBoxSize = ref();
|
|
1407
1436
|
|
|
1408
1437
|
if (IN_BROWSER) {
|
|
1409
1438
|
const observer = new ResizeObserver(entries => {
|
|
1410
1439
|
callback == null ? void 0 : callback(entries, observer);
|
|
1411
1440
|
if (!entries.length) return;
|
|
1412
1441
|
contentRect.value = entries[0].contentRect;
|
|
1413
|
-
contentBoxSize.value = entries[0].contentBoxSize[0];
|
|
1414
|
-
borderBoxSize.value = entries[0].borderBoxSize[0];
|
|
1415
1442
|
});
|
|
1416
1443
|
onBeforeUnmount(() => {
|
|
1417
1444
|
observer.disconnect();
|
|
@@ -1420,8 +1447,6 @@ function useResizeObserver(callback) {
|
|
|
1420
1447
|
if (oldValue) {
|
|
1421
1448
|
observer.unobserve(oldValue);
|
|
1422
1449
|
contentRect.value = undefined;
|
|
1423
|
-
contentBoxSize.value = undefined;
|
|
1424
|
-
borderBoxSize.value = undefined;
|
|
1425
1450
|
}
|
|
1426
1451
|
|
|
1427
1452
|
if (newValue) observer.observe(newValue);
|
|
@@ -1432,16 +1457,15 @@ function useResizeObserver(callback) {
|
|
|
1432
1457
|
|
|
1433
1458
|
return {
|
|
1434
1459
|
resizeRef,
|
|
1435
|
-
contentRect: readonly(contentRect)
|
|
1436
|
-
contentBoxSize: readonly(contentBoxSize),
|
|
1437
|
-
borderBoxSize: readonly(borderBoxSize)
|
|
1460
|
+
contentRect: readonly(contentRect)
|
|
1438
1461
|
};
|
|
1439
1462
|
}
|
|
1440
1463
|
|
|
1441
1464
|
// Composables
|
|
1442
1465
|
|
|
1443
1466
|
const VuetifyLayoutKey = Symbol.for('vuetify:layout');
|
|
1444
|
-
const
|
|
1467
|
+
const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');
|
|
1468
|
+
const ROOT_ZINDEX = 1000;
|
|
1445
1469
|
const makeLayoutProps = propsFactory({
|
|
1446
1470
|
overlaps: {
|
|
1447
1471
|
type: Array,
|
|
@@ -1472,6 +1496,9 @@ function useLayoutItem(options) {
|
|
|
1472
1496
|
if (!layout) throw new Error('Could not find injected Vuetify layout');
|
|
1473
1497
|
const id = (_options$id = options.id) != null ? _options$id : `layout-item-${getUid()}`;
|
|
1474
1498
|
const vm = getCurrentInstance('useLayoutItem');
|
|
1499
|
+
provide(VuetifyLayoutItemKey, {
|
|
1500
|
+
id
|
|
1501
|
+
});
|
|
1475
1502
|
const isKeptAlive = ref(false);
|
|
1476
1503
|
onDeactivated(() => isKeptAlive.value = true);
|
|
1477
1504
|
onActivated(() => isKeptAlive.value = false);
|
|
@@ -1523,7 +1550,7 @@ const generateLayers = (layout, positions, layoutSizes, activeItems) => {
|
|
|
1523
1550
|
|
|
1524
1551
|
function createLayout(props) {
|
|
1525
1552
|
const parentLayout = inject(VuetifyLayoutKey, null);
|
|
1526
|
-
const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX
|
|
1553
|
+
const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);
|
|
1527
1554
|
const registered = ref([]);
|
|
1528
1555
|
const positions = reactive(new Map());
|
|
1529
1556
|
const layoutSizes = reactive(new Map());
|
|
@@ -1634,7 +1661,7 @@ function createLayout(props) {
|
|
|
1634
1661
|
layoutSizes.set(id, layoutSize);
|
|
1635
1662
|
activeItems.set(id, active);
|
|
1636
1663
|
disableTransitions && disabledTransitions.set(id, disableTransitions);
|
|
1637
|
-
const instances = findChildrenWithProvide(
|
|
1664
|
+
const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm == null ? void 0 : rootVm.vnode);
|
|
1638
1665
|
const instanceIndex = instances.indexOf(vm);
|
|
1639
1666
|
if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);
|
|
1640
1667
|
const index = computed(() => items.value.findIndex(i => i.id === id));
|
|
@@ -1647,7 +1674,7 @@ function createLayout(props) {
|
|
|
1647
1674
|
[position.value]: 0,
|
|
1648
1675
|
zIndex: zIndex.value,
|
|
1649
1676
|
transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,
|
|
1650
|
-
position: absolute.value || rootZIndex.value !== ROOT_ZINDEX
|
|
1677
|
+
position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',
|
|
1651
1678
|
...(transitionsEnabled.value ? undefined : {
|
|
1652
1679
|
transition: 'none'
|
|
1653
1680
|
})
|
|
@@ -1663,17 +1690,17 @@ function createLayout(props) {
|
|
|
1663
1690
|
}
|
|
1664
1691
|
|
|
1665
1692
|
return { ...styles,
|
|
1666
|
-
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${elementSize.value}px
|
|
1693
|
+
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
|
|
1667
1694
|
marginLeft: isOppositeHorizontal ? undefined : `${item.left}px`,
|
|
1668
1695
|
marginRight: isOppositeHorizontal ? `${item.right}px` : undefined,
|
|
1669
1696
|
marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,
|
|
1670
1697
|
marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,
|
|
1671
|
-
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : `${elementSize.value}px`
|
|
1698
|
+
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined
|
|
1672
1699
|
};
|
|
1673
1700
|
});
|
|
1674
1701
|
const layoutItemScrimStyles = computed(() => ({
|
|
1675
1702
|
zIndex: zIndex.value - 1,
|
|
1676
|
-
position: rootZIndex.value === ROOT_ZINDEX
|
|
1703
|
+
position: rootZIndex.value === ROOT_ZINDEX ? 'fixed' : 'absolute'
|
|
1677
1704
|
}));
|
|
1678
1705
|
return {
|
|
1679
1706
|
layoutItemStyles,
|
|
@@ -2569,19 +2596,23 @@ function useForwardRef(target) {
|
|
|
2569
2596
|
|
|
2570
2597
|
getOwnPropertyDescriptor(target, key) {
|
|
2571
2598
|
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
|
2572
|
-
if (descriptor) return descriptor;
|
|
2599
|
+
if (descriptor) return descriptor; // Check each ref's own properties
|
|
2573
2600
|
|
|
2574
2601
|
for (const ref of refs) {
|
|
2575
2602
|
if (!ref.value) continue;
|
|
2576
2603
|
const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
|
|
2577
2604
|
if (descriptor) return descriptor;
|
|
2578
|
-
}
|
|
2605
|
+
} // Recursive search up each ref's prototype
|
|
2606
|
+
|
|
2579
2607
|
|
|
2580
2608
|
for (const ref of refs) {
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2609
|
+
let obj = ref.value && Object.getPrototypeOf(ref.value);
|
|
2610
|
+
|
|
2611
|
+
while (obj) {
|
|
2612
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
|
|
2613
|
+
if (descriptor) return descriptor;
|
|
2614
|
+
obj = Object.getPrototypeOf(obj);
|
|
2615
|
+
}
|
|
2585
2616
|
}
|
|
2586
2617
|
|
|
2587
2618
|
return undefined;
|
|
@@ -2645,24 +2676,20 @@ const VToolbar = genericComponent()({
|
|
|
2645
2676
|
backgroundColorClasses,
|
|
2646
2677
|
backgroundColorStyles
|
|
2647
2678
|
} = useBackgroundColor(toRef(props, 'color'));
|
|
2648
|
-
const
|
|
2679
|
+
const isExtended = computed(() => !!(props.extended || slots.extension));
|
|
2680
|
+
const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
|
2681
|
+
const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
|
|
2649
2682
|
provideDefaults({
|
|
2650
2683
|
VBtn: {
|
|
2651
2684
|
flat: true,
|
|
2652
2685
|
variant: 'text'
|
|
2653
|
-
},
|
|
2654
|
-
VTextField: {
|
|
2655
|
-
hideDetails: true
|
|
2656
2686
|
}
|
|
2657
|
-
}, {
|
|
2658
|
-
scoped: true
|
|
2659
2687
|
});
|
|
2660
2688
|
useRender(() => {
|
|
2661
2689
|
var _slots$image, _slots$prepend, _slots$default, _slots$append, _slots$extension;
|
|
2662
2690
|
|
|
2663
2691
|
const hasTitle = !!(props.title || slots.title);
|
|
2664
2692
|
const hasImage = !!(slots.image || props.image);
|
|
2665
|
-
const isExtended = !!(props.extended || slots.extension);
|
|
2666
2693
|
return createVNode(props.tag, {
|
|
2667
2694
|
"class": ['v-toolbar', {
|
|
2668
2695
|
'v-toolbar--absolute': props.absolute,
|
|
@@ -2698,16 +2725,17 @@ const VToolbar = genericComponent()({
|
|
|
2698
2725
|
text: slots.title
|
|
2699
2726
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.append && createVNode("div", {
|
|
2700
2727
|
"class": "v-toolbar__append"
|
|
2701
|
-
}, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])]), isExtended && createVNode("div", {
|
|
2728
|
+
}, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])]), isExtended.value && createVNode("div", {
|
|
2702
2729
|
"class": "v-toolbar__extension",
|
|
2703
2730
|
"style": {
|
|
2704
|
-
height: convertToUnit(
|
|
2731
|
+
height: convertToUnit(extensionHeight.value)
|
|
2705
2732
|
}
|
|
2706
2733
|
}, [(_slots$extension = slots.extension) == null ? void 0 : _slots$extension.call(slots)])]
|
|
2707
2734
|
});
|
|
2708
2735
|
});
|
|
2709
2736
|
return useForwardRef({
|
|
2710
|
-
contentHeight
|
|
2737
|
+
contentHeight,
|
|
2738
|
+
extensionHeight
|
|
2711
2739
|
});
|
|
2712
2740
|
}
|
|
2713
2741
|
|
|
@@ -2785,9 +2813,11 @@ const VAppBar = defineComponent({
|
|
|
2785
2813
|
const vToolbarRef = ref();
|
|
2786
2814
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
2787
2815
|
const height = computed(() => {
|
|
2788
|
-
var _vToolbarRef$value;
|
|
2816
|
+
var _vToolbarRef$value$co, _vToolbarRef$value, _vToolbarRef$value$ex, _vToolbarRef$value2;
|
|
2789
2817
|
|
|
2790
|
-
|
|
2818
|
+
const height = (_vToolbarRef$value$co = (_vToolbarRef$value = vToolbarRef.value) == null ? void 0 : _vToolbarRef$value.contentHeight) != null ? _vToolbarRef$value$co : 0;
|
|
2819
|
+
const extensionHeight = (_vToolbarRef$value$ex = (_vToolbarRef$value2 = vToolbarRef.value) == null ? void 0 : _vToolbarRef$value2.extensionHeight) != null ? _vToolbarRef$value$ex : 0;
|
|
2820
|
+
return height + extensionHeight;
|
|
2791
2821
|
});
|
|
2792
2822
|
const {
|
|
2793
2823
|
layoutItemStyles
|
|
@@ -2807,7 +2837,9 @@ const VAppBar = defineComponent({
|
|
|
2807
2837
|
"class": ['v-app-bar', {
|
|
2808
2838
|
'v-app-bar--bottom': props.position === 'bottom'
|
|
2809
2839
|
}],
|
|
2810
|
-
"style": layoutItemStyles.value
|
|
2840
|
+
"style": { ...layoutItemStyles.value,
|
|
2841
|
+
height: undefined
|
|
2842
|
+
}
|
|
2811
2843
|
}, toolbarProps), slots);
|
|
2812
2844
|
};
|
|
2813
2845
|
}
|
|
@@ -2845,7 +2877,6 @@ function genOverlays(isClickable, name) {
|
|
|
2845
2877
|
}
|
|
2846
2878
|
const makeVariantProps = propsFactory({
|
|
2847
2879
|
color: String,
|
|
2848
|
-
textColor: String,
|
|
2849
2880
|
variant: {
|
|
2850
2881
|
type: String,
|
|
2851
2882
|
default: 'contained',
|
|
@@ -2865,12 +2896,10 @@ function useVariant(props) {
|
|
|
2865
2896
|
colorStyles
|
|
2866
2897
|
} = useColor(computed(() => {
|
|
2867
2898
|
const {
|
|
2868
|
-
textColor,
|
|
2869
2899
|
variant,
|
|
2870
2900
|
color
|
|
2871
2901
|
} = unref(props);
|
|
2872
2902
|
return {
|
|
2873
|
-
text: textColor,
|
|
2874
2903
|
[['contained', 'contained-flat'].includes(variant) ? 'background' : 'text']: color
|
|
2875
2904
|
};
|
|
2876
2905
|
}));
|
|
@@ -2981,10 +3010,11 @@ function useGroupItem(props, injectKey) {
|
|
|
2981
3010
|
const isSelected = computed(() => {
|
|
2982
3011
|
return group.isSelected(id);
|
|
2983
3012
|
});
|
|
2984
|
-
const selectedClass = computed(() =>
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
3013
|
+
const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
|
|
3014
|
+
watch(isSelected, value => {
|
|
3015
|
+
vm.emit('group:selected', {
|
|
3016
|
+
value
|
|
3017
|
+
});
|
|
2988
3018
|
});
|
|
2989
3019
|
return {
|
|
2990
3020
|
id,
|
|
@@ -3111,12 +3141,19 @@ function useGroup(props, injectKey) {
|
|
|
3111
3141
|
next: () => step(1),
|
|
3112
3142
|
isSelected: id => selected.value.includes(id),
|
|
3113
3143
|
selectedClass: computed(() => props.selectedClass),
|
|
3114
|
-
items: computed(() => items)
|
|
3144
|
+
items: computed(() => items),
|
|
3145
|
+
getItemIndex: value => getItemIndex(items, value)
|
|
3115
3146
|
};
|
|
3116
3147
|
provide(injectKey, state);
|
|
3117
3148
|
return state;
|
|
3118
3149
|
}
|
|
3119
3150
|
|
|
3151
|
+
function getItemIndex(items, value) {
|
|
3152
|
+
const ids = getIds(items, [value]);
|
|
3153
|
+
if (!ids.length) return -1;
|
|
3154
|
+
return items.findIndex(item => item.id === ids[0]);
|
|
3155
|
+
}
|
|
3156
|
+
|
|
3120
3157
|
function getIds(items, modelValue) {
|
|
3121
3158
|
const ids = [];
|
|
3122
3159
|
|
|
@@ -3344,24 +3381,26 @@ const useIcon = props => {
|
|
|
3344
3381
|
};
|
|
3345
3382
|
};
|
|
3346
3383
|
|
|
3384
|
+
const makeVIconProps = propsFactory({
|
|
3385
|
+
color: String,
|
|
3386
|
+
start: Boolean,
|
|
3387
|
+
end: Boolean,
|
|
3388
|
+
icon: {
|
|
3389
|
+
type: [String, Object]
|
|
3390
|
+
},
|
|
3391
|
+
...makeSizeProps(),
|
|
3392
|
+
...makeTagProps({
|
|
3393
|
+
tag: 'i'
|
|
3394
|
+
}),
|
|
3395
|
+
...makeThemeProps()
|
|
3396
|
+
}, 'v-icon');
|
|
3347
3397
|
const VIcon = defineComponent({
|
|
3348
3398
|
name: 'VIcon',
|
|
3349
|
-
props:
|
|
3350
|
-
color: String,
|
|
3351
|
-
left: Boolean,
|
|
3352
|
-
right: Boolean,
|
|
3353
|
-
icon: {
|
|
3354
|
-
type: [String, Object]
|
|
3355
|
-
},
|
|
3356
|
-
...makeSizeProps(),
|
|
3357
|
-
...makeTagProps({
|
|
3358
|
-
tag: 'i'
|
|
3359
|
-
}),
|
|
3360
|
-
...makeThemeProps()
|
|
3361
|
-
},
|
|
3399
|
+
props: makeVIconProps(),
|
|
3362
3400
|
|
|
3363
3401
|
setup(props, _ref) {
|
|
3364
3402
|
let {
|
|
3403
|
+
attrs,
|
|
3365
3404
|
slots
|
|
3366
3405
|
} = _ref;
|
|
3367
3406
|
let slotIcon;
|
|
@@ -3394,8 +3433,9 @@ const VIcon = defineComponent({
|
|
|
3394
3433
|
"tag": props.tag,
|
|
3395
3434
|
"icon": iconData.value.icon,
|
|
3396
3435
|
"class": ['v-icon', 'notranslate', sizeClasses.value, textColorClasses.value, themeClasses.value, {
|
|
3397
|
-
'v-icon--
|
|
3398
|
-
'v-icon--
|
|
3436
|
+
'v-icon--clickable': !!attrs.onClick,
|
|
3437
|
+
'v-icon--start': props.start,
|
|
3438
|
+
'v-icon--end': props.end
|
|
3399
3439
|
}],
|
|
3400
3440
|
"style": [!sizeClasses.value ? {
|
|
3401
3441
|
fontSize: convertToUnit(props.size),
|
|
@@ -3485,21 +3525,33 @@ const makeRouterProps = propsFactory({
|
|
|
3485
3525
|
replace: Boolean,
|
|
3486
3526
|
to: [String, Object]
|
|
3487
3527
|
}, 'router');
|
|
3528
|
+
let inTransition = false;
|
|
3488
3529
|
function useBackButton(cb) {
|
|
3489
3530
|
const router = useRouter();
|
|
3490
3531
|
let popped = false;
|
|
3491
|
-
let
|
|
3532
|
+
let removeBefore;
|
|
3533
|
+
let removeAfter;
|
|
3492
3534
|
onMounted(() => {
|
|
3493
3535
|
window.addEventListener('popstate', onPopstate);
|
|
3494
|
-
|
|
3495
|
-
|
|
3536
|
+
removeBefore = router == null ? void 0 : router.beforeEach((to, from, next) => {
|
|
3537
|
+
if (!inTransition) {
|
|
3538
|
+
setTimeout(() => popped ? cb(next) : next());
|
|
3539
|
+
} else {
|
|
3540
|
+
popped ? cb(next) : next();
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3543
|
+
inTransition = true;
|
|
3544
|
+
});
|
|
3545
|
+
removeAfter = router == null ? void 0 : router.afterEach(() => {
|
|
3546
|
+
inTransition = false;
|
|
3496
3547
|
});
|
|
3497
3548
|
});
|
|
3498
3549
|
onBeforeUnmount(() => {
|
|
3499
|
-
var
|
|
3550
|
+
var _removeBefore, _removeAfter;
|
|
3500
3551
|
|
|
3501
3552
|
window.removeEventListener('popstate', onPopstate);
|
|
3502
|
-
(
|
|
3553
|
+
(_removeBefore = removeBefore) == null ? void 0 : _removeBefore();
|
|
3554
|
+
(_removeAfter = removeAfter) == null ? void 0 : _removeAfter();
|
|
3503
3555
|
});
|
|
3504
3556
|
|
|
3505
3557
|
function onPopstate(e) {
|
|
@@ -3511,9 +3563,27 @@ function useBackButton(cb) {
|
|
|
3511
3563
|
}
|
|
3512
3564
|
}
|
|
3513
3565
|
|
|
3566
|
+
// Utilities
|
|
3567
|
+
|
|
3568
|
+
function useSelectLink(link, select) {
|
|
3569
|
+
watch(() => {
|
|
3570
|
+
var _link$isExactActive;
|
|
3571
|
+
|
|
3572
|
+
return (_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value;
|
|
3573
|
+
}, isExactActive => {
|
|
3574
|
+
if (link.isLink.value && isExactActive && select) {
|
|
3575
|
+
nextTick(() => {
|
|
3576
|
+
select(true);
|
|
3577
|
+
});
|
|
3578
|
+
}
|
|
3579
|
+
}, {
|
|
3580
|
+
immediate: true
|
|
3581
|
+
});
|
|
3582
|
+
}
|
|
3583
|
+
|
|
3514
3584
|
// Styles
|
|
3515
3585
|
|
|
3516
|
-
const
|
|
3586
|
+
const stopSymbol = Symbol('rippleStop');
|
|
3517
3587
|
const DELAY_RIPPLE = 80;
|
|
3518
3588
|
|
|
3519
3589
|
function transform(el, value) {
|
|
@@ -3661,9 +3731,9 @@ function isRippleEnabled(value) {
|
|
|
3661
3731
|
function rippleShow(e) {
|
|
3662
3732
|
const value = {};
|
|
3663
3733
|
const element = e.currentTarget;
|
|
3664
|
-
if (!(element != null && element._ripple) || element._ripple.touched || e[
|
|
3734
|
+
if (!(element != null && element._ripple) || element._ripple.touched || e[stopSymbol]) return; // Don't allow the event to trigger ripples on any other elements
|
|
3665
3735
|
|
|
3666
|
-
e[
|
|
3736
|
+
e[stopSymbol] = true;
|
|
3667
3737
|
|
|
3668
3738
|
if (isTouchEvent(e)) {
|
|
3669
3739
|
element._ripple.touched = true;
|
|
@@ -3704,6 +3774,10 @@ function rippleShow(e) {
|
|
|
3704
3774
|
}
|
|
3705
3775
|
}
|
|
3706
3776
|
|
|
3777
|
+
function rippleStop(e) {
|
|
3778
|
+
e[stopSymbol] = true;
|
|
3779
|
+
}
|
|
3780
|
+
|
|
3707
3781
|
function rippleHide(e) {
|
|
3708
3782
|
const element = e.currentTarget;
|
|
3709
3783
|
if (!element || !element._ripple) return;
|
|
@@ -3784,6 +3858,14 @@ function updateRipple(el, binding, wasEnabled) {
|
|
|
3784
3858
|
}
|
|
3785
3859
|
|
|
3786
3860
|
if (enabled && !wasEnabled) {
|
|
3861
|
+
if (modifiers.stop) {
|
|
3862
|
+
el.addEventListener('touchstart', rippleStop, {
|
|
3863
|
+
passive: true
|
|
3864
|
+
});
|
|
3865
|
+
el.addEventListener('mousedown', rippleStop);
|
|
3866
|
+
return;
|
|
3867
|
+
}
|
|
3868
|
+
|
|
3787
3869
|
el.addEventListener('touchstart', rippleShow, {
|
|
3788
3870
|
passive: true
|
|
3789
3871
|
});
|
|
@@ -3853,6 +3935,11 @@ const VBtn = defineComponent({
|
|
|
3853
3935
|
Ripple
|
|
3854
3936
|
},
|
|
3855
3937
|
props: {
|
|
3938
|
+
active: Boolean,
|
|
3939
|
+
symbol: {
|
|
3940
|
+
type: null,
|
|
3941
|
+
default: VBtnToggleSymbol
|
|
3942
|
+
},
|
|
3856
3943
|
flat: Boolean,
|
|
3857
3944
|
icon: [Boolean, String],
|
|
3858
3945
|
prependIcon: String,
|
|
@@ -3916,21 +4003,22 @@ const VBtn = defineComponent({
|
|
|
3916
4003
|
const {
|
|
3917
4004
|
sizeClasses
|
|
3918
4005
|
} = useSize(props);
|
|
3919
|
-
const group = useGroupItem(props,
|
|
4006
|
+
const group = useGroupItem(props, props.symbol, false);
|
|
3920
4007
|
const link = useLink(props, attrs);
|
|
3921
4008
|
const isDisabled = computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
|
|
3922
4009
|
const isElevated = computed(() => {
|
|
3923
4010
|
return props.variant === 'contained' && !(props.disabled || props.flat || props.border);
|
|
3924
4011
|
});
|
|
4012
|
+
useSelectLink(link, group == null ? void 0 : group.select);
|
|
3925
4013
|
return () => {
|
|
3926
|
-
var
|
|
4014
|
+
var _slots$default;
|
|
3927
4015
|
|
|
3928
4016
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
3929
4017
|
const hasColor = !group || group.isSelected.value;
|
|
3930
4018
|
return withDirectives(createVNode(Tag, {
|
|
3931
4019
|
"type": Tag === 'a' ? undefined : 'button',
|
|
3932
4020
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
|
3933
|
-
'v-btn--active':
|
|
4021
|
+
'v-btn--active': props.active,
|
|
3934
4022
|
'v-btn--block': props.block,
|
|
3935
4023
|
'v-btn--disabled': isDisabled.value,
|
|
3936
4024
|
'v-btn--elevated': isElevated.value,
|
|
@@ -3941,12 +4029,18 @@ const VBtn = defineComponent({
|
|
|
3941
4029
|
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, positionStyles.value],
|
|
3942
4030
|
"disabled": isDisabled.value || undefined,
|
|
3943
4031
|
"href": link.href.value,
|
|
3944
|
-
"onClick":
|
|
4032
|
+
"onClick": e => {
|
|
4033
|
+
var _link$navigate;
|
|
4034
|
+
|
|
4035
|
+
if (isDisabled.value) return;
|
|
4036
|
+
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
4037
|
+
group == null ? void 0 : group.toggle();
|
|
4038
|
+
}
|
|
3945
4039
|
}, {
|
|
3946
4040
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && props.prependIcon && createVNode(VIcon, {
|
|
3947
4041
|
"class": "v-btn__icon",
|
|
3948
4042
|
"icon": props.prependIcon,
|
|
3949
|
-
"
|
|
4043
|
+
"start": true
|
|
3950
4044
|
}, null), typeof props.icon === 'boolean' ? (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots) : createVNode(VIcon, {
|
|
3951
4045
|
"class": "v-btn__icon",
|
|
3952
4046
|
"icon": props.icon,
|
|
@@ -3954,7 +4048,7 @@ const VBtn = defineComponent({
|
|
|
3954
4048
|
}, null), !props.icon && props.appendIcon && createVNode(VIcon, {
|
|
3955
4049
|
"class": "v-btn__icon",
|
|
3956
4050
|
"icon": props.appendIcon,
|
|
3957
|
-
"
|
|
4051
|
+
"end": true
|
|
3958
4052
|
}, null)]
|
|
3959
4053
|
}), [[resolveDirective("ripple"), !isDisabled.value && props.ripple, null]]);
|
|
3960
4054
|
};
|
|
@@ -4004,7 +4098,6 @@ const VToolbarItems = defineComponent({
|
|
|
4004
4098
|
provideDefaults({
|
|
4005
4099
|
VBtn: {
|
|
4006
4100
|
color: toRef(props, 'color'),
|
|
4007
|
-
textColor: toRef(props, 'textColor'),
|
|
4008
4101
|
variant: toRef(props, 'variant')
|
|
4009
4102
|
}
|
|
4010
4103
|
});
|
|
@@ -4031,6 +4124,7 @@ const VAppBarTitle = defineComponent({ ...VToolbarTitle,
|
|
|
4031
4124
|
|
|
4032
4125
|
});
|
|
4033
4126
|
|
|
4127
|
+
// Utilities
|
|
4034
4128
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
|
4035
4129
|
|
|
4036
4130
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
|
@@ -4100,7 +4194,6 @@ const VAlert = defineComponent({
|
|
|
4100
4194
|
|
|
4101
4195
|
return {
|
|
4102
4196
|
color: (_props$color = props.color) != null ? _props$color : props.type,
|
|
4103
|
-
textColor: props.textColor,
|
|
4104
4197
|
variant: props.variant
|
|
4105
4198
|
};
|
|
4106
4199
|
});
|
|
@@ -4140,9 +4233,10 @@ const VAlert = defineComponent({
|
|
|
4140
4233
|
return () => {
|
|
4141
4234
|
var _slots$default;
|
|
4142
4235
|
|
|
4143
|
-
const hasClose = !!(slots.close || props.closable);
|
|
4144
4236
|
const hasPrepend = !!(slots.prepend || icon.value);
|
|
4145
4237
|
const hasTitle = !!(slots.title || props.title);
|
|
4238
|
+
const hasText = !!(props.text || slots.text);
|
|
4239
|
+
const hasClose = !!(slots.close || props.closable);
|
|
4146
4240
|
return isActive.value && createVNode(props.tag, {
|
|
4147
4241
|
"class": ['v-alert', props.border && {
|
|
4148
4242
|
'v-alert--border': !!props.border,
|
|
@@ -4156,43 +4250,57 @@ const VAlert = defineComponent({
|
|
|
4156
4250
|
default: () => [genOverlays(false, 'v-alert'), props.border && createVNode("div", {
|
|
4157
4251
|
"class": ['v-alert__border', textColorClasses.value],
|
|
4158
4252
|
"style": textColorStyles.value
|
|
4159
|
-
}, null), hasPrepend && createVNode(
|
|
4160
|
-
"
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4253
|
+
}, null), hasPrepend && createVNode(VDefaultsProvider, {
|
|
4254
|
+
"defaults": {
|
|
4255
|
+
VIcon: {
|
|
4256
|
+
density: props.density,
|
|
4257
|
+
icon: icon.value,
|
|
4258
|
+
size: props.prominent ? 44 : 'default'
|
|
4259
|
+
}
|
|
4260
|
+
}
|
|
4261
|
+
}, {
|
|
4262
|
+
default: () => [createVNode("div", {
|
|
4263
|
+
"class": "v-alert__prepend"
|
|
4264
|
+
}, [slots.prepend ? slots.prepend() : icon.value && createVNode(VIcon, null, null)])]
|
|
4265
|
+
}), createVNode("div", {
|
|
4165
4266
|
"class": "v-alert__content"
|
|
4166
4267
|
}, [hasTitle && createVNode(VAlertTitle, null, {
|
|
4167
4268
|
default: () => [slots.title ? slots.title() : props.title]
|
|
4168
|
-
}), slots.text ? slots.text() : props.text, (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]), slots.append && createVNode("div", {
|
|
4269
|
+
}), hasText && (slots.text ? slots.text() : props.text), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]), slots.append && createVNode("div", {
|
|
4169
4270
|
"class": "v-alert__append"
|
|
4170
|
-
}, [slots.append()]), hasClose && createVNode(
|
|
4171
|
-
"
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4271
|
+
}, [slots.append()]), hasClose && createVNode(VDefaultsProvider, {
|
|
4272
|
+
"defaults": {
|
|
4273
|
+
VIcon: {
|
|
4274
|
+
icon: props.closeIcon,
|
|
4275
|
+
size: 'small'
|
|
4276
|
+
}
|
|
4277
|
+
}
|
|
4278
|
+
}, {
|
|
4279
|
+
default: () => [createVNode("div", {
|
|
4280
|
+
"class": "v-alert__close",
|
|
4281
|
+
"onClick": onCloseClick
|
|
4282
|
+
}, [slots.close ? slots.close() : createVNode(VIcon, null, null)])]
|
|
4283
|
+
})]
|
|
4177
4284
|
});
|
|
4178
4285
|
};
|
|
4179
4286
|
}
|
|
4180
4287
|
|
|
4181
4288
|
});
|
|
4182
4289
|
|
|
4290
|
+
const makeVAvatarProps = propsFactory({
|
|
4291
|
+
color: String,
|
|
4292
|
+
start: Boolean,
|
|
4293
|
+
end: Boolean,
|
|
4294
|
+
icon: String,
|
|
4295
|
+
image: String,
|
|
4296
|
+
...makeDensityProps(),
|
|
4297
|
+
...makeRoundedProps(),
|
|
4298
|
+
...makeSizeProps(),
|
|
4299
|
+
...makeTagProps()
|
|
4300
|
+
});
|
|
4183
4301
|
const VAvatar = defineComponent({
|
|
4184
4302
|
name: 'VAvatar',
|
|
4185
|
-
props:
|
|
4186
|
-
color: String,
|
|
4187
|
-
left: Boolean,
|
|
4188
|
-
right: Boolean,
|
|
4189
|
-
icon: String,
|
|
4190
|
-
image: String,
|
|
4191
|
-
...makeDensityProps(),
|
|
4192
|
-
...makeRoundedProps(),
|
|
4193
|
-
...makeSizeProps(),
|
|
4194
|
-
...makeTagProps()
|
|
4195
|
-
},
|
|
4303
|
+
props: makeVAvatarProps(),
|
|
4196
4304
|
|
|
4197
4305
|
setup(props, _ref) {
|
|
4198
4306
|
let {
|
|
@@ -4217,8 +4325,8 @@ const VAvatar = defineComponent({
|
|
|
4217
4325
|
|
|
4218
4326
|
return createVNode(props.tag, {
|
|
4219
4327
|
"class": ['v-avatar', {
|
|
4220
|
-
'v-avatar--
|
|
4221
|
-
'v-avatar--
|
|
4328
|
+
'v-avatar--start': props.start,
|
|
4329
|
+
'v-avatar--end': props.end
|
|
4222
4330
|
}, backgroundColorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value],
|
|
4223
4331
|
"style": [backgroundColorStyles.value, sizeStyles.value]
|
|
4224
4332
|
}, {
|
|
@@ -4847,139 +4955,109 @@ function useList() {
|
|
|
4847
4955
|
return inject(ListKey, null);
|
|
4848
4956
|
}
|
|
4849
4957
|
|
|
4850
|
-
const singleOpenStrategy =
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
if (value) {
|
|
4859
|
-
const newOpened = new Set();
|
|
4860
|
-
newOpened.add(id);
|
|
4861
|
-
let parent = parents.get(id);
|
|
4862
|
-
|
|
4863
|
-
while (parent != null) {
|
|
4864
|
-
newOpened.add(parent);
|
|
4865
|
-
parent = parents.get(parent);
|
|
4866
|
-
}
|
|
4958
|
+
const singleOpenStrategy = {
|
|
4959
|
+
open: _ref => {
|
|
4960
|
+
let {
|
|
4961
|
+
id,
|
|
4962
|
+
value,
|
|
4963
|
+
opened,
|
|
4964
|
+
parents
|
|
4965
|
+
} = _ref;
|
|
4867
4966
|
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
}
|
|
4873
|
-
};
|
|
4874
|
-
const multipleOpenStrategy = _ref2 => {
|
|
4875
|
-
let {
|
|
4876
|
-
id,
|
|
4877
|
-
value,
|
|
4878
|
-
opened,
|
|
4879
|
-
parents
|
|
4880
|
-
} = _ref2;
|
|
4967
|
+
if (value) {
|
|
4968
|
+
const newOpened = new Set();
|
|
4969
|
+
newOpened.add(id);
|
|
4970
|
+
let parent = parents.get(id);
|
|
4881
4971
|
|
|
4882
|
-
|
|
4883
|
-
|
|
4884
|
-
|
|
4972
|
+
while (parent != null) {
|
|
4973
|
+
newOpened.add(parent);
|
|
4974
|
+
parent = parents.get(parent);
|
|
4975
|
+
}
|
|
4885
4976
|
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4977
|
+
return newOpened;
|
|
4978
|
+
} else {
|
|
4979
|
+
opened.delete(id);
|
|
4980
|
+
return opened;
|
|
4889
4981
|
}
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
} else {
|
|
4893
|
-
opened.delete(id);
|
|
4894
|
-
}
|
|
4895
|
-
|
|
4896
|
-
return opened;
|
|
4982
|
+
},
|
|
4983
|
+
select: () => null
|
|
4897
4984
|
};
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
select: _ref => {
|
|
4985
|
+
const multipleOpenStrategy = {
|
|
4986
|
+
open: _ref2 => {
|
|
4901
4987
|
let {
|
|
4902
4988
|
id,
|
|
4903
4989
|
value,
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
} =
|
|
4907
|
-
selected.set(id, value ? 'on' : mandatory && !Array.from(selected.entries()).find(_ref2 => {
|
|
4908
|
-
let [key, value] = _ref2;
|
|
4909
|
-
return value === 'on' && key !== id;
|
|
4910
|
-
}) ? 'on' : 'off');
|
|
4911
|
-
return selected;
|
|
4912
|
-
},
|
|
4913
|
-
in: (v, children, parents) => {
|
|
4914
|
-
let map = new Map();
|
|
4990
|
+
opened,
|
|
4991
|
+
parents
|
|
4992
|
+
} = _ref2;
|
|
4915
4993
|
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
value: true,
|
|
4920
|
-
selected: new Map(map),
|
|
4921
|
-
children,
|
|
4922
|
-
parents
|
|
4923
|
-
});
|
|
4924
|
-
}
|
|
4994
|
+
if (value) {
|
|
4995
|
+
let parent = parents.get(id);
|
|
4996
|
+
opened.add(id);
|
|
4925
4997
|
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4998
|
+
while (parent != null && parent !== id) {
|
|
4999
|
+
opened.add(parent);
|
|
5000
|
+
parent = parents.get(parent);
|
|
5001
|
+
}
|
|
4930
5002
|
|
|
4931
|
-
|
|
4932
|
-
|
|
5003
|
+
return opened;
|
|
5004
|
+
} else {
|
|
5005
|
+
opened.delete(id);
|
|
4933
5006
|
}
|
|
4934
5007
|
|
|
4935
|
-
return
|
|
4936
|
-
}
|
|
5008
|
+
return opened;
|
|
5009
|
+
},
|
|
5010
|
+
select: () => null
|
|
4937
5011
|
};
|
|
4938
|
-
const
|
|
5012
|
+
const listOpenStrategy = {
|
|
5013
|
+
open: multipleOpenStrategy.open,
|
|
4939
5014
|
select: _ref3 => {
|
|
4940
5015
|
let {
|
|
4941
5016
|
id,
|
|
4942
5017
|
value,
|
|
4943
|
-
|
|
5018
|
+
opened,
|
|
5019
|
+
parents
|
|
4944
5020
|
} = _ref3;
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
selected: new Map()
|
|
4949
|
-
});
|
|
4950
|
-
},
|
|
4951
|
-
in: (v, children, parents) => {
|
|
4952
|
-
let map = new Map();
|
|
5021
|
+
if (!value) return opened;
|
|
5022
|
+
const path = [];
|
|
5023
|
+
let parent = parents.get(id);
|
|
4953
5024
|
|
|
4954
|
-
|
|
4955
|
-
|
|
5025
|
+
while (parent != null) {
|
|
5026
|
+
path.push(parent);
|
|
5027
|
+
parent = parents.get(parent);
|
|
4956
5028
|
}
|
|
4957
5029
|
|
|
4958
|
-
return
|
|
4959
|
-
},
|
|
4960
|
-
out: (v, children, parents) => {
|
|
4961
|
-
return independentSelectStrategy.out(v, children, parents);
|
|
5030
|
+
return new Set(path);
|
|
4962
5031
|
}
|
|
4963
5032
|
};
|
|
4964
|
-
|
|
4965
|
-
|
|
5033
|
+
|
|
5034
|
+
/* eslint-disable sonarjs/no-identical-functions */
|
|
5035
|
+
const independentSelectStrategy = mandatory => {
|
|
4966
5036
|
const strategy = {
|
|
4967
|
-
select:
|
|
5037
|
+
select: _ref => {
|
|
4968
5038
|
let {
|
|
4969
5039
|
id,
|
|
4970
5040
|
value,
|
|
4971
|
-
selected
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
5041
|
+
selected
|
|
5042
|
+
} = _ref;
|
|
5043
|
+
|
|
5044
|
+
// When mandatory and we're trying to deselect when id
|
|
5045
|
+
// is the only currently selected item then do nothing
|
|
5046
|
+
if (mandatory && !value) {
|
|
5047
|
+
const on = Array.from(selected.entries()).reduce((arr, _ref2) => {
|
|
5048
|
+
let [key, value] = _ref2;
|
|
5049
|
+
return value === 'on' ? [...arr, key] : arr;
|
|
5050
|
+
}, []);
|
|
5051
|
+
if (on.length === 1 && on[0] === id) return selected;
|
|
5052
|
+
}
|
|
5053
|
+
|
|
4976
5054
|
selected.set(id, value ? 'on' : 'off');
|
|
4977
5055
|
return selected;
|
|
4978
5056
|
},
|
|
4979
5057
|
in: (v, children, parents) => {
|
|
4980
5058
|
let map = new Map();
|
|
4981
5059
|
|
|
4982
|
-
for (const id of v
|
|
5060
|
+
for (const id of v || []) {
|
|
4983
5061
|
map = strategy.select({
|
|
4984
5062
|
id,
|
|
4985
5063
|
value: true,
|
|
@@ -4991,66 +5069,164 @@ const leafSelectStrategy = function () {
|
|
|
4991
5069
|
|
|
4992
5070
|
return map;
|
|
4993
5071
|
},
|
|
4994
|
-
out:
|
|
5072
|
+
out: v => {
|
|
5073
|
+
const arr = [];
|
|
5074
|
+
|
|
5075
|
+
for (const [key, value] of v.entries()) {
|
|
5076
|
+
if (value === 'on') arr.push(key);
|
|
5077
|
+
}
|
|
5078
|
+
|
|
5079
|
+
return arr;
|
|
5080
|
+
}
|
|
4995
5081
|
};
|
|
4996
5082
|
return strategy;
|
|
4997
5083
|
};
|
|
4998
|
-
const
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5084
|
+
const independentSingleSelectStrategy = mandatory => {
|
|
5085
|
+
const parentStrategy = independentSelectStrategy(mandatory);
|
|
5086
|
+
const strategy = {
|
|
5087
|
+
select: _ref3 => {
|
|
5088
|
+
let {
|
|
5089
|
+
selected,
|
|
5090
|
+
id,
|
|
5091
|
+
...rest
|
|
5092
|
+
} = _ref3;
|
|
5093
|
+
const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
|
|
5094
|
+
return parentStrategy.select({ ...rest,
|
|
5095
|
+
id,
|
|
5096
|
+
selected: singleSelected
|
|
5097
|
+
});
|
|
5098
|
+
},
|
|
5099
|
+
in: (v, children, parents) => {
|
|
5100
|
+
let map = new Map();
|
|
5012
5101
|
|
|
5013
|
-
if (
|
|
5014
|
-
|
|
5102
|
+
if (v != null && v.length) {
|
|
5103
|
+
map = parentStrategy.in(v.slice(0, 1), children, parents);
|
|
5015
5104
|
}
|
|
5016
|
-
}
|
|
5017
|
-
|
|
5018
|
-
let parent = parents.get(id);
|
|
5019
5105
|
|
|
5020
|
-
|
|
5021
|
-
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
5025
|
-
parent = parents.get(parent);
|
|
5106
|
+
return map;
|
|
5107
|
+
},
|
|
5108
|
+
out: (v, children, parents) => {
|
|
5109
|
+
return parentStrategy.out(v, children, parents);
|
|
5026
5110
|
}
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5111
|
+
};
|
|
5112
|
+
return strategy;
|
|
5113
|
+
};
|
|
5114
|
+
const leafSelectStrategy = mandatory => {
|
|
5115
|
+
const parentStrategy = independentSelectStrategy(mandatory);
|
|
5116
|
+
const strategy = {
|
|
5117
|
+
select: _ref4 => {
|
|
5118
|
+
let {
|
|
5035
5119
|
id,
|
|
5036
|
-
|
|
5037
|
-
selected: new Map(map),
|
|
5120
|
+
selected,
|
|
5038
5121
|
children,
|
|
5039
|
-
|
|
5122
|
+
...rest
|
|
5123
|
+
} = _ref4;
|
|
5124
|
+
if (children.has(id)) return selected;
|
|
5125
|
+
return parentStrategy.select({
|
|
5126
|
+
id,
|
|
5127
|
+
selected,
|
|
5128
|
+
children,
|
|
5129
|
+
...rest
|
|
5040
5130
|
});
|
|
5041
|
-
}
|
|
5131
|
+
},
|
|
5132
|
+
in: parentStrategy.in,
|
|
5133
|
+
out: parentStrategy.out
|
|
5134
|
+
};
|
|
5135
|
+
return strategy;
|
|
5136
|
+
};
|
|
5137
|
+
const leafSingleSelectStrategy = mandatory => {
|
|
5138
|
+
const parentStrategy = independentSingleSelectStrategy(mandatory);
|
|
5139
|
+
const strategy = {
|
|
5140
|
+
select: _ref5 => {
|
|
5141
|
+
let {
|
|
5142
|
+
id,
|
|
5143
|
+
selected,
|
|
5144
|
+
children,
|
|
5145
|
+
...rest
|
|
5146
|
+
} = _ref5;
|
|
5147
|
+
if (children.has(id)) return selected;
|
|
5148
|
+
return parentStrategy.select({
|
|
5149
|
+
id,
|
|
5150
|
+
selected,
|
|
5151
|
+
children,
|
|
5152
|
+
...rest
|
|
5153
|
+
});
|
|
5154
|
+
},
|
|
5155
|
+
in: parentStrategy.in,
|
|
5156
|
+
out: parentStrategy.out
|
|
5157
|
+
};
|
|
5158
|
+
return strategy;
|
|
5159
|
+
};
|
|
5160
|
+
const classicSelectStrategy = mandatory => {
|
|
5161
|
+
const strategy = {
|
|
5162
|
+
select: _ref6 => {
|
|
5163
|
+
let {
|
|
5164
|
+
id,
|
|
5165
|
+
value,
|
|
5166
|
+
selected,
|
|
5167
|
+
children,
|
|
5168
|
+
parents
|
|
5169
|
+
} = _ref6;
|
|
5170
|
+
const original = new Map(selected);
|
|
5171
|
+
const items = [id];
|
|
5042
5172
|
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
const arr = [];
|
|
5173
|
+
while (items.length) {
|
|
5174
|
+
const item = items.shift();
|
|
5175
|
+
selected.set(item, value ? 'on' : 'off');
|
|
5047
5176
|
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5177
|
+
if (children.has(item)) {
|
|
5178
|
+
items.push(...children.get(item));
|
|
5179
|
+
}
|
|
5180
|
+
}
|
|
5051
5181
|
|
|
5052
|
-
|
|
5053
|
-
|
|
5182
|
+
let parent = parents.get(id);
|
|
5183
|
+
|
|
5184
|
+
while (parent) {
|
|
5185
|
+
const childrenIds = children.get(parent);
|
|
5186
|
+
const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
|
|
5187
|
+
const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
|
|
5188
|
+
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
5189
|
+
parent = parents.get(parent);
|
|
5190
|
+
} // If mandatory and planned deselect results in no selected
|
|
5191
|
+
// items then we can't do it, so return original state
|
|
5192
|
+
|
|
5193
|
+
|
|
5194
|
+
if (mandatory && !value) {
|
|
5195
|
+
const on = Array.from(selected.entries()).reduce((arr, _ref7) => {
|
|
5196
|
+
let [key, value] = _ref7;
|
|
5197
|
+
return value === 'on' ? [...arr, key] : arr;
|
|
5198
|
+
}, []);
|
|
5199
|
+
if (on.length === 0) return original;
|
|
5200
|
+
}
|
|
5201
|
+
|
|
5202
|
+
return selected;
|
|
5203
|
+
},
|
|
5204
|
+
in: (v, children, parents) => {
|
|
5205
|
+
let map = new Map();
|
|
5206
|
+
|
|
5207
|
+
for (const id of v || []) {
|
|
5208
|
+
map = strategy.select({
|
|
5209
|
+
id,
|
|
5210
|
+
value: true,
|
|
5211
|
+
selected: new Map(map),
|
|
5212
|
+
children,
|
|
5213
|
+
parents
|
|
5214
|
+
});
|
|
5215
|
+
}
|
|
5216
|
+
|
|
5217
|
+
return map;
|
|
5218
|
+
},
|
|
5219
|
+
out: (v, children) => {
|
|
5220
|
+
const arr = [];
|
|
5221
|
+
|
|
5222
|
+
for (const [key, value] of v.entries()) {
|
|
5223
|
+
if (value === 'on' && !children.has(key)) arr.push(key);
|
|
5224
|
+
}
|
|
5225
|
+
|
|
5226
|
+
return arr;
|
|
5227
|
+
}
|
|
5228
|
+
};
|
|
5229
|
+
return strategy;
|
|
5054
5230
|
};
|
|
5055
5231
|
|
|
5056
5232
|
const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
@@ -5085,26 +5261,29 @@ const useNested = props => {
|
|
|
5085
5261
|
|
|
5086
5262
|
switch (props.selectStrategy) {
|
|
5087
5263
|
case 'single-leaf':
|
|
5088
|
-
return
|
|
5264
|
+
return leafSingleSelectStrategy(props.mandatory);
|
|
5089
5265
|
|
|
5090
5266
|
case 'leaf':
|
|
5091
|
-
return leafSelectStrategy();
|
|
5267
|
+
return leafSelectStrategy(props.mandatory);
|
|
5092
5268
|
|
|
5093
5269
|
case 'independent':
|
|
5094
|
-
return independentSelectStrategy;
|
|
5270
|
+
return independentSelectStrategy(props.mandatory);
|
|
5095
5271
|
|
|
5096
5272
|
case 'single-independent':
|
|
5097
|
-
return independentSingleSelectStrategy;
|
|
5273
|
+
return independentSingleSelectStrategy(props.mandatory);
|
|
5098
5274
|
|
|
5099
5275
|
case 'classic':
|
|
5100
5276
|
default:
|
|
5101
|
-
return classicSelectStrategy;
|
|
5277
|
+
return classicSelectStrategy(props.mandatory);
|
|
5102
5278
|
}
|
|
5103
5279
|
});
|
|
5104
5280
|
const openStrategy = computed(() => {
|
|
5105
5281
|
if (typeof props.openStrategy === 'function') return props.openStrategy;
|
|
5106
5282
|
|
|
5107
5283
|
switch (props.openStrategy) {
|
|
5284
|
+
case 'list':
|
|
5285
|
+
return listOpenStrategy;
|
|
5286
|
+
|
|
5108
5287
|
case 'single':
|
|
5109
5288
|
return singleOpenStrategy;
|
|
5110
5289
|
|
|
@@ -5175,7 +5354,7 @@ const useNested = props => {
|
|
|
5175
5354
|
path: getPath(id),
|
|
5176
5355
|
event
|
|
5177
5356
|
});
|
|
5178
|
-
const newOpened = openStrategy.value({
|
|
5357
|
+
const newOpened = openStrategy.value.open({
|
|
5179
5358
|
id,
|
|
5180
5359
|
value,
|
|
5181
5360
|
opened: new Set(opened.value),
|
|
@@ -5198,10 +5377,19 @@ const useNested = props => {
|
|
|
5198
5377
|
selected: new Map(selected.value),
|
|
5199
5378
|
children: children.value,
|
|
5200
5379
|
parents: parents.value,
|
|
5201
|
-
event
|
|
5202
|
-
mandatory: props.mandatory
|
|
5380
|
+
event
|
|
5203
5381
|
});
|
|
5204
5382
|
newSelected && (selected.value = newSelected);
|
|
5383
|
+
const newOpened = openStrategy.value.select({
|
|
5384
|
+
id,
|
|
5385
|
+
value,
|
|
5386
|
+
selected: new Map(selected.value),
|
|
5387
|
+
opened: new Set(opened.value),
|
|
5388
|
+
children: children.value,
|
|
5389
|
+
parents: parents.value,
|
|
5390
|
+
event
|
|
5391
|
+
});
|
|
5392
|
+
newOpened && (opened.value = newOpened);
|
|
5205
5393
|
},
|
|
5206
5394
|
children,
|
|
5207
5395
|
parents
|
|
@@ -5225,11 +5413,12 @@ const useNestedItem = (id, isGroup) => {
|
|
|
5225
5413
|
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
|
5226
5414
|
isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
|
|
5227
5415
|
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
|
5228
|
-
isLeaf: computed(() => !parent.root.children.value.get(computedId.value))
|
|
5416
|
+
isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
|
|
5417
|
+
isGroupActivator: parent.isGroupActivator
|
|
5229
5418
|
};
|
|
5230
|
-
!parent.
|
|
5419
|
+
!parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
|
|
5231
5420
|
onBeforeUnmount(() => {
|
|
5232
|
-
!parent.
|
|
5421
|
+
!parent.isGroupActivator && parent.root.unregister(computedId.value);
|
|
5233
5422
|
});
|
|
5234
5423
|
isGroup && provide(VNestedSymbol, item);
|
|
5235
5424
|
return item;
|
|
@@ -5237,11 +5426,11 @@ const useNestedItem = (id, isGroup) => {
|
|
|
5237
5426
|
const useNestedGroupActivator = () => {
|
|
5238
5427
|
const parent = inject(VNestedSymbol, emptyNested);
|
|
5239
5428
|
provide(VNestedSymbol, { ...parent,
|
|
5240
|
-
|
|
5429
|
+
isGroupActivator: true
|
|
5241
5430
|
});
|
|
5242
5431
|
};
|
|
5243
5432
|
|
|
5244
|
-
const VListGroupActivator = defineComponent
|
|
5433
|
+
const VListGroupActivator = defineComponent({
|
|
5245
5434
|
name: 'VListGroupActivator',
|
|
5246
5435
|
|
|
5247
5436
|
setup(_, _ref) {
|
|
@@ -5260,6 +5449,8 @@ const VListGroupActivator = defineComponent$1({
|
|
|
5260
5449
|
const VListGroup = genericComponent()({
|
|
5261
5450
|
name: 'VListGroup',
|
|
5262
5451
|
props: {
|
|
5452
|
+
activeColor: String,
|
|
5453
|
+
color: String,
|
|
5263
5454
|
collapseIcon: {
|
|
5264
5455
|
type: String,
|
|
5265
5456
|
default: '$collapse'
|
|
@@ -5286,11 +5477,17 @@ const VListGroup = genericComponent()({
|
|
|
5286
5477
|
open(!isOpen.value, e);
|
|
5287
5478
|
};
|
|
5288
5479
|
|
|
5289
|
-
const activatorProps = computed(() =>
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5480
|
+
const activatorProps = computed(() => {
|
|
5481
|
+
var _props$activeColor;
|
|
5482
|
+
|
|
5483
|
+
return {
|
|
5484
|
+
onClick,
|
|
5485
|
+
active: isOpen.value,
|
|
5486
|
+
appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,
|
|
5487
|
+
class: 'v-list-group__header',
|
|
5488
|
+
color: isOpen.value ? (_props$activeColor = props.activeColor) != null ? _props$activeColor : props.color : undefined
|
|
5489
|
+
};
|
|
5490
|
+
});
|
|
5294
5491
|
return () => {
|
|
5295
5492
|
var _slots$default2;
|
|
5296
5493
|
|
|
@@ -5299,9 +5496,18 @@ const VListGroup = genericComponent()({
|
|
|
5299
5496
|
'v-list-group--prepend': list == null ? void 0 : list.hasPrepend.value
|
|
5300
5497
|
}]
|
|
5301
5498
|
}, {
|
|
5302
|
-
default: () => [slots.activator && createVNode(
|
|
5303
|
-
|
|
5304
|
-
|
|
5499
|
+
default: () => [slots.activator && createVNode(VDefaultsProvider, {
|
|
5500
|
+
"defaults": {
|
|
5501
|
+
VListItemIcon: {
|
|
5502
|
+
color: activatorProps.value.color
|
|
5503
|
+
}
|
|
5504
|
+
}
|
|
5505
|
+
}, {
|
|
5506
|
+
default: () => [createVNode(VListGroupActivator, null, {
|
|
5507
|
+
default: () => [slots.activator({
|
|
5508
|
+
props: activatorProps.value,
|
|
5509
|
+
isOpen
|
|
5510
|
+
})]
|
|
5305
5511
|
})]
|
|
5306
5512
|
}), createVNode(VExpandTransition, null, {
|
|
5307
5513
|
default: () => [withDirectives(createVNode("div", {
|
|
@@ -5316,30 +5522,42 @@ const VListGroup = genericComponent()({
|
|
|
5316
5522
|
|
|
5317
5523
|
const VListItemAvatar = defineComponent({
|
|
5318
5524
|
name: 'VListItemAvatar',
|
|
5319
|
-
props:
|
|
5320
|
-
left: Boolean,
|
|
5321
|
-
right: Boolean,
|
|
5322
|
-
...makeTagProps()
|
|
5323
|
-
},
|
|
5525
|
+
props: makeVAvatarProps(),
|
|
5324
5526
|
|
|
5325
5527
|
setup(props, _ref) {
|
|
5326
5528
|
let {
|
|
5327
5529
|
slots
|
|
5328
5530
|
} = _ref;
|
|
5329
|
-
return () => {
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
}, slots);
|
|
5336
|
-
};
|
|
5531
|
+
return () => createVNode(VAvatar, mergeProps({
|
|
5532
|
+
"class": ['v-list-item-avatar', {
|
|
5533
|
+
'v-list-item-avatar--start': props.start,
|
|
5534
|
+
'v-list-item-avatar--end': props.end
|
|
5535
|
+
}]
|
|
5536
|
+
}, props), slots);
|
|
5337
5537
|
}
|
|
5338
5538
|
|
|
5339
5539
|
});
|
|
5340
5540
|
|
|
5341
5541
|
const VListItemHeader = createSimpleFunctional('v-list-item-header');
|
|
5342
5542
|
|
|
5543
|
+
const VListItemIcon = defineComponent({
|
|
5544
|
+
name: 'VListItemIcon',
|
|
5545
|
+
props: makeVIconProps(),
|
|
5546
|
+
|
|
5547
|
+
setup(props, _ref) {
|
|
5548
|
+
let {
|
|
5549
|
+
slots
|
|
5550
|
+
} = _ref;
|
|
5551
|
+
return () => createVNode(VIcon, mergeProps({
|
|
5552
|
+
"class": ['v-list-item-icon', {
|
|
5553
|
+
'v-list-item-icon--start': props.start,
|
|
5554
|
+
'v-list-item-icon--end': props.end
|
|
5555
|
+
}]
|
|
5556
|
+
}, props), slots);
|
|
5557
|
+
}
|
|
5558
|
+
|
|
5559
|
+
});
|
|
5560
|
+
|
|
5343
5561
|
const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle');
|
|
5344
5562
|
|
|
5345
5563
|
const VListItemTitle = createSimpleFunctional('v-list-item-title');
|
|
@@ -5356,12 +5574,14 @@ const VListItem = genericComponent()({
|
|
|
5356
5574
|
appendAvatar: String,
|
|
5357
5575
|
appendIcon: String,
|
|
5358
5576
|
disabled: Boolean,
|
|
5359
|
-
|
|
5577
|
+
lines: String,
|
|
5578
|
+
nav: Boolean,
|
|
5360
5579
|
prependAvatar: String,
|
|
5361
5580
|
prependIcon: String,
|
|
5362
5581
|
subtitle: String,
|
|
5363
5582
|
title: String,
|
|
5364
5583
|
value: null,
|
|
5584
|
+
link: Boolean,
|
|
5365
5585
|
...makeBorderProps(),
|
|
5366
5586
|
...makeDensityProps(),
|
|
5367
5587
|
...makeDimensionProps(),
|
|
@@ -5389,6 +5609,8 @@ const VListItem = genericComponent()({
|
|
|
5389
5609
|
const {
|
|
5390
5610
|
select,
|
|
5391
5611
|
isSelected,
|
|
5612
|
+
isIndeterminate,
|
|
5613
|
+
isGroupActivator,
|
|
5392
5614
|
root,
|
|
5393
5615
|
parent
|
|
5394
5616
|
} = useNestedItem(id, false);
|
|
@@ -5398,13 +5620,12 @@ const VListItem = genericComponent()({
|
|
|
5398
5620
|
|
|
5399
5621
|
return props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value) || isSelected.value;
|
|
5400
5622
|
});
|
|
5623
|
+
const roundedProps = computed(() => props.rounded || props.nav);
|
|
5401
5624
|
const variantProps = computed(() => {
|
|
5402
5625
|
var _props$activeColor;
|
|
5403
5626
|
|
|
5404
|
-
const activeColor = (_props$activeColor = props.activeColor) != null ? _props$activeColor : props.color;
|
|
5405
5627
|
return {
|
|
5406
|
-
color: isActive.value ? activeColor : props.color,
|
|
5407
|
-
textColor: props.textColor,
|
|
5628
|
+
color: isActive.value ? (_props$activeColor = props.activeColor) != null ? _props$activeColor : props.color : props.color,
|
|
5408
5629
|
variant: props.variant
|
|
5409
5630
|
};
|
|
5410
5631
|
});
|
|
@@ -5446,50 +5667,53 @@ const VListItem = genericComponent()({
|
|
|
5446
5667
|
} = useElevation(props);
|
|
5447
5668
|
const {
|
|
5448
5669
|
roundedClasses
|
|
5449
|
-
} = useRounded(
|
|
5670
|
+
} = useRounded(roundedProps);
|
|
5671
|
+
const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
|
5450
5672
|
const slotProps = computed(() => ({
|
|
5451
5673
|
isActive: isActive.value,
|
|
5452
5674
|
select,
|
|
5453
|
-
isSelected: isSelected.value
|
|
5675
|
+
isSelected: isSelected.value,
|
|
5676
|
+
isIndeterminate: isIndeterminate.value
|
|
5454
5677
|
}));
|
|
5455
5678
|
useRender(() => {
|
|
5456
|
-
var _slots$default;
|
|
5679
|
+
var _slots$prepend, _slots$default, _slots$append;
|
|
5457
5680
|
|
|
5458
5681
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
5682
|
+
const hasColor = !list || isSelected.value || isActive.value;
|
|
5459
5683
|
const hasTitle = slots.title || props.title;
|
|
5460
5684
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
|
5461
5685
|
const hasHeader = !!(hasTitle || hasSubtitle);
|
|
5462
5686
|
const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);
|
|
5463
5687
|
const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);
|
|
5464
|
-
const isClickable = !props.disabled && (link.isClickable.value || props.
|
|
5688
|
+
const isClickable = !props.disabled && (props.link || link.isClickable.value || props.value != null && !!list);
|
|
5465
5689
|
list == null ? void 0 : list.updateHasPrepend(hasPrepend);
|
|
5466
5690
|
return withDirectives(createVNode(Tag, {
|
|
5467
5691
|
"class": ['v-list-item', {
|
|
5468
5692
|
'v-list-item--active': isActive.value,
|
|
5469
5693
|
'v-list-item--disabled': props.disabled,
|
|
5470
5694
|
'v-list-item--link': isClickable,
|
|
5695
|
+
'v-list-item--nav': props.nav,
|
|
5471
5696
|
'v-list-item--prepend': !hasPrepend && (list == null ? void 0 : list.hasPrepend.value),
|
|
5472
|
-
[`${props.activeClass}`]: isActive.value
|
|
5473
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, variantClasses.value],
|
|
5474
|
-
"style": [colorStyles.value, dimensionStyles.value],
|
|
5697
|
+
[`${props.activeClass}`]: isActive.value
|
|
5698
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
5699
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
5475
5700
|
"href": link.href.value,
|
|
5476
5701
|
"tabindex": isClickable ? 0 : undefined,
|
|
5477
5702
|
"onClick": isClickable && (e => {
|
|
5478
5703
|
var _link$navigate;
|
|
5479
5704
|
|
|
5705
|
+
if (isGroupActivator) return;
|
|
5480
5706
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
5481
|
-
select(!isSelected.value, e);
|
|
5707
|
+
props.value != null && select(!isSelected.value, e);
|
|
5482
5708
|
})
|
|
5483
5709
|
}, {
|
|
5484
|
-
default: () => [genOverlays(isClickable || isActive.value, 'v-list-item'), hasPrepend && (
|
|
5485
|
-
"
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
}, null)]
|
|
5492
|
-
})), hasHeader && createVNode(VListItemHeader, null, {
|
|
5710
|
+
default: () => [genOverlays(isClickable || isActive.value, 'v-list-item'), hasPrepend && createVNode(Fragment, null, [props.prependAvatar && createVNode(VListItemAvatar, {
|
|
5711
|
+
"image": props.prependAvatar,
|
|
5712
|
+
"start": true
|
|
5713
|
+
}, null), props.prependIcon && createVNode(VListItemIcon, {
|
|
5714
|
+
"icon": props.prependIcon,
|
|
5715
|
+
"start": true
|
|
5716
|
+
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)]), hasHeader && createVNode(VListItemHeader, null, {
|
|
5493
5717
|
default: () => [hasTitle && createVNode(VListItemTitle, null, {
|
|
5494
5718
|
default: () => [slots.title ? slots.title({
|
|
5495
5719
|
title: props.title
|
|
@@ -5499,15 +5723,13 @@ const VListItem = genericComponent()({
|
|
|
5499
5723
|
subtitle: props.subtitle
|
|
5500
5724
|
}) : props.subtitle]
|
|
5501
5725
|
})]
|
|
5502
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), hasAppend && (slots.append ?
|
|
5503
|
-
"
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
}, null)]
|
|
5510
|
-
}))]
|
|
5726
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), hasAppend && createVNode(Fragment, null, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendAvatar && createVNode(VListItemAvatar, {
|
|
5727
|
+
"image": props.appendAvatar,
|
|
5728
|
+
"end": true
|
|
5729
|
+
}, null), props.appendIcon && createVNode(VListItemIcon, {
|
|
5730
|
+
"icon": props.appendIcon,
|
|
5731
|
+
"end": true
|
|
5732
|
+
}, null)])]
|
|
5511
5733
|
}), [[resolveDirective("ripple"), isClickable]]);
|
|
5512
5734
|
});
|
|
5513
5735
|
}
|
|
@@ -5585,7 +5807,7 @@ const VListChildren = genericComponent()({
|
|
|
5585
5807
|
} = _ref3;
|
|
5586
5808
|
return slots.header ? slots.header({ ...itemProps,
|
|
5587
5809
|
...activatorProps
|
|
5588
|
-
}) : createVNode(VListItem, mergeProps(itemProps, activatorProps),
|
|
5810
|
+
}) : createVNode(VListItem, mergeProps(itemProps, activatorProps), slots);
|
|
5589
5811
|
},
|
|
5590
5812
|
default: () => createVNode(VListChildren, {
|
|
5591
5813
|
"items": children
|
|
@@ -5629,17 +5851,19 @@ const parseItems$1 = items => {
|
|
|
5629
5851
|
const VList = genericComponent()({
|
|
5630
5852
|
name: 'VList',
|
|
5631
5853
|
props: {
|
|
5632
|
-
|
|
5854
|
+
activeColor: String,
|
|
5855
|
+
activeClass: String,
|
|
5856
|
+
bgColor: String,
|
|
5633
5857
|
disabled: Boolean,
|
|
5634
5858
|
lines: {
|
|
5635
|
-
type: String,
|
|
5859
|
+
type: [Boolean, String],
|
|
5636
5860
|
default: 'one'
|
|
5637
5861
|
},
|
|
5638
5862
|
nav: Boolean,
|
|
5639
5863
|
items: Array,
|
|
5640
5864
|
...makeNestedProps({
|
|
5641
5865
|
selectStrategy: 'single-leaf',
|
|
5642
|
-
openStrategy: '
|
|
5866
|
+
openStrategy: 'list'
|
|
5643
5867
|
}),
|
|
5644
5868
|
...makeBorderProps(),
|
|
5645
5869
|
...makeDensityProps(),
|
|
@@ -5647,7 +5871,10 @@ const VList = genericComponent()({
|
|
|
5647
5871
|
...makeElevationProps(),
|
|
5648
5872
|
...makeRoundedProps(),
|
|
5649
5873
|
...makeTagProps(),
|
|
5650
|
-
...makeThemeProps()
|
|
5874
|
+
...makeThemeProps(),
|
|
5875
|
+
...makeVariantProps({
|
|
5876
|
+
variant: 'text'
|
|
5877
|
+
})
|
|
5651
5878
|
},
|
|
5652
5879
|
emits: {
|
|
5653
5880
|
'update:selected': val => true,
|
|
@@ -5667,7 +5894,7 @@ const VList = genericComponent()({
|
|
|
5667
5894
|
const {
|
|
5668
5895
|
backgroundColorClasses,
|
|
5669
5896
|
backgroundColorStyles
|
|
5670
|
-
} = useBackgroundColor(toRef(props, '
|
|
5897
|
+
} = useBackgroundColor(toRef(props, 'bgColor'));
|
|
5671
5898
|
const {
|
|
5672
5899
|
borderClasses
|
|
5673
5900
|
} = useBorder(props);
|
|
@@ -5687,25 +5914,37 @@ const VList = genericComponent()({
|
|
|
5687
5914
|
open,
|
|
5688
5915
|
select
|
|
5689
5916
|
} = useNested(props);
|
|
5917
|
+
const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
5918
|
+
const activeColor = toRef(props, 'activeColor');
|
|
5919
|
+
const color = toRef(props, 'color');
|
|
5690
5920
|
createList();
|
|
5921
|
+
provideDefaults({
|
|
5922
|
+
VListGroup: {
|
|
5923
|
+
activeColor,
|
|
5924
|
+
color
|
|
5925
|
+
},
|
|
5926
|
+
VListItem: {
|
|
5927
|
+
activeClass: toRef(props, 'activeClass'),
|
|
5928
|
+
activeColor,
|
|
5929
|
+
color,
|
|
5930
|
+
density: toRef(props, 'density'),
|
|
5931
|
+
disabled: toRef(props, 'disabled'),
|
|
5932
|
+
lines: toRef(props, 'lines'),
|
|
5933
|
+
nav: toRef(props, 'nav'),
|
|
5934
|
+
variant: toRef(props, 'variant')
|
|
5935
|
+
}
|
|
5936
|
+
});
|
|
5691
5937
|
useRender(() => {
|
|
5692
5938
|
return createVNode(props.tag, {
|
|
5693
5939
|
"class": ['v-list', {
|
|
5694
5940
|
'v-list--disabled': props.disabled,
|
|
5695
|
-
'v-list--nav': props.nav
|
|
5696
|
-
|
|
5697
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
5941
|
+
'v-list--nav': props.nav
|
|
5942
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
5698
5943
|
"style": [backgroundColorStyles.value, dimensionStyles.value]
|
|
5699
5944
|
}, {
|
|
5700
5945
|
default: () => [createVNode(VListChildren, {
|
|
5701
5946
|
"items": items.value
|
|
5702
|
-
},
|
|
5703
|
-
default: slots.default,
|
|
5704
|
-
item: slots.item,
|
|
5705
|
-
title: slots.title,
|
|
5706
|
-
subtitle: slots.subtitle,
|
|
5707
|
-
header: slots.header
|
|
5708
|
-
})]
|
|
5947
|
+
}, slots)]
|
|
5709
5948
|
});
|
|
5710
5949
|
});
|
|
5711
5950
|
return {
|
|
@@ -5718,11 +5957,35 @@ const VList = genericComponent()({
|
|
|
5718
5957
|
|
|
5719
5958
|
const VListImg = createSimpleFunctional('v-list-img');
|
|
5720
5959
|
|
|
5960
|
+
const VListItemAction = defineComponent({
|
|
5961
|
+
name: 'VListItemAction',
|
|
5962
|
+
props: {
|
|
5963
|
+
start: Boolean,
|
|
5964
|
+
end: Boolean,
|
|
5965
|
+
...makeTagProps()
|
|
5966
|
+
},
|
|
5967
|
+
|
|
5968
|
+
setup(props, _ref) {
|
|
5969
|
+
let {
|
|
5970
|
+
slots
|
|
5971
|
+
} = _ref;
|
|
5972
|
+
return () => {
|
|
5973
|
+
return createVNode(props.tag, {
|
|
5974
|
+
"class": ['v-list-item-action', {
|
|
5975
|
+
'v-list-item-action--start': props.start,
|
|
5976
|
+
'v-list-item-action--end': props.end
|
|
5977
|
+
}]
|
|
5978
|
+
}, slots);
|
|
5979
|
+
};
|
|
5980
|
+
}
|
|
5981
|
+
|
|
5982
|
+
});
|
|
5983
|
+
|
|
5721
5984
|
const VListItemMedia = defineComponent({
|
|
5722
5985
|
name: 'VListItemMedia',
|
|
5723
5986
|
props: {
|
|
5724
|
-
|
|
5725
|
-
|
|
5987
|
+
start: Boolean,
|
|
5988
|
+
end: Boolean,
|
|
5726
5989
|
...makeTagProps()
|
|
5727
5990
|
},
|
|
5728
5991
|
|
|
@@ -5733,8 +5996,8 @@ const VListItemMedia = defineComponent({
|
|
|
5733
5996
|
return () => {
|
|
5734
5997
|
return createVNode(props.tag, {
|
|
5735
5998
|
"class": ['v-list-item-media', {
|
|
5736
|
-
'v-list-item-media--start': props.
|
|
5737
|
-
'v-list-item-media--end': props.
|
|
5999
|
+
'v-list-item-media--start': props.start,
|
|
6000
|
+
'v-list-item-media--end': props.end
|
|
5738
6001
|
}]
|
|
5739
6002
|
}, slots);
|
|
5740
6003
|
};
|
|
@@ -5777,6 +6040,8 @@ function useDelay(props, cb) {
|
|
|
5777
6040
|
};
|
|
5778
6041
|
}
|
|
5779
6042
|
|
|
6043
|
+
const VMenuSymbol = Symbol.for('vuetify:v-menu');
|
|
6044
|
+
|
|
5780
6045
|
// Utilities
|
|
5781
6046
|
|
|
5782
6047
|
const makeActivatorProps = propsFactory({
|
|
@@ -5794,9 +6059,14 @@ const makeActivatorProps = propsFactory({
|
|
|
5794
6059
|
type: Boolean,
|
|
5795
6060
|
default: undefined
|
|
5796
6061
|
},
|
|
6062
|
+
closeOnContentClick: Boolean,
|
|
5797
6063
|
...makeDelayProps()
|
|
5798
6064
|
});
|
|
5799
|
-
function useActivator(props,
|
|
6065
|
+
function useActivator(props, _ref) {
|
|
6066
|
+
let {
|
|
6067
|
+
isActive,
|
|
6068
|
+
isTop
|
|
6069
|
+
} = _ref;
|
|
5800
6070
|
const activatorEl = ref();
|
|
5801
6071
|
let isHovered = false;
|
|
5802
6072
|
let isFocused = false;
|
|
@@ -5806,7 +6076,7 @@ function useActivator(props, isActive) {
|
|
|
5806
6076
|
runOpenDelay,
|
|
5807
6077
|
runCloseDelay
|
|
5808
6078
|
} = useDelay(props, value => {
|
|
5809
|
-
if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused)) {
|
|
6079
|
+
if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {
|
|
5810
6080
|
isActive.value = value;
|
|
5811
6081
|
}
|
|
5812
6082
|
});
|
|
@@ -5857,6 +6127,37 @@ function useActivator(props, isActive) {
|
|
|
5857
6127
|
|
|
5858
6128
|
return events;
|
|
5859
6129
|
});
|
|
6130
|
+
const contentEvents = computed(() => {
|
|
6131
|
+
const events = {};
|
|
6132
|
+
|
|
6133
|
+
if (props.openOnHover) {
|
|
6134
|
+
events.mouseenter = () => {
|
|
6135
|
+
isHovered = true;
|
|
6136
|
+
runOpenDelay();
|
|
6137
|
+
};
|
|
6138
|
+
|
|
6139
|
+
events.mouseleave = () => {
|
|
6140
|
+
isHovered = false;
|
|
6141
|
+
runCloseDelay();
|
|
6142
|
+
};
|
|
6143
|
+
}
|
|
6144
|
+
|
|
6145
|
+
if (props.closeOnContentClick) {
|
|
6146
|
+
const menu = inject(VMenuSymbol, null);
|
|
6147
|
+
|
|
6148
|
+
events.click = () => {
|
|
6149
|
+
isActive.value = false;
|
|
6150
|
+
menu == null ? void 0 : menu.closeParents();
|
|
6151
|
+
};
|
|
6152
|
+
}
|
|
6153
|
+
|
|
6154
|
+
return events;
|
|
6155
|
+
});
|
|
6156
|
+
watch(isTop, val => {
|
|
6157
|
+
if (val && props.openOnHover && !isHovered) {
|
|
6158
|
+
isActive.value = false;
|
|
6159
|
+
}
|
|
6160
|
+
});
|
|
5860
6161
|
const activatorRef = ref();
|
|
5861
6162
|
watchEffect(() => {
|
|
5862
6163
|
if (!activatorRef.value) return;
|
|
@@ -5865,14 +6166,14 @@ function useActivator(props, isActive) {
|
|
|
5865
6166
|
activatorEl.value = isComponentInstance(activator) ? activator.$el : activator;
|
|
5866
6167
|
});
|
|
5867
6168
|
});
|
|
6169
|
+
const vm = getCurrentInstance('useActivator');
|
|
5868
6170
|
let scope;
|
|
5869
6171
|
watch(() => !!props.activator, val => {
|
|
5870
6172
|
if (val && IN_BROWSER) {
|
|
5871
6173
|
scope = effectScope();
|
|
5872
6174
|
scope.run(() => {
|
|
5873
|
-
_useActivator(props, {
|
|
6175
|
+
_useActivator(props, vm, {
|
|
5874
6176
|
activatorEl,
|
|
5875
|
-
activatorRef,
|
|
5876
6177
|
activatorEvents
|
|
5877
6178
|
});
|
|
5878
6179
|
});
|
|
@@ -5886,15 +6187,16 @@ function useActivator(props, isActive) {
|
|
|
5886
6187
|
return {
|
|
5887
6188
|
activatorEl,
|
|
5888
6189
|
activatorRef,
|
|
5889
|
-
activatorEvents
|
|
6190
|
+
activatorEvents,
|
|
6191
|
+
contentEvents
|
|
5890
6192
|
};
|
|
5891
6193
|
}
|
|
5892
6194
|
|
|
5893
|
-
function _useActivator(props,
|
|
6195
|
+
function _useActivator(props, vm, _ref2) {
|
|
5894
6196
|
let {
|
|
5895
6197
|
activatorEl,
|
|
5896
6198
|
activatorEvents
|
|
5897
|
-
} =
|
|
6199
|
+
} = _ref2;
|
|
5898
6200
|
watch(() => props.activator, (val, oldVal) => {
|
|
5899
6201
|
if (oldVal && val !== oldVal) {
|
|
5900
6202
|
const activator = getActivator(oldVal);
|
|
@@ -5920,8 +6222,8 @@ function _useActivator(props, _ref) {
|
|
|
5920
6222
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
5921
6223
|
|
|
5922
6224
|
if (!el) return;
|
|
5923
|
-
Object.entries(activatorEvents.value).forEach(
|
|
5924
|
-
let [name, cb] =
|
|
6225
|
+
Object.entries(activatorEvents.value).forEach(_ref3 => {
|
|
6226
|
+
let [name, cb] = _ref3;
|
|
5925
6227
|
el.addEventListener(name, cb);
|
|
5926
6228
|
});
|
|
5927
6229
|
Object.keys(_props).forEach(k => {
|
|
@@ -5939,8 +6241,8 @@ function _useActivator(props, _ref) {
|
|
|
5939
6241
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
5940
6242
|
|
|
5941
6243
|
if (!el) return;
|
|
5942
|
-
Object.entries(activatorEvents.value).forEach(
|
|
5943
|
-
let [name, cb] =
|
|
6244
|
+
Object.entries(activatorEvents.value).forEach(_ref4 => {
|
|
6245
|
+
let [name, cb] = _ref4;
|
|
5944
6246
|
el.removeEventListener(name, cb);
|
|
5945
6247
|
});
|
|
5946
6248
|
Object.keys(_props).forEach(k => {
|
|
@@ -5948,8 +6250,6 @@ function _useActivator(props, _ref) {
|
|
|
5948
6250
|
});
|
|
5949
6251
|
}
|
|
5950
6252
|
|
|
5951
|
-
const vm = getCurrentInstance('useActivator');
|
|
5952
|
-
|
|
5953
6253
|
function getActivator() {
|
|
5954
6254
|
var _activator;
|
|
5955
6255
|
|
|
@@ -6186,6 +6486,8 @@ function connectedPositionStrategy(data, props, contentStyles) {
|
|
|
6186
6486
|
|
|
6187
6487
|
|
|
6188
6488
|
function updatePosition() {
|
|
6489
|
+
var _props$maxWidth;
|
|
6490
|
+
|
|
6189
6491
|
observe = false;
|
|
6190
6492
|
requestAnimationFrame(() => {
|
|
6191
6493
|
requestAnimationFrame(() => observe = true);
|
|
@@ -6226,13 +6528,15 @@ function connectedPositionStrategy(data, props, contentStyles) {
|
|
|
6226
6528
|
el.scrollTo(...position);
|
|
6227
6529
|
});
|
|
6228
6530
|
}
|
|
6229
|
-
const contentHeight = Math.min(configuredMaxHeight.value, contentBox.height);
|
|
6531
|
+
const contentHeight = Math.min(configuredMaxHeight.value, contentBox.height); // Regard undefined maxWidth as maximally occupying whole remaining space by default
|
|
6532
|
+
|
|
6533
|
+
const maxFreeSpaceWidth = props.maxWidth === undefined ? Number.MAX_VALUE : parseInt((_props$maxWidth = props.maxWidth) != null ? _props$maxWidth : 0, 10);
|
|
6230
6534
|
const viewportMargin = 12;
|
|
6231
6535
|
const freeSpace = {
|
|
6232
6536
|
top: targetBox.top - viewportMargin,
|
|
6233
6537
|
bottom: viewportHeight - targetBox.bottom - viewportMargin,
|
|
6234
|
-
left: targetBox.left - viewportMargin,
|
|
6235
|
-
right: viewportWidth - targetBox.right - viewportMargin
|
|
6538
|
+
left: Math.min(targetBox.left - viewportMargin, maxFreeSpaceWidth),
|
|
6539
|
+
right: Math.min(viewportWidth - targetBox.right - viewportMargin, maxFreeSpaceWidth)
|
|
6236
6540
|
};
|
|
6237
6541
|
const fitsY = preferredAnchor.value.side === 'bottom' && contentHeight <= freeSpace.bottom || preferredAnchor.value.side === 'top' && contentHeight <= freeSpace.top;
|
|
6238
6542
|
const anchor = fitsY ? preferredAnchor.value : preferredAnchor.value.side === 'bottom' && freeSpace.top > freeSpace.bottom || preferredAnchor.value.side === 'top' && freeSpace.bottom > freeSpace.top ? oppositeAnchor(preferredAnchor.value) : preferredAnchor.value;
|
|
@@ -6304,6 +6608,7 @@ function run() {
|
|
|
6304
6608
|
// Utilities
|
|
6305
6609
|
|
|
6306
6610
|
const scrollStrategies = {
|
|
6611
|
+
none: null,
|
|
6307
6612
|
close: closeScrollStrategy,
|
|
6308
6613
|
block: blockScrollStrategy,
|
|
6309
6614
|
reposition: repositionScrollStrategy
|
|
@@ -6360,13 +6665,21 @@ function blockScrollStrategy(data) {
|
|
|
6360
6665
|
}
|
|
6361
6666
|
|
|
6362
6667
|
scrollElements.forEach((el, i) => {
|
|
6668
|
+
el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));
|
|
6669
|
+
el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));
|
|
6363
6670
|
el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));
|
|
6364
6671
|
el.classList.add('v-overlay-scroll-blocked');
|
|
6365
6672
|
});
|
|
6366
6673
|
onScopeDispose(() => {
|
|
6367
6674
|
scrollElements.forEach((el, i) => {
|
|
6675
|
+
const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
|
|
6676
|
+
const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
|
|
6677
|
+
el.style.removeProperty('--v-body-scroll-x');
|
|
6678
|
+
el.style.removeProperty('--v-body-scroll-y');
|
|
6368
6679
|
el.style.removeProperty('--v-scrollbar-offset');
|
|
6369
6680
|
el.classList.remove('v-overlay-scroll-blocked');
|
|
6681
|
+
el.scrollLeft = -x;
|
|
6682
|
+
el.scrollTop = -y;
|
|
6370
6683
|
});
|
|
6371
6684
|
|
|
6372
6685
|
if (scrollableParent) {
|
|
@@ -6496,39 +6809,14 @@ function useStack(isActive) {
|
|
|
6496
6809
|
}, {
|
|
6497
6810
|
immediate: true
|
|
6498
6811
|
});
|
|
6499
|
-
const isTop =
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
return {
|
|
6503
|
-
isTop
|
|
6504
|
-
};
|
|
6505
|
-
}
|
|
6506
|
-
|
|
6507
|
-
// Utilities
|
|
6812
|
+
const isTop = ref(true);
|
|
6813
|
+
watchEffect(() => {
|
|
6814
|
+
const _isTop = toRaw(stack.value[stack.value.length - 1]) === vm;
|
|
6508
6815
|
|
|
6509
|
-
|
|
6510
|
-
const ROOT_ZINDEX = 2000;
|
|
6511
|
-
function useOverlay(isActive) {
|
|
6512
|
-
const {
|
|
6513
|
-
zIndex,
|
|
6514
|
-
overlays
|
|
6515
|
-
} = inject(VuetifyOverlayKey, {
|
|
6516
|
-
zIndex: ref(ROOT_ZINDEX),
|
|
6517
|
-
overlays: ref([])
|
|
6816
|
+
setTimeout(() => isTop.value = _isTop);
|
|
6518
6817
|
});
|
|
6519
|
-
const id = getUid();
|
|
6520
|
-
watch(isActive, value => {
|
|
6521
|
-
if (value) {
|
|
6522
|
-
overlays.value.push(id);
|
|
6523
|
-
} else {
|
|
6524
|
-
overlays.value = overlays.value.filter(x => x !== id);
|
|
6525
|
-
}
|
|
6526
|
-
}, {
|
|
6527
|
-
immediate: true
|
|
6528
|
-
});
|
|
6529
|
-
const overlayZIndex = computed(() => zIndex.value + overlays.value.indexOf(id) + 1);
|
|
6530
6818
|
return {
|
|
6531
|
-
|
|
6819
|
+
isTop: readonly(isTop)
|
|
6532
6820
|
};
|
|
6533
6821
|
}
|
|
6534
6822
|
|
|
@@ -6702,17 +6990,21 @@ const VOverlay = genericComponent()({
|
|
|
6702
6990
|
const scrimColor = useBackgroundColor(computed(() => {
|
|
6703
6991
|
return typeof props.scrim === 'string' ? props.scrim : null;
|
|
6704
6992
|
}));
|
|
6993
|
+
const {
|
|
6994
|
+
isTop
|
|
6995
|
+
} = useStack(isActive);
|
|
6705
6996
|
const {
|
|
6706
6997
|
activatorEl,
|
|
6707
6998
|
activatorRef,
|
|
6708
|
-
activatorEvents
|
|
6709
|
-
|
|
6999
|
+
activatorEvents,
|
|
7000
|
+
contentEvents
|
|
7001
|
+
} = useActivator(props, {
|
|
7002
|
+
isActive,
|
|
7003
|
+
isTop
|
|
7004
|
+
});
|
|
6710
7005
|
const {
|
|
6711
7006
|
dimensionStyles
|
|
6712
7007
|
} = useDimension(props);
|
|
6713
|
-
const {
|
|
6714
|
-
isTop
|
|
6715
|
-
} = useStack(isActive);
|
|
6716
7008
|
const root = ref();
|
|
6717
7009
|
const contentEl = ref();
|
|
6718
7010
|
const {
|
|
@@ -6793,9 +7085,6 @@ const VOverlay = genericComponent()({
|
|
|
6793
7085
|
});
|
|
6794
7086
|
}
|
|
6795
7087
|
|
|
6796
|
-
const {
|
|
6797
|
-
overlayZIndex
|
|
6798
|
-
} = useOverlay(isActive);
|
|
6799
7088
|
useRender(() => {
|
|
6800
7089
|
var _slots$activator, _slots$default;
|
|
6801
7090
|
|
|
@@ -6815,8 +7104,7 @@ const VOverlay = genericComponent()({
|
|
|
6815
7104
|
'v-overlay--contained': props.contained
|
|
6816
7105
|
}, themeClasses.value, rtlClasses.value],
|
|
6817
7106
|
"style": {
|
|
6818
|
-
top: convertToUnit(top.value)
|
|
6819
|
-
zIndex: overlayZIndex.value
|
|
7107
|
+
top: convertToUnit(top.value)
|
|
6820
7108
|
},
|
|
6821
7109
|
"ref": root
|
|
6822
7110
|
}, attrs), [createVNode(Scrim, {
|
|
@@ -6832,11 +7120,11 @@ const VOverlay = genericComponent()({
|
|
|
6832
7120
|
emit('afterLeave');
|
|
6833
7121
|
}
|
|
6834
7122
|
}, {
|
|
6835
|
-
default: () => [withDirectives(createVNode("div", {
|
|
7123
|
+
default: () => [withDirectives(createVNode("div", mergeProps({
|
|
6836
7124
|
"ref": contentEl,
|
|
6837
7125
|
"class": ['v-overlay__content', props.contentClass],
|
|
6838
7126
|
"style": [dimensionStyles.value, contentStyles.value]
|
|
6839
|
-
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
|
7127
|
+
}, toHandlers(contentEvents.value)), [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
|
6840
7128
|
isActive
|
|
6841
7129
|
})]), [[vShow, isActive.value], [resolveDirective("click-outside"), {
|
|
6842
7130
|
handler: onClickOutside,
|
|
@@ -6849,7 +7137,9 @@ const VOverlay = genericComponent()({
|
|
|
6849
7137
|
return {
|
|
6850
7138
|
animateClick,
|
|
6851
7139
|
contentEl,
|
|
6852
|
-
activatorEl
|
|
7140
|
+
activatorEl,
|
|
7141
|
+
isTop,
|
|
7142
|
+
updatePosition
|
|
6853
7143
|
};
|
|
6854
7144
|
}
|
|
6855
7145
|
|
|
@@ -6860,15 +7150,7 @@ const VMenu = genericComponent()({
|
|
|
6860
7150
|
inheritAttrs: false,
|
|
6861
7151
|
props: {
|
|
6862
7152
|
// TODO
|
|
6863
|
-
//
|
|
6864
|
-
// type: Boolean,
|
|
6865
|
-
// default: true,
|
|
6866
|
-
// },
|
|
6867
|
-
// closeOnContentClick: {
|
|
6868
|
-
// type: Boolean,
|
|
6869
|
-
// default: true,
|
|
6870
|
-
// },
|
|
6871
|
-
disableKeys: Boolean,
|
|
7153
|
+
// disableKeys: Boolean,
|
|
6872
7154
|
modelValue: Boolean,
|
|
6873
7155
|
id: String,
|
|
6874
7156
|
...makeTransitionProps({
|
|
@@ -6889,26 +7171,62 @@ const VMenu = genericComponent()({
|
|
|
6889
7171
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
6890
7172
|
const uid = getUid();
|
|
6891
7173
|
const id = computed(() => props.id || `v-menu-${uid}`);
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
7174
|
+
const overlay = ref();
|
|
7175
|
+
const parent = inject(VMenuSymbol, null);
|
|
7176
|
+
let openChildren = 0;
|
|
7177
|
+
provide(VMenuSymbol, {
|
|
7178
|
+
register() {
|
|
7179
|
+
++openChildren;
|
|
7180
|
+
},
|
|
7181
|
+
|
|
7182
|
+
unregister() {
|
|
7183
|
+
--openChildren;
|
|
7184
|
+
},
|
|
7185
|
+
|
|
7186
|
+
closeParents() {
|
|
7187
|
+
setTimeout(() => {
|
|
7188
|
+
if (!openChildren) {
|
|
7189
|
+
isActive.value = false;
|
|
7190
|
+
parent == null ? void 0 : parent.closeParents();
|
|
7191
|
+
}
|
|
7192
|
+
}, 40);
|
|
7193
|
+
}
|
|
7194
|
+
|
|
7195
|
+
});
|
|
7196
|
+
watch(isActive, val => {
|
|
7197
|
+
val ? parent == null ? void 0 : parent.register() : parent == null ? void 0 : parent.unregister();
|
|
7198
|
+
});
|
|
7199
|
+
|
|
7200
|
+
function onClickOutside() {
|
|
7201
|
+
parent == null ? void 0 : parent.closeParents();
|
|
7202
|
+
}
|
|
7203
|
+
|
|
7204
|
+
useRender(() => createVNode(VOverlay, mergeProps({
|
|
7205
|
+
"ref": overlay,
|
|
7206
|
+
"modelValue": isActive.value,
|
|
7207
|
+
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
7208
|
+
"class": ['v-menu'],
|
|
7209
|
+
"transition": props.transition,
|
|
7210
|
+
"absolute": true,
|
|
7211
|
+
"closeOnContentClick": true,
|
|
7212
|
+
"positionStrategy": "connected",
|
|
7213
|
+
"scrollStrategy": "reposition",
|
|
7214
|
+
"scrim": false,
|
|
7215
|
+
"openDelay": "300",
|
|
7216
|
+
"closeDelay": "250",
|
|
7217
|
+
"activatorProps": {
|
|
7218
|
+
'aria-haspopup': 'menu',
|
|
7219
|
+
'aria-expanded': String(isActive.value),
|
|
7220
|
+
'aria-owns': id.value
|
|
7221
|
+
},
|
|
7222
|
+
"onClick:outside": onClickOutside
|
|
7223
|
+
}, attrs), {
|
|
7224
|
+
default: slots.default,
|
|
7225
|
+
activator: slots.activator
|
|
7226
|
+
}));
|
|
7227
|
+
return useForwardRef({
|
|
7228
|
+
id
|
|
7229
|
+
}, overlay);
|
|
6912
7230
|
}
|
|
6913
7231
|
|
|
6914
7232
|
});
|
|
@@ -6982,7 +7300,6 @@ function createForm(props) {
|
|
|
6982
7300
|
const results = [];
|
|
6983
7301
|
let valid = true;
|
|
6984
7302
|
errorMessages.value = [];
|
|
6985
|
-
model.value = null;
|
|
6986
7303
|
isValidating.value = true;
|
|
6987
7304
|
|
|
6988
7305
|
for (const item of items.value) {
|
|
@@ -7000,7 +7317,6 @@ function createForm(props) {
|
|
|
7000
7317
|
}
|
|
7001
7318
|
|
|
7002
7319
|
errorMessages.value = results;
|
|
7003
|
-
model.value = valid;
|
|
7004
7320
|
isValidating.value = false;
|
|
7005
7321
|
return {
|
|
7006
7322
|
valid,
|
|
@@ -7019,8 +7335,21 @@ function createForm(props) {
|
|
|
7019
7335
|
model.value = null;
|
|
7020
7336
|
}
|
|
7021
7337
|
|
|
7338
|
+
watch(items, () => {
|
|
7339
|
+
let valid = null;
|
|
7340
|
+
|
|
7341
|
+
if (items.value.some(item => item.isValid === false)) {
|
|
7342
|
+
valid = false;
|
|
7343
|
+
} else if (items.value.every(item => item.isValid === true)) {
|
|
7344
|
+
valid = true;
|
|
7345
|
+
}
|
|
7346
|
+
|
|
7347
|
+
model.value = valid;
|
|
7348
|
+
}, {
|
|
7349
|
+
deep: true
|
|
7350
|
+
});
|
|
7022
7351
|
provide(FormKey, {
|
|
7023
|
-
register: (id, validate, reset, resetValidation) => {
|
|
7352
|
+
register: (id, validate, reset, resetValidation, isValid) => {
|
|
7024
7353
|
if (items.value.some(item => item.id === id)) {
|
|
7025
7354
|
consoleWarn(`Duplicate input name "${id}"`);
|
|
7026
7355
|
}
|
|
@@ -7029,7 +7358,9 @@ function createForm(props) {
|
|
|
7029
7358
|
id,
|
|
7030
7359
|
validate,
|
|
7031
7360
|
reset,
|
|
7032
|
-
resetValidation
|
|
7361
|
+
resetValidation,
|
|
7362
|
+
isValid: isValid // TODO: Better way to type this unwrapping?
|
|
7363
|
+
|
|
7033
7364
|
});
|
|
7034
7365
|
},
|
|
7035
7366
|
unregister: id => {
|
|
@@ -7084,7 +7415,7 @@ function useValidation(props) {
|
|
|
7084
7415
|
const form = useForm();
|
|
7085
7416
|
const internalErrorMessages = ref([]);
|
|
7086
7417
|
const isPristine = ref(true);
|
|
7087
|
-
const isDirty = computed(() => wrapInArray(model.value
|
|
7418
|
+
const isDirty = computed(() => wrapInArray(model.value === '' ? null : model.value).length > 0);
|
|
7088
7419
|
const isDisabled = computed(() => !!(props.disabled || form != null && form.isDisabled.value));
|
|
7089
7420
|
const isReadonly = computed(() => !!(props.readonly || form != null && form.isReadonly.value));
|
|
7090
7421
|
const errorMessages = computed(() => {
|
|
@@ -7109,11 +7440,14 @@ function useValidation(props) {
|
|
|
7109
7440
|
return (_props$name = props.name) != null ? _props$name : getUid();
|
|
7110
7441
|
});
|
|
7111
7442
|
onBeforeMount(() => {
|
|
7112
|
-
form == null ? void 0 : form.register(uid.value, validate, reset, resetValidation);
|
|
7443
|
+
form == null ? void 0 : form.register(uid.value, validate, reset, resetValidation, isValid);
|
|
7113
7444
|
});
|
|
7114
7445
|
onBeforeUnmount(() => {
|
|
7115
7446
|
form == null ? void 0 : form.unregister(uid.value);
|
|
7116
7447
|
});
|
|
7448
|
+
watch(model, () => {
|
|
7449
|
+
if (model.value != null) validate();
|
|
7450
|
+
});
|
|
7117
7451
|
|
|
7118
7452
|
function reset() {
|
|
7119
7453
|
resetValidation();
|
|
@@ -7190,13 +7524,12 @@ const VInput = genericComponent()({
|
|
|
7190
7524
|
props: { ...makeVInputProps()
|
|
7191
7525
|
},
|
|
7192
7526
|
emits: {
|
|
7193
|
-
'click:prepend': e => true,
|
|
7194
|
-
'click:append': e => true,
|
|
7195
7527
|
'update:modelValue': val => true
|
|
7196
7528
|
},
|
|
7197
7529
|
|
|
7198
7530
|
setup(props, _ref) {
|
|
7199
7531
|
let {
|
|
7532
|
+
attrs,
|
|
7200
7533
|
slots,
|
|
7201
7534
|
emit
|
|
7202
7535
|
} = _ref;
|
|
@@ -7242,14 +7575,14 @@ const VInput = genericComponent()({
|
|
|
7242
7575
|
}, [hasPrepend && createVNode("div", {
|
|
7243
7576
|
"class": "v-input__prepend"
|
|
7244
7577
|
}, [slots == null ? void 0 : (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && createVNode(VIcon, {
|
|
7245
|
-
"onClick":
|
|
7578
|
+
"onClick": attrs['onClick:prepend'],
|
|
7246
7579
|
"icon": props.prependIcon
|
|
7247
7580
|
}, null)]), slots.default && createVNode("div", {
|
|
7248
7581
|
"class": "v-input__control"
|
|
7249
7582
|
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && createVNode("div", {
|
|
7250
7583
|
"class": "v-input__append"
|
|
7251
7584
|
}, [slots == null ? void 0 : (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && createVNode(VIcon, {
|
|
7252
|
-
"onClick":
|
|
7585
|
+
"onClick": attrs['onClick:append'],
|
|
7253
7586
|
"icon": props.appendIcon
|
|
7254
7587
|
}, null)]), hasDetails && createVNode("div", {
|
|
7255
7588
|
"class": "v-input__details"
|
|
@@ -7599,8 +7932,6 @@ const VField = genericComponent()({
|
|
|
7599
7932
|
},
|
|
7600
7933
|
emits: {
|
|
7601
7934
|
'click:clear': e => true,
|
|
7602
|
-
'click:prepend-inner': e => true,
|
|
7603
|
-
'click:append-inner': e => true,
|
|
7604
7935
|
'click:control': e => true,
|
|
7605
7936
|
'update:focused': focused => true,
|
|
7606
7937
|
'update:modelValue': val => true
|
|
@@ -7715,6 +8046,7 @@ const VField = genericComponent()({
|
|
|
7715
8046
|
'v-field--prepended': hasPrepend,
|
|
7716
8047
|
'v-field--reverse': props.reverse,
|
|
7717
8048
|
'v-field--single-line': props.singleLine,
|
|
8049
|
+
'v-field--has-label': !!label,
|
|
7718
8050
|
[`v-field--variant-${props.variant}`]: true
|
|
7719
8051
|
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
7720
8052
|
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
@@ -7730,7 +8062,7 @@ const VField = genericComponent()({
|
|
|
7730
8062
|
}), hasPrepend && createVNode("div", {
|
|
7731
8063
|
"class": "v-field__prepend-inner"
|
|
7732
8064
|
}, [props.prependInnerIcon && createVNode(VIcon, {
|
|
7733
|
-
"onClick":
|
|
8065
|
+
"onClick": attrs['onClick:prependInner'],
|
|
7734
8066
|
"icon": props.prependInnerIcon
|
|
7735
8067
|
}, null), slots == null ? void 0 : (_slots$prependInner = slots.prependInner) == null ? void 0 : _slots$prependInner.call(slots, slotProps.value)]), createVNode("div", {
|
|
7736
8068
|
"class": "v-field__field"
|
|
@@ -7762,7 +8094,7 @@ const VField = genericComponent()({
|
|
|
7762
8094
|
}), hasAppend && createVNode("div", {
|
|
7763
8095
|
"class": "v-field__append-inner"
|
|
7764
8096
|
}, [slots == null ? void 0 : (_slots$appendInner = slots.appendInner) == null ? void 0 : _slots$appendInner.call(slots, slotProps.value), props.appendInnerIcon && createVNode(VIcon, {
|
|
7765
|
-
"onClick":
|
|
8097
|
+
"onClick": attrs['onClick:appendInner'],
|
|
7766
8098
|
"icon": props.appendInnerIcon
|
|
7767
8099
|
}, null)]), createVNode("div", {
|
|
7768
8100
|
"class": ['v-field__outline', textColorClasses.value]
|
|
@@ -7862,13 +8194,9 @@ const VTextField = genericComponent()({
|
|
|
7862
8194
|
...makeVFieldProps()
|
|
7863
8195
|
},
|
|
7864
8196
|
emits: {
|
|
7865
|
-
'click:append': e => true,
|
|
7866
|
-
'click:append-inner': e => true,
|
|
7867
8197
|
'click:clear': e => true,
|
|
7868
8198
|
'click:control': e => true,
|
|
7869
8199
|
'click:input': e => true,
|
|
7870
|
-
'click:prepend': e => true,
|
|
7871
|
-
'click:prepend-inner': e => true,
|
|
7872
8200
|
'update:modelValue': val => true
|
|
7873
8201
|
},
|
|
7874
8202
|
|
|
@@ -7943,13 +8271,12 @@ const VTextField = genericComponent()({
|
|
|
7943
8271
|
"modelValue": model.value,
|
|
7944
8272
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
7945
8273
|
"class": ['v-text-field', {
|
|
7946
|
-
'v-text-field--persistent-placeholder': props.persistentPlaceholder,
|
|
7947
8274
|
'v-text-field--prefixed': props.prefix,
|
|
7948
8275
|
'v-text-field--suffixed': props.suffix,
|
|
7949
8276
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
7950
8277
|
}],
|
|
7951
|
-
"onClick:prepend":
|
|
7952
|
-
"onClick:append":
|
|
8278
|
+
"onClick:prepend": attrs['onClick:prepend'],
|
|
8279
|
+
"onClick:append": attrs['onClick:append']
|
|
7953
8280
|
}, rootAttrs, inputProps, {
|
|
7954
8281
|
"messages": messages.value
|
|
7955
8282
|
}), { ...slots,
|
|
@@ -7968,8 +8295,8 @@ const VTextField = genericComponent()({
|
|
|
7968
8295
|
},
|
|
7969
8296
|
"onClick:control": onControlClick,
|
|
7970
8297
|
"onClick:clear": onClear,
|
|
7971
|
-
"onClick:prependInner":
|
|
7972
|
-
"onClick:appendInner":
|
|
8298
|
+
"onClick:prependInner": attrs['onClick:prependInner'],
|
|
8299
|
+
"onClick:appendInner": attrs['onClick:prependInner'],
|
|
7973
8300
|
"role": "textbox"
|
|
7974
8301
|
}, fieldProps, {
|
|
7975
8302
|
"active": isActive.value || isDirty.value,
|
|
@@ -7997,6 +8324,7 @@ const VTextField = genericComponent()({
|
|
|
7997
8324
|
"autofocus": props.autofocus,
|
|
7998
8325
|
"readonly": isReadonly.value,
|
|
7999
8326
|
"disabled": isDisabled.value,
|
|
8327
|
+
"name": props.name,
|
|
8000
8328
|
"placeholder": props.placeholder,
|
|
8001
8329
|
"size": 1,
|
|
8002
8330
|
"type": props.type,
|
|
@@ -8024,6 +8352,60 @@ const VTextField = genericComponent()({
|
|
|
8024
8352
|
|
|
8025
8353
|
});
|
|
8026
8354
|
|
|
8355
|
+
// Utilities
|
|
8356
|
+
|
|
8357
|
+
// Composables
|
|
8358
|
+
const makeItemsProps = propsFactory({
|
|
8359
|
+
items: {
|
|
8360
|
+
type: Array,
|
|
8361
|
+
default: () => []
|
|
8362
|
+
},
|
|
8363
|
+
itemTitle: {
|
|
8364
|
+
type: [String, Array, Function],
|
|
8365
|
+
default: 'title'
|
|
8366
|
+
},
|
|
8367
|
+
itemValue: {
|
|
8368
|
+
type: [String, Array, Function],
|
|
8369
|
+
default: 'value'
|
|
8370
|
+
},
|
|
8371
|
+
itemChildren: {
|
|
8372
|
+
type: String,
|
|
8373
|
+
default: 'children'
|
|
8374
|
+
},
|
|
8375
|
+
itemProps: {
|
|
8376
|
+
type: Function,
|
|
8377
|
+
default: item => ({})
|
|
8378
|
+
}
|
|
8379
|
+
}, 'item');
|
|
8380
|
+
function transformItem(props, item) {
|
|
8381
|
+
var _props$itemProps;
|
|
8382
|
+
|
|
8383
|
+
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
8384
|
+
const value = getPropertyFromItem(item, props.itemValue, title);
|
|
8385
|
+
const children = getObjectValueByPath(item, props.itemChildren);
|
|
8386
|
+
return {
|
|
8387
|
+
title,
|
|
8388
|
+
value,
|
|
8389
|
+
children: Array.isArray(children) ? transformItems(props, children) : undefined,
|
|
8390
|
+
...((_props$itemProps = props.itemProps) == null ? void 0 : _props$itemProps.call(props, item))
|
|
8391
|
+
};
|
|
8392
|
+
}
|
|
8393
|
+
function transformItems(props, items) {
|
|
8394
|
+
const array = [];
|
|
8395
|
+
|
|
8396
|
+
for (const item of items) {
|
|
8397
|
+
array.push(transformItem(props, item));
|
|
8398
|
+
}
|
|
8399
|
+
|
|
8400
|
+
return array;
|
|
8401
|
+
}
|
|
8402
|
+
function useItems(props) {
|
|
8403
|
+
const items = computed(() => transformItems(props, props.items));
|
|
8404
|
+
return {
|
|
8405
|
+
items
|
|
8406
|
+
};
|
|
8407
|
+
}
|
|
8408
|
+
|
|
8027
8409
|
const LocaleAdapterSymbol = Symbol.for('vuetify:locale-adapter');
|
|
8028
8410
|
const VuetifyLocaleSymbol = Symbol.for('vuetify:locale');
|
|
8029
8411
|
function provideLocale(props) {
|
|
@@ -8158,24 +8540,12 @@ function createDefaultLocaleAdapter(options) {
|
|
|
8158
8540
|
};
|
|
8159
8541
|
}
|
|
8160
8542
|
|
|
8161
|
-
function genItem(item) {
|
|
8162
|
-
var _ref;
|
|
8163
|
-
|
|
8164
|
-
return {
|
|
8165
|
-
title: String((_ref = typeof item === 'object' ? item.title : item) != null ? _ref : ''),
|
|
8166
|
-
value: typeof item === 'object' ? item.value : item
|
|
8167
|
-
};
|
|
8168
|
-
}
|
|
8169
8543
|
const makeSelectProps = propsFactory({
|
|
8170
8544
|
chips: Boolean,
|
|
8171
8545
|
closableChips: Boolean,
|
|
8172
8546
|
eager: Boolean,
|
|
8173
8547
|
hideNoData: Boolean,
|
|
8174
8548
|
hideSelected: Boolean,
|
|
8175
|
-
items: {
|
|
8176
|
-
type: Array,
|
|
8177
|
-
default: () => []
|
|
8178
|
-
},
|
|
8179
8549
|
menuIcon: {
|
|
8180
8550
|
type: String,
|
|
8181
8551
|
default: '$dropdown'
|
|
@@ -8189,7 +8559,8 @@ const makeSelectProps = propsFactory({
|
|
|
8189
8559
|
type: String,
|
|
8190
8560
|
default: '$vuetify.noDataText'
|
|
8191
8561
|
},
|
|
8192
|
-
openOnClear: Boolean
|
|
8562
|
+
openOnClear: Boolean,
|
|
8563
|
+
...makeItemsProps()
|
|
8193
8564
|
}, 'select');
|
|
8194
8565
|
const VSelect = genericComponent()({
|
|
8195
8566
|
name: 'VSelect',
|
|
@@ -8202,36 +8573,21 @@ const VSelect = genericComponent()({
|
|
|
8202
8573
|
'update:modelValue': val => true
|
|
8203
8574
|
},
|
|
8204
8575
|
|
|
8205
|
-
setup(props,
|
|
8576
|
+
setup(props, _ref) {
|
|
8206
8577
|
let {
|
|
8207
8578
|
slots
|
|
8208
|
-
} =
|
|
8579
|
+
} = _ref;
|
|
8209
8580
|
const {
|
|
8210
8581
|
t
|
|
8211
8582
|
} = useLocale();
|
|
8212
8583
|
const vTextFieldRef = ref();
|
|
8213
8584
|
const activator = ref();
|
|
8214
8585
|
const menu = ref(false);
|
|
8215
|
-
const
|
|
8586
|
+
const {
|
|
8587
|
+
items
|
|
8588
|
+
} = useItems(props);
|
|
8216
8589
|
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v), v => props.multiple ? v : v[0]);
|
|
8217
|
-
const selections = computed(() =>
|
|
8218
|
-
const array = [];
|
|
8219
|
-
let index = 0;
|
|
8220
|
-
|
|
8221
|
-
for (const unwrapped of model.value) {
|
|
8222
|
-
const item = genItem(unwrapped);
|
|
8223
|
-
const found = array.find(selection => selection.value === item.value);
|
|
8224
|
-
|
|
8225
|
-
if (found == null) {
|
|
8226
|
-
array.push({ ...item,
|
|
8227
|
-
index
|
|
8228
|
-
});
|
|
8229
|
-
index++;
|
|
8230
|
-
}
|
|
8231
|
-
}
|
|
8232
|
-
|
|
8233
|
-
return array;
|
|
8234
|
-
});
|
|
8590
|
+
const selections = computed(() => items.value.filter(item => model.value.includes(item.value)));
|
|
8235
8591
|
const selected = computed(() => selections.value.map(selection => selection.value));
|
|
8236
8592
|
|
|
8237
8593
|
function onClear(e) {
|
|
@@ -8259,12 +8615,14 @@ const VSelect = genericComponent()({
|
|
|
8259
8615
|
|
|
8260
8616
|
function select(item) {
|
|
8261
8617
|
if (props.multiple) {
|
|
8262
|
-
const index =
|
|
8618
|
+
const index = selected.value.findIndex(selection => selection === item.value);
|
|
8263
8619
|
|
|
8264
8620
|
if (index === -1) {
|
|
8265
|
-
model.value.
|
|
8621
|
+
model.value = [...model.value, item.value];
|
|
8266
8622
|
} else {
|
|
8267
|
-
|
|
8623
|
+
const value = [...model.value];
|
|
8624
|
+
value.splice(index, 1);
|
|
8625
|
+
model.value = value;
|
|
8268
8626
|
}
|
|
8269
8627
|
} else {
|
|
8270
8628
|
model.value = [item.value];
|
|
@@ -8293,62 +8651,64 @@ const VSelect = genericComponent()({
|
|
|
8293
8651
|
"modelValue": model.value.join(', '),
|
|
8294
8652
|
"onKeydown": onKeydown
|
|
8295
8653
|
}, { ...slots,
|
|
8296
|
-
default: () =>
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
"
|
|
8307
|
-
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
8654
|
+
default: () => {
|
|
8655
|
+
var _slots$noData, _slots$noData2;
|
|
8656
|
+
|
|
8657
|
+
return createVNode(Fragment, null, [activator.value && createVNode(VMenu, {
|
|
8658
|
+
"modelValue": menu.value,
|
|
8659
|
+
"onUpdate:modelValue": $event => menu.value = $event,
|
|
8660
|
+
"activator": activator.value,
|
|
8661
|
+
"contentClass": "v-select__content",
|
|
8662
|
+
"eager": props.eager,
|
|
8663
|
+
"openOnClick": false,
|
|
8664
|
+
"transition": props.transition
|
|
8308
8665
|
}, {
|
|
8309
|
-
default: () => [
|
|
8310
|
-
"
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
|
|
8315
|
-
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
|
|
8319
|
-
|
|
8320
|
-
|
|
8321
|
-
e
|
|
8322
|
-
|
|
8323
|
-
|
|
8666
|
+
default: () => [createVNode(VList, {
|
|
8667
|
+
"selected": selected.value,
|
|
8668
|
+
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
8669
|
+
}, {
|
|
8670
|
+
default: () => [!items.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : createVNode(VListItem, {
|
|
8671
|
+
"title": t(props.noDataText)
|
|
8672
|
+
}, null)), items.value.map(item => createVNode(VListItem, mergeProps(item, {
|
|
8673
|
+
"onMousedown": e => e.preventDefault(),
|
|
8674
|
+
"onClick": () => select(item)
|
|
8675
|
+
}), null))]
|
|
8676
|
+
})]
|
|
8677
|
+
}), selections.value.map((selection, index) => {
|
|
8678
|
+
function onChipClose(e) {
|
|
8679
|
+
e.stopPropagation();
|
|
8680
|
+
e.preventDefault();
|
|
8681
|
+
select(selection);
|
|
8682
|
+
}
|
|
8324
8683
|
|
|
8325
|
-
|
|
8326
|
-
|
|
8327
|
-
|
|
8328
|
-
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8684
|
+
const slotProps = {
|
|
8685
|
+
'onClick:close': onChipClose,
|
|
8686
|
+
modelValue: true
|
|
8687
|
+
};
|
|
8688
|
+
return createVNode("div", {
|
|
8689
|
+
"class": "v-select__selection"
|
|
8690
|
+
}, [hasChips && createVNode(VDefaultsProvider, {
|
|
8691
|
+
"defaults": {
|
|
8692
|
+
VChip: {
|
|
8693
|
+
closable: props.closableChips,
|
|
8694
|
+
size: 'small',
|
|
8695
|
+
text: selection.title
|
|
8696
|
+
}
|
|
8337
8697
|
}
|
|
8338
|
-
}
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8698
|
+
}, {
|
|
8699
|
+
default: () => [slots.chip ? slots.chip({
|
|
8700
|
+
props: slotProps,
|
|
8701
|
+
selection
|
|
8702
|
+
}) : createVNode(VChip, slotProps, null)]
|
|
8703
|
+
}), !hasChips && (slots.selection ? slots.selection({
|
|
8342
8704
|
selection
|
|
8343
|
-
}) : createVNode(
|
|
8344
|
-
|
|
8345
|
-
selection
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
}
|
|
8349
|
-
|
|
8350
|
-
}, [createTextVNode(",")])]))]);
|
|
8351
|
-
})])
|
|
8705
|
+
}) : createVNode("span", {
|
|
8706
|
+
"class": "v-select__selection-text"
|
|
8707
|
+
}, [selection.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
8708
|
+
"class": "v-select__selection-comma"
|
|
8709
|
+
}, [createTextVNode(",")])]))]);
|
|
8710
|
+
})]);
|
|
8711
|
+
}
|
|
8352
8712
|
});
|
|
8353
8713
|
});
|
|
8354
8714
|
return useForwardRef({}, vTextFieldRef);
|
|
@@ -8481,7 +8841,9 @@ const VAutocomplete = genericComponent()({
|
|
|
8481
8841
|
const isFocused = ref(false);
|
|
8482
8842
|
const isPristine = ref(true);
|
|
8483
8843
|
const menu = ref(false);
|
|
8484
|
-
const
|
|
8844
|
+
const {
|
|
8845
|
+
items
|
|
8846
|
+
} = useItems(props);
|
|
8485
8847
|
const search = useProxiedModel(props, 'search', '');
|
|
8486
8848
|
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v || []), v => props.multiple ? v : v[0]);
|
|
8487
8849
|
const {
|
|
@@ -8492,7 +8854,7 @@ const VAutocomplete = genericComponent()({
|
|
|
8492
8854
|
let index = 0;
|
|
8493
8855
|
|
|
8494
8856
|
for (const unwrapped of model.value) {
|
|
8495
|
-
const item =
|
|
8857
|
+
const item = transformItem(props, unwrapped);
|
|
8496
8858
|
const found = array.find(selection => selection.value === item.value);
|
|
8497
8859
|
|
|
8498
8860
|
if (found == null) {
|
|
@@ -8536,6 +8898,10 @@ const VAutocomplete = genericComponent()({
|
|
|
8536
8898
|
}
|
|
8537
8899
|
}
|
|
8538
8900
|
|
|
8901
|
+
function onInput(e) {
|
|
8902
|
+
search.value = e.target.value;
|
|
8903
|
+
}
|
|
8904
|
+
|
|
8539
8905
|
function onAfterLeave() {
|
|
8540
8906
|
if (isFocused.value) isPristine.value = true;
|
|
8541
8907
|
}
|
|
@@ -8544,12 +8910,14 @@ const VAutocomplete = genericComponent()({
|
|
|
8544
8910
|
|
|
8545
8911
|
function select(item) {
|
|
8546
8912
|
if (props.multiple) {
|
|
8547
|
-
const index =
|
|
8913
|
+
const index = selected.value.findIndex(selection => selection === item.value);
|
|
8548
8914
|
|
|
8549
8915
|
if (index === -1) {
|
|
8550
|
-
model.value.
|
|
8916
|
+
model.value = [...model.value, item.value];
|
|
8551
8917
|
} else {
|
|
8552
|
-
|
|
8918
|
+
const value = [...model.value];
|
|
8919
|
+
value.splice(index, 1);
|
|
8920
|
+
model.value = value;
|
|
8553
8921
|
}
|
|
8554
8922
|
} else {
|
|
8555
8923
|
model.value = [item.value];
|
|
@@ -8587,7 +8955,7 @@ const VAutocomplete = genericComponent()({
|
|
|
8587
8955
|
return createVNode(VTextField, {
|
|
8588
8956
|
"ref": vTextFieldRef,
|
|
8589
8957
|
"modelValue": search.value,
|
|
8590
|
-
"
|
|
8958
|
+
"onInput": onInput,
|
|
8591
8959
|
"class": ['v-autocomplete', {
|
|
8592
8960
|
'v-autocomplete--active-menu': menu.value,
|
|
8593
8961
|
'v-autocomplete--chips': !!props.chips,
|
|
@@ -8602,74 +8970,78 @@ const VAutocomplete = genericComponent()({
|
|
|
8602
8970
|
"onBlur": () => isFocused.value = false,
|
|
8603
8971
|
"onKeydown": onKeydown
|
|
8604
8972
|
}, { ...slots,
|
|
8605
|
-
default: () =>
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
"
|
|
8617
|
-
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
8973
|
+
default: () => {
|
|
8974
|
+
var _slots$noData, _slots$noData2;
|
|
8975
|
+
|
|
8976
|
+
return createVNode(Fragment, null, [activator.value && createVNode(VMenu, {
|
|
8977
|
+
"modelValue": menu.value,
|
|
8978
|
+
"onUpdate:modelValue": $event => menu.value = $event,
|
|
8979
|
+
"activator": activator.value,
|
|
8980
|
+
"contentClass": "v-autocomplete__content",
|
|
8981
|
+
"eager": props.eager,
|
|
8982
|
+
"openOnClick": false,
|
|
8983
|
+
"transition": props.transition,
|
|
8984
|
+
"onAfterLeave": onAfterLeave
|
|
8618
8985
|
}, {
|
|
8619
|
-
default: () => [
|
|
8620
|
-
"
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
}
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8986
|
+
default: () => [createVNode(VList, {
|
|
8987
|
+
"selected": selected.value,
|
|
8988
|
+
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
8989
|
+
}, {
|
|
8990
|
+
default: () => [!filteredItems.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : createVNode(VListItem, {
|
|
8991
|
+
"title": t(props.noDataText)
|
|
8992
|
+
}, null)), filteredItems.value.map(_ref2 => {
|
|
8993
|
+
let {
|
|
8994
|
+
item,
|
|
8995
|
+
matches
|
|
8996
|
+
} = _ref2;
|
|
8997
|
+
return createVNode(VListItem, {
|
|
8998
|
+
"value": item.value,
|
|
8999
|
+
"onMousedown": e => e.preventDefault(),
|
|
9000
|
+
"onClick": () => select(item)
|
|
9001
|
+
}, {
|
|
9002
|
+
title: () => {
|
|
9003
|
+
var _search$value$length, _search$value;
|
|
9004
|
+
|
|
9005
|
+
return isPristine.value ? item.title : highlightResult$1(item.title, matches.title, (_search$value$length = (_search$value = search.value) == null ? void 0 : _search$value.length) != null ? _search$value$length : 0);
|
|
9006
|
+
}
|
|
9007
|
+
});
|
|
9008
|
+
})]
|
|
8637
9009
|
})]
|
|
8638
|
-
})
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8644
|
-
}
|
|
9010
|
+
}), selections.value.map((selection, index) => {
|
|
9011
|
+
function onChipClose(e) {
|
|
9012
|
+
e.stopPropagation();
|
|
9013
|
+
e.preventDefault();
|
|
9014
|
+
select(selection);
|
|
9015
|
+
}
|
|
8645
9016
|
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
9017
|
+
const slotProps = {
|
|
9018
|
+
'onClick:close': onChipClose,
|
|
9019
|
+
modelValue: true
|
|
9020
|
+
};
|
|
9021
|
+
return createVNode("div", {
|
|
9022
|
+
"class": "v-autocomplete__selection"
|
|
9023
|
+
}, [hasChips && createVNode(VDefaultsProvider, {
|
|
9024
|
+
"defaults": {
|
|
9025
|
+
VChip: {
|
|
9026
|
+
closable: props.closableChips,
|
|
9027
|
+
size: 'small',
|
|
9028
|
+
text: selection.title
|
|
9029
|
+
}
|
|
8658
9030
|
}
|
|
8659
|
-
}
|
|
8660
|
-
|
|
8661
|
-
|
|
8662
|
-
|
|
9031
|
+
}, {
|
|
9032
|
+
default: () => [slots.chip ? slots.chip({
|
|
9033
|
+
props: slotProps,
|
|
9034
|
+
selection
|
|
9035
|
+
}) : createVNode(VChip, slotProps, null)]
|
|
9036
|
+
}), !hasChips && (slots.selection ? slots.selection({
|
|
8663
9037
|
selection
|
|
8664
|
-
}) : createVNode(
|
|
8665
|
-
|
|
8666
|
-
selection
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
}
|
|
8670
|
-
|
|
8671
|
-
}, [createTextVNode(",")])]))]);
|
|
8672
|
-
})])
|
|
9038
|
+
}) : createVNode("span", {
|
|
9039
|
+
"class": "v-autocomplete__selection-text"
|
|
9040
|
+
}, [selection.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
9041
|
+
"class": "v-autocomplete__selection-comma"
|
|
9042
|
+
}, [createTextVNode(",")])]))]);
|
|
9043
|
+
})]);
|
|
9044
|
+
}
|
|
8673
9045
|
});
|
|
8674
9046
|
});
|
|
8675
9047
|
return useForwardRef({
|
|
@@ -8804,7 +9176,65 @@ const VBadge = defineComponent({
|
|
|
8804
9176
|
|
|
8805
9177
|
});
|
|
8806
9178
|
|
|
8807
|
-
const VBannerActions =
|
|
9179
|
+
const VBannerActions = defineComponent({
|
|
9180
|
+
name: 'VBannerActions',
|
|
9181
|
+
props: {
|
|
9182
|
+
color: String,
|
|
9183
|
+
density: String
|
|
9184
|
+
},
|
|
9185
|
+
|
|
9186
|
+
setup(props, _ref) {
|
|
9187
|
+
let {
|
|
9188
|
+
slots
|
|
9189
|
+
} = _ref;
|
|
9190
|
+
provideDefaults({
|
|
9191
|
+
VBtn: {
|
|
9192
|
+
color: props.color,
|
|
9193
|
+
density: props.density,
|
|
9194
|
+
variant: 'text'
|
|
9195
|
+
}
|
|
9196
|
+
});
|
|
9197
|
+
useRender(() => {
|
|
9198
|
+
var _slots$default;
|
|
9199
|
+
|
|
9200
|
+
return createVNode("div", {
|
|
9201
|
+
"class": "v-banner-actions"
|
|
9202
|
+
}, [slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
|
|
9203
|
+
});
|
|
9204
|
+
return {};
|
|
9205
|
+
}
|
|
9206
|
+
|
|
9207
|
+
});
|
|
9208
|
+
|
|
9209
|
+
const VBannerAvatar = defineComponent({
|
|
9210
|
+
name: 'VBannerAvatar',
|
|
9211
|
+
props: makeVAvatarProps(),
|
|
9212
|
+
|
|
9213
|
+
setup(props, _ref) {
|
|
9214
|
+
let {
|
|
9215
|
+
slots
|
|
9216
|
+
} = _ref;
|
|
9217
|
+
return () => createVNode(VAvatar, mergeProps({
|
|
9218
|
+
"class": "v-banner-avatar"
|
|
9219
|
+
}, props), slots);
|
|
9220
|
+
}
|
|
9221
|
+
|
|
9222
|
+
});
|
|
9223
|
+
|
|
9224
|
+
const VBannerIcon = defineComponent({
|
|
9225
|
+
name: 'VBannerIcon',
|
|
9226
|
+
props: makeVAvatarProps(),
|
|
9227
|
+
|
|
9228
|
+
setup(props, _ref) {
|
|
9229
|
+
let {
|
|
9230
|
+
slots
|
|
9231
|
+
} = _ref;
|
|
9232
|
+
return () => createVNode(VAvatar, mergeProps({
|
|
9233
|
+
"class": "v-banner-icon"
|
|
9234
|
+
}, props), slots);
|
|
9235
|
+
}
|
|
9236
|
+
|
|
9237
|
+
});
|
|
8808
9238
|
|
|
8809
9239
|
const VBannerText = createSimpleFunctional('v-banner-text');
|
|
8810
9240
|
|
|
@@ -8944,6 +9374,7 @@ const VBanner = defineComponent({
|
|
|
8944
9374
|
color: String,
|
|
8945
9375
|
icon: String,
|
|
8946
9376
|
lines: String,
|
|
9377
|
+
stacked: Boolean,
|
|
8947
9378
|
sticky: Boolean,
|
|
8948
9379
|
text: String,
|
|
8949
9380
|
...makeBorderProps(),
|
|
@@ -8960,21 +9391,18 @@ const VBanner = defineComponent({
|
|
|
8960
9391
|
let {
|
|
8961
9392
|
slots
|
|
8962
9393
|
} = _ref;
|
|
8963
|
-
const {
|
|
8964
|
-
themeClasses
|
|
8965
|
-
} = provideTheme(props);
|
|
8966
9394
|
const {
|
|
8967
9395
|
borderClasses
|
|
8968
9396
|
} = useBorder(props);
|
|
8969
9397
|
const {
|
|
8970
9398
|
densityClasses
|
|
8971
9399
|
} = useDensity(props);
|
|
8972
|
-
const {
|
|
8973
|
-
dimensionStyles
|
|
8974
|
-
} = useDimension(props);
|
|
8975
9400
|
const {
|
|
8976
9401
|
mobile
|
|
8977
9402
|
} = useDisplay();
|
|
9403
|
+
const {
|
|
9404
|
+
dimensionStyles
|
|
9405
|
+
} = useDimension(props);
|
|
8978
9406
|
const {
|
|
8979
9407
|
elevationClasses
|
|
8980
9408
|
} = useElevation(props);
|
|
@@ -8985,50 +9413,46 @@ const VBanner = defineComponent({
|
|
|
8985
9413
|
const {
|
|
8986
9414
|
roundedClasses
|
|
8987
9415
|
} = useRounded(props);
|
|
9416
|
+
const {
|
|
9417
|
+
themeClasses
|
|
9418
|
+
} = provideTheme(props);
|
|
9419
|
+
const color = toRef(props, 'color');
|
|
9420
|
+
const density = toRef(props, 'density');
|
|
9421
|
+
provideDefaults({
|
|
9422
|
+
VBannerActions: {
|
|
9423
|
+
color,
|
|
9424
|
+
density
|
|
9425
|
+
},
|
|
9426
|
+
VBannerAvatar: {
|
|
9427
|
+
density,
|
|
9428
|
+
image: toRef(props, 'avatar')
|
|
9429
|
+
},
|
|
9430
|
+
VBannerIcon: {
|
|
9431
|
+
color,
|
|
9432
|
+
density,
|
|
9433
|
+
icon: toRef(props, 'icon')
|
|
9434
|
+
}
|
|
9435
|
+
});
|
|
8988
9436
|
useRender(() => {
|
|
8989
9437
|
var _slots$default;
|
|
8990
9438
|
|
|
8991
|
-
const hasAvatar = !!(props.avatar || props.icon || slots.avatar || slots.icon);
|
|
8992
9439
|
const hasText = !!(props.text || slots.text);
|
|
8993
|
-
const
|
|
9440
|
+
const hasPrepend = !!(slots.prepend || props.avatar || props.icon);
|
|
8994
9441
|
return createVNode(props.tag, {
|
|
8995
9442
|
"class": ['v-banner', {
|
|
8996
|
-
'v-banner--
|
|
9443
|
+
'v-banner--stacked': props.stacked || mobile.value,
|
|
8997
9444
|
'v-banner--sticky': props.sticky,
|
|
8998
|
-
[`v-banner--${props.lines}-line`]:
|
|
9445
|
+
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
8999
9446
|
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
|
9000
9447
|
"style": [dimensionStyles.value, positionStyles.value],
|
|
9001
9448
|
"role": "banner"
|
|
9002
9449
|
}, {
|
|
9003
|
-
default: () => [
|
|
9004
|
-
"class": "v-
|
|
9005
|
-
}, [
|
|
9006
|
-
"defaults": {
|
|
9007
|
-
VAvatar: {
|
|
9008
|
-
color: props.color,
|
|
9009
|
-
density: props.density,
|
|
9010
|
-
icon: props.icon,
|
|
9011
|
-
image: props.avatar
|
|
9012
|
-
}
|
|
9013
|
-
}
|
|
9014
|
-
}, {
|
|
9015
|
-
default: () => [createVNode("div", {
|
|
9016
|
-
"class": "v-banner__avatar"
|
|
9017
|
-
}, [slots.avatar ? slots.avatar() : createVNode(VAvatar, null, null)])]
|
|
9018
|
-
}), hasText && createVNode(VBannerText, null, {
|
|
9450
|
+
default: () => [hasPrepend && createVNode(Fragment, null, [slots.prepend ? createVNode("div", {
|
|
9451
|
+
"class": "v-banner__prepend"
|
|
9452
|
+
}, [slots.prepend()]) : props.avatar ? createVNode(VBannerAvatar, null, null) : props.icon ? createVNode(VBannerIcon, null, null) : undefined]), hasText && createVNode(VBannerText, null, {
|
|
9019
9453
|
default: () => [slots.text ? slots.text() : props.text]
|
|
9020
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)
|
|
9021
|
-
|
|
9022
|
-
VBtn: {
|
|
9023
|
-
color: props.color,
|
|
9024
|
-
density: props.density,
|
|
9025
|
-
variant: 'text'
|
|
9026
|
-
}
|
|
9027
|
-
}
|
|
9028
|
-
}, {
|
|
9029
|
-
default: () => [createVNode(VBannerActions, null, {
|
|
9030
|
-
default: slots.actions
|
|
9031
|
-
})]
|
|
9454
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && createVNode(VBannerActions, null, {
|
|
9455
|
+
default: () => [slots.actions()]
|
|
9032
9456
|
})]
|
|
9033
9457
|
});
|
|
9034
9458
|
});
|
|
@@ -9158,30 +9582,31 @@ const VBreadcrumbsItem = defineComponent({
|
|
|
9158
9582
|
slots,
|
|
9159
9583
|
attrs
|
|
9160
9584
|
} = _ref;
|
|
9161
|
-
const
|
|
9162
|
-
|
|
9163
|
-
|
|
9164
|
-
|
|
9165
|
-
|
|
9166
|
-
|
|
9585
|
+
const link = useLink(props, attrs);
|
|
9586
|
+
const isActive = computed(() => {
|
|
9587
|
+
var _link$isExactActive;
|
|
9588
|
+
|
|
9589
|
+
return props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value);
|
|
9590
|
+
});
|
|
9167
9591
|
const color = computed(() => isActive.value ? props.activeColor : props.color);
|
|
9168
9592
|
const {
|
|
9169
9593
|
textColorClasses,
|
|
9170
9594
|
textColorStyles
|
|
9171
9595
|
} = useTextColor(color);
|
|
9172
9596
|
useRender(() => {
|
|
9173
|
-
const Tag = isLink.value ? 'a' : props.tag;
|
|
9597
|
+
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
9174
9598
|
const hasText = !!(slots.default || props.text);
|
|
9175
9599
|
return createVNode(Tag, {
|
|
9176
9600
|
"class": ['v-breadcrumbs-item', {
|
|
9177
9601
|
'v-breadcrumbs-item--active': isActive.value,
|
|
9178
9602
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
9179
|
-
'v-breadcrumbs-item--link': isLink.value,
|
|
9603
|
+
'v-breadcrumbs-item--link': link.isLink.value,
|
|
9180
9604
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
9181
9605
|
}, textColorClasses.value],
|
|
9182
9606
|
"style": [textColorStyles.value],
|
|
9607
|
+
"href": link.href.value,
|
|
9183
9608
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
9184
|
-
"onClick":
|
|
9609
|
+
"onClick": link.navigate
|
|
9185
9610
|
}, {
|
|
9186
9611
|
default: hasText ? () => {
|
|
9187
9612
|
var _slots$default, _slots$default2;
|
|
@@ -9201,6 +9626,7 @@ const VBreadcrumbs = defineComponent({
|
|
|
9201
9626
|
name: 'VBreadcrumbs',
|
|
9202
9627
|
props: {
|
|
9203
9628
|
activeClass: String,
|
|
9629
|
+
activeColor: String,
|
|
9204
9630
|
bgColor: String,
|
|
9205
9631
|
color: String,
|
|
9206
9632
|
disabled: Boolean,
|
|
@@ -9237,6 +9663,7 @@ const VBreadcrumbs = defineComponent({
|
|
|
9237
9663
|
provideDefaults({
|
|
9238
9664
|
VBreadcrumbsItem: {
|
|
9239
9665
|
activeClass: toRef(props, 'activeClass'),
|
|
9666
|
+
activeColor: toRef(props, 'activeColor'),
|
|
9240
9667
|
color: toRef(props, 'color'),
|
|
9241
9668
|
disabled: toRef(props, 'disabled')
|
|
9242
9669
|
}
|
|
@@ -9282,7 +9709,7 @@ const VBreadcrumbs = defineComponent({
|
|
|
9282
9709
|
|
|
9283
9710
|
});
|
|
9284
9711
|
|
|
9285
|
-
const VCardActions = defineComponent
|
|
9712
|
+
const VCardActions = defineComponent({
|
|
9286
9713
|
name: 'VCardActions',
|
|
9287
9714
|
|
|
9288
9715
|
setup(_, _ref) {
|
|
@@ -9308,6 +9735,8 @@ const VCardActions = defineComponent$1({
|
|
|
9308
9735
|
|
|
9309
9736
|
const VCardAvatar = createSimpleFunctional('v-card-avatar');
|
|
9310
9737
|
|
|
9738
|
+
const VCardContent = createSimpleFunctional('v-card-content');
|
|
9739
|
+
|
|
9311
9740
|
const VCardHeader = createSimpleFunctional('v-card-header');
|
|
9312
9741
|
|
|
9313
9742
|
const VCardHeaderText = createSimpleFunctional('v-card-header-text');
|
|
@@ -9387,7 +9816,7 @@ const VCard = defineComponent({
|
|
|
9387
9816
|
} = useRounded(props);
|
|
9388
9817
|
const link = useLink(props, attrs);
|
|
9389
9818
|
return () => {
|
|
9390
|
-
var _slots$image, _slots$media, _slots$default;
|
|
9819
|
+
var _slots$image, _slots$media, _slots$headerText, _slots$default;
|
|
9391
9820
|
|
|
9392
9821
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
9393
9822
|
const hasTitle = !!(slots.title || props.title);
|
|
@@ -9441,7 +9870,7 @@ const VCard = defineComponent({
|
|
|
9441
9870
|
default: () => [slots.title ? slots.title() : props.title]
|
|
9442
9871
|
}), hasSubtitle && createVNode(VCardSubtitle, null, {
|
|
9443
9872
|
default: () => [slots.subtitle ? slots.subtitle() : props.subtitle]
|
|
9444
|
-
})]
|
|
9873
|
+
}), (_slots$headerText = slots.headerText) == null ? void 0 : _slots$headerText.call(slots)]
|
|
9445
9874
|
}), hasAppend && createVNode(VDefaultsProvider, {
|
|
9446
9875
|
"defaults": {
|
|
9447
9876
|
VAvatar: {
|
|
@@ -9457,6 +9886,8 @@ const VCard = defineComponent({
|
|
|
9457
9886
|
})]
|
|
9458
9887
|
}), hasText && createVNode(VCardText, null, {
|
|
9459
9888
|
default: () => [slots.text ? slots.text() : props.text]
|
|
9889
|
+
}), slots.content && createVNode(VCardContent, null, {
|
|
9890
|
+
default: slots.content
|
|
9460
9891
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && createVNode(VCardActions, null, {
|
|
9461
9892
|
default: slots.actions
|
|
9462
9893
|
})]
|
|
@@ -9698,13 +10129,6 @@ const VWindow = genericComponent()({
|
|
|
9698
10129
|
canMoveForward.value && group.next();
|
|
9699
10130
|
}
|
|
9700
10131
|
|
|
9701
|
-
provideDefaults({
|
|
9702
|
-
VBtn: {
|
|
9703
|
-
variant: 'text'
|
|
9704
|
-
}
|
|
9705
|
-
}, {
|
|
9706
|
-
scoped: true
|
|
9707
|
-
});
|
|
9708
10132
|
const arrows = computed(() => {
|
|
9709
10133
|
const arrows = [];
|
|
9710
10134
|
const prevProps = {
|
|
@@ -10006,7 +10430,7 @@ const VCarousel = defineComponent({
|
|
|
10006
10430
|
})]), props.progress && createVNode(VProgressLinear, {
|
|
10007
10431
|
"class": "v-carousel__progress",
|
|
10008
10432
|
"color": typeof props.progress === 'string' ? props.progress : undefined,
|
|
10009
|
-
"modelValue": (
|
|
10433
|
+
"modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
|
|
10010
10434
|
}, null)]);
|
|
10011
10435
|
},
|
|
10012
10436
|
prev: slots.prev,
|
|
@@ -10039,7 +10463,7 @@ const VCarouselItem = defineComponent({
|
|
|
10039
10463
|
});
|
|
10040
10464
|
|
|
10041
10465
|
const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group');
|
|
10042
|
-
const VSelectionControlGroup = defineComponent
|
|
10466
|
+
const VSelectionControlGroup = defineComponent({
|
|
10043
10467
|
name: 'VSelectionControlGroup',
|
|
10044
10468
|
props: {
|
|
10045
10469
|
disabled: Boolean,
|
|
@@ -10140,6 +10564,7 @@ function useSelectionControl(props) {
|
|
|
10140
10564
|
},
|
|
10141
10565
|
|
|
10142
10566
|
set(val) {
|
|
10567
|
+
if (props.readonly) return;
|
|
10143
10568
|
const currentValue = val ? trueValue.value : falseValue.value;
|
|
10144
10569
|
let newVal = currentValue;
|
|
10145
10570
|
|
|
@@ -10254,7 +10679,7 @@ const VSelectionControl = genericComponent()({
|
|
|
10254
10679
|
"id": id.value,
|
|
10255
10680
|
"onBlur": onBlur,
|
|
10256
10681
|
"onFocus": onFocus,
|
|
10257
|
-
"readonly": props.readonly,
|
|
10682
|
+
"aria-readonly": props.readonly,
|
|
10258
10683
|
"type": type,
|
|
10259
10684
|
"value": trueValue.value,
|
|
10260
10685
|
"name": (_group$name$value = group == null ? void 0 : group.name.value) != null ? _group$name$value : props.name,
|
|
@@ -10347,7 +10772,7 @@ const VCheckbox = defineComponent({
|
|
|
10347
10772
|
"aria-checked": indeterminate.value ? 'mixed' : undefined,
|
|
10348
10773
|
"disabled": isDisabled.value,
|
|
10349
10774
|
"readonly": isReadonly.value
|
|
10350
|
-
}, controlAttrs),
|
|
10775
|
+
}, controlAttrs), slots);
|
|
10351
10776
|
}
|
|
10352
10777
|
});
|
|
10353
10778
|
});
|
|
@@ -10913,7 +11338,7 @@ const VSliderTrack = defineComponent({
|
|
|
10913
11338
|
return ticks.map((tick, index) => {
|
|
10914
11339
|
var _slots$tickLabel, _slots$tickLabel2;
|
|
10915
11340
|
|
|
10916
|
-
const directionProperty = vertical.value ? '
|
|
11341
|
+
const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
|
|
10917
11342
|
return createVNode("div", {
|
|
10918
11343
|
"key": tick.value,
|
|
10919
11344
|
"class": ['v-slider-track__tick', {
|
|
@@ -12116,11 +12541,13 @@ const VCombobox = genericComponent()({
|
|
|
12116
12541
|
})
|
|
12117
12542
|
},
|
|
12118
12543
|
emits: {
|
|
12119
|
-
'update:modelValue': val => true
|
|
12544
|
+
'update:modelValue': val => true,
|
|
12545
|
+
'update:searchInput': val => true
|
|
12120
12546
|
},
|
|
12121
12547
|
|
|
12122
12548
|
setup(props, _ref) {
|
|
12123
12549
|
let {
|
|
12550
|
+
emit,
|
|
12124
12551
|
slots
|
|
12125
12552
|
} = _ref;
|
|
12126
12553
|
const {
|
|
@@ -12137,7 +12564,9 @@ const VCombobox = genericComponent()({
|
|
|
12137
12564
|
|
|
12138
12565
|
return (_vTextFieldRef$value = vTextFieldRef.value) == null ? void 0 : _vTextFieldRef$value.color;
|
|
12139
12566
|
});
|
|
12140
|
-
const
|
|
12567
|
+
const {
|
|
12568
|
+
items
|
|
12569
|
+
} = useItems(props);
|
|
12141
12570
|
const {
|
|
12142
12571
|
textColorClasses,
|
|
12143
12572
|
textColorStyles
|
|
@@ -12147,7 +12576,7 @@ const VCombobox = genericComponent()({
|
|
|
12147
12576
|
const _search = ref('');
|
|
12148
12577
|
|
|
12149
12578
|
const search = computed({
|
|
12150
|
-
get: () => props.multiple ? _search.value :
|
|
12579
|
+
get: () => props.multiple ? _search.value : transformItem(props, model.value[0]).value,
|
|
12151
12580
|
set: val => {
|
|
12152
12581
|
var _props$delimiters;
|
|
12153
12582
|
|
|
@@ -12176,6 +12605,9 @@ const VCombobox = genericComponent()({
|
|
|
12176
12605
|
isPristine.value = !val;
|
|
12177
12606
|
}
|
|
12178
12607
|
});
|
|
12608
|
+
watch(_search, value => {
|
|
12609
|
+
emit('update:searchInput', value);
|
|
12610
|
+
});
|
|
12179
12611
|
const {
|
|
12180
12612
|
filteredItems
|
|
12181
12613
|
} = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value));
|
|
@@ -12184,7 +12616,7 @@ const VCombobox = genericComponent()({
|
|
|
12184
12616
|
let index = 0;
|
|
12185
12617
|
|
|
12186
12618
|
for (const unwrapped of model.value) {
|
|
12187
|
-
const item =
|
|
12619
|
+
const item = transformItem(props, unwrapped);
|
|
12188
12620
|
const found = array.find(selection => selection.value === item.value);
|
|
12189
12621
|
|
|
12190
12622
|
if (found == null) {
|
|
@@ -12278,18 +12710,24 @@ const VCombobox = genericComponent()({
|
|
|
12278
12710
|
}
|
|
12279
12711
|
}
|
|
12280
12712
|
|
|
12713
|
+
function onInput(e) {
|
|
12714
|
+
search.value = e.target.value;
|
|
12715
|
+
}
|
|
12716
|
+
|
|
12281
12717
|
function onAfterLeave() {
|
|
12282
12718
|
if (isFocused.value) isPristine.value = true;
|
|
12283
12719
|
}
|
|
12284
12720
|
|
|
12285
12721
|
function select(item) {
|
|
12286
12722
|
if (props.multiple) {
|
|
12287
|
-
const index =
|
|
12723
|
+
const index = selected.value.findIndex(selection => selection === item.value);
|
|
12288
12724
|
|
|
12289
12725
|
if (index === -1) {
|
|
12290
|
-
model.value.
|
|
12726
|
+
model.value = [...model.value, item.value];
|
|
12291
12727
|
} else {
|
|
12292
|
-
|
|
12728
|
+
const value = [...model.value];
|
|
12729
|
+
value.splice(index, 1);
|
|
12730
|
+
model.value = value;
|
|
12293
12731
|
}
|
|
12294
12732
|
|
|
12295
12733
|
search.value = '';
|
|
@@ -12315,7 +12753,7 @@ const VCombobox = genericComponent()({
|
|
|
12315
12753
|
} else {
|
|
12316
12754
|
menu.value = false;
|
|
12317
12755
|
if (!props.multiple || !search.value) return;
|
|
12318
|
-
model.value.
|
|
12756
|
+
model.value = [...model.value, search.value];
|
|
12319
12757
|
search.value = '';
|
|
12320
12758
|
}
|
|
12321
12759
|
});
|
|
@@ -12324,7 +12762,7 @@ const VCombobox = genericComponent()({
|
|
|
12324
12762
|
return createVNode(VTextField, {
|
|
12325
12763
|
"ref": vTextFieldRef,
|
|
12326
12764
|
"modelValue": search.value,
|
|
12327
|
-
"
|
|
12765
|
+
"onInput": onInput,
|
|
12328
12766
|
"class": ['v-combobox', {
|
|
12329
12767
|
'v-combobox--active-menu': menu.value,
|
|
12330
12768
|
'v-combobox--chips': !!props.chips,
|
|
@@ -12340,75 +12778,79 @@ const VCombobox = genericComponent()({
|
|
|
12340
12778
|
"onBlur": () => isFocused.value = false,
|
|
12341
12779
|
"onKeydown": onKeydown
|
|
12342
12780
|
}, { ...slots,
|
|
12343
|
-
default: () =>
|
|
12344
|
-
|
|
12345
|
-
|
|
12346
|
-
|
|
12347
|
-
|
|
12348
|
-
|
|
12349
|
-
|
|
12350
|
-
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
"
|
|
12355
|
-
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
12781
|
+
default: () => {
|
|
12782
|
+
var _slots$noData, _slots$noData2;
|
|
12783
|
+
|
|
12784
|
+
return createVNode(Fragment, null, [activator.value && createVNode(VMenu, {
|
|
12785
|
+
"modelValue": menu.value,
|
|
12786
|
+
"onUpdate:modelValue": $event => menu.value = $event,
|
|
12787
|
+
"activator": activator.value,
|
|
12788
|
+
"contentClass": "v-combobox__content",
|
|
12789
|
+
"eager": props.eager,
|
|
12790
|
+
"openOnClick": false,
|
|
12791
|
+
"transition": props.transition,
|
|
12792
|
+
"onAfterLeave": onAfterLeave
|
|
12356
12793
|
}, {
|
|
12357
|
-
default: () => [
|
|
12358
|
-
"
|
|
12359
|
-
|
|
12360
|
-
|
|
12361
|
-
|
|
12362
|
-
|
|
12363
|
-
}
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12370
|
-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12794
|
+
default: () => [createVNode(VList, {
|
|
12795
|
+
"selected": selected.value,
|
|
12796
|
+
"selectStrategy": props.multiple ? 'independent' : 'single-independent'
|
|
12797
|
+
}, {
|
|
12798
|
+
default: () => [!filteredItems.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : createVNode(VListItem, {
|
|
12799
|
+
"title": t(props.noDataText)
|
|
12800
|
+
}, null)), filteredItems.value.map(_ref2 => {
|
|
12801
|
+
let {
|
|
12802
|
+
item,
|
|
12803
|
+
matches
|
|
12804
|
+
} = _ref2;
|
|
12805
|
+
return createVNode(VListItem, {
|
|
12806
|
+
"value": item.value,
|
|
12807
|
+
"onMousedown": e => e.preventDefault(),
|
|
12808
|
+
"onClick": () => select(item)
|
|
12809
|
+
}, {
|
|
12810
|
+
title: () => {
|
|
12811
|
+
var _search$value$length, _search$value;
|
|
12812
|
+
|
|
12813
|
+
return isPristine.value ? item.title : highlightResult(item.title, matches.title, (_search$value$length = (_search$value = search.value) == null ? void 0 : _search$value.length) != null ? _search$value$length : 0);
|
|
12814
|
+
}
|
|
12815
|
+
});
|
|
12816
|
+
})]
|
|
12375
12817
|
})]
|
|
12376
|
-
})
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12382
|
-
}
|
|
12818
|
+
}), selections.value.map((selection, index) => {
|
|
12819
|
+
function onChipClose(e) {
|
|
12820
|
+
e.stopPropagation();
|
|
12821
|
+
e.preventDefault();
|
|
12822
|
+
select(selection);
|
|
12823
|
+
}
|
|
12383
12824
|
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12825
|
+
const slotProps = {
|
|
12826
|
+
'onClick:close': onChipClose,
|
|
12827
|
+
modelValue: true
|
|
12828
|
+
};
|
|
12829
|
+
return createVNode("div", {
|
|
12830
|
+
"class": ['v-combobox__selection', selection.selected && ['v-combobox__selection--selected', textColorClasses.value]],
|
|
12831
|
+
"style": selection.selected ? textColorStyles.value : {}
|
|
12832
|
+
}, [hasChips && createVNode(VDefaultsProvider, {
|
|
12833
|
+
"defaults": {
|
|
12834
|
+
VChip: {
|
|
12835
|
+
closable: props.closableChips,
|
|
12836
|
+
size: 'small',
|
|
12837
|
+
text: selection.title
|
|
12838
|
+
}
|
|
12397
12839
|
}
|
|
12398
|
-
}
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12840
|
+
}, {
|
|
12841
|
+
default: () => [slots.chip ? slots.chip({
|
|
12842
|
+
props: slotProps,
|
|
12843
|
+
selection
|
|
12844
|
+
}) : createVNode(VChip, slotProps, null)]
|
|
12845
|
+
}), !hasChips && (slots.selection ? slots.selection({
|
|
12402
12846
|
selection
|
|
12403
|
-
}) : createVNode(
|
|
12404
|
-
|
|
12405
|
-
selection
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
}
|
|
12409
|
-
|
|
12410
|
-
}, [createTextVNode(",")])]))]);
|
|
12411
|
-
})])
|
|
12847
|
+
}) : createVNode("span", {
|
|
12848
|
+
"class": "v-combobox__selection-text"
|
|
12849
|
+
}, [selection.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
12850
|
+
"class": "v-combobox__selection-comma"
|
|
12851
|
+
}, [createTextVNode(",")])]))]);
|
|
12852
|
+
})]);
|
|
12853
|
+
}
|
|
12412
12854
|
});
|
|
12413
12855
|
});
|
|
12414
12856
|
return useForwardRef({
|
|
@@ -12464,19 +12906,15 @@ const VDialog = genericComponent()({
|
|
|
12464
12906
|
const overlay = ref();
|
|
12465
12907
|
|
|
12466
12908
|
function onFocusin(e) {
|
|
12467
|
-
var _overlay$value;
|
|
12909
|
+
var _overlay$value, _overlay$value2;
|
|
12468
12910
|
|
|
12469
12911
|
const before = e.relatedTarget;
|
|
12470
12912
|
const after = e.target;
|
|
12471
12913
|
|
|
12472
|
-
if (before !== after && (_overlay$value = overlay.value) != null && _overlay$value.contentEl && //
|
|
12914
|
+
if (before !== after && (_overlay$value = overlay.value) != null && _overlay$value.contentEl && // We're the topmost dialog
|
|
12915
|
+
(_overlay$value2 = overlay.value) != null && _overlay$value2.isTop && // It isn't the document or the dialog body
|
|
12473
12916
|
![document, overlay.value.contentEl].includes(after) && // It isn't inside the dialog body
|
|
12474
|
-
!overlay.value.contentEl.contains(after)
|
|
12475
|
-
// TODO: this.activeZIndex >= this.getMaxZIndex() &&
|
|
12476
|
-
// It isn't inside a dependent element (like a menu)
|
|
12477
|
-
// TODO: !this.getOpenDependentElements().some(el => el.contains(target))
|
|
12478
|
-
// So we must have focused something outside the dialog and its children
|
|
12479
|
-
) {
|
|
12917
|
+
!overlay.value.contentEl.contains(after)) {
|
|
12480
12918
|
const focusable = [...overlay.value.contentEl.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
|
|
12481
12919
|
if (!focusable.length) return;
|
|
12482
12920
|
const firstElement = focusable[0];
|
|
@@ -12520,7 +12958,8 @@ const VDialog = genericComponent()({
|
|
|
12520
12958
|
"modelValue": isActive.value,
|
|
12521
12959
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
12522
12960
|
"class": ['v-dialog', {
|
|
12523
|
-
'v-dialog--fullscreen': props.fullscreen
|
|
12961
|
+
'v-dialog--fullscreen': props.fullscreen,
|
|
12962
|
+
'v-dialog--scrollable': props.scrollable
|
|
12524
12963
|
}],
|
|
12525
12964
|
"style": dimensionStyles.value,
|
|
12526
12965
|
"transition": props.transition,
|
|
@@ -12551,6 +12990,7 @@ const VExpansionPanels = defineComponent({
|
|
|
12551
12990
|
default: 'default',
|
|
12552
12991
|
validator: v => allowedVariants.includes(v)
|
|
12553
12992
|
},
|
|
12993
|
+
readonly: Boolean,
|
|
12554
12994
|
...makeGroupProps(),
|
|
12555
12995
|
...makeTagProps(),
|
|
12556
12996
|
...makeThemeProps()
|
|
@@ -12571,6 +13011,9 @@ const VExpansionPanels = defineComponent({
|
|
|
12571
13011
|
provideDefaults({
|
|
12572
13012
|
VExpansionPanel: {
|
|
12573
13013
|
color: toRef(props, 'color')
|
|
13014
|
+
},
|
|
13015
|
+
VExpansionPanelTitle: {
|
|
13016
|
+
readonly: toRef(props, 'readonly')
|
|
12574
13017
|
}
|
|
12575
13018
|
});
|
|
12576
13019
|
useRender(() => createVNode(props.tag, {
|
|
@@ -12595,7 +13038,8 @@ const makeVExpansionPanelTitleProps = propsFactory({
|
|
|
12595
13038
|
ripple: {
|
|
12596
13039
|
type: [Boolean, Object],
|
|
12597
13040
|
default: false
|
|
12598
|
-
}
|
|
13041
|
+
},
|
|
13042
|
+
readonly: Boolean
|
|
12599
13043
|
});
|
|
12600
13044
|
const VExpansionPanelTitle = defineComponent({
|
|
12601
13045
|
name: 'VExpansionPanelTitle',
|
|
@@ -12619,7 +13063,8 @@ const VExpansionPanelTitle = defineComponent({
|
|
|
12619
13063
|
collapseIcon: props.collapseIcon,
|
|
12620
13064
|
disabled: expansionPanel.disabled.value,
|
|
12621
13065
|
expanded: expansionPanel.isSelected.value,
|
|
12622
|
-
expandIcon: props.expandIcon
|
|
13066
|
+
expandIcon: props.expandIcon,
|
|
13067
|
+
readonly: props.readonly
|
|
12623
13068
|
}));
|
|
12624
13069
|
useRender(() => {
|
|
12625
13070
|
var _slots$default;
|
|
@@ -12633,7 +13078,7 @@ const VExpansionPanelTitle = defineComponent({
|
|
|
12633
13078
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
12634
13079
|
"disabled": expansionPanel.disabled.value,
|
|
12635
13080
|
"aria-expanded": expansionPanel.isSelected.value,
|
|
12636
|
-
"onClick": expansionPanel.toggle
|
|
13081
|
+
"onClick": !props.readonly ? expansionPanel.toggle : undefined
|
|
12637
13082
|
}, [createVNode("div", {
|
|
12638
13083
|
"class": "v-expansion-panel-title__overlay"
|
|
12639
13084
|
}, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), !props.hideActions && createVNode("div", {
|
|
@@ -12710,13 +13155,17 @@ const VExpansionPanel = defineComponent({
|
|
|
12710
13155
|
roundedClasses
|
|
12711
13156
|
} = useRounded(props);
|
|
12712
13157
|
const isDisabled = computed(() => (groupItem == null ? void 0 : groupItem.disabled.value) || props.disabled);
|
|
13158
|
+
const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
|
|
13159
|
+
if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
|
|
13160
|
+
return arr;
|
|
13161
|
+
}, []));
|
|
12713
13162
|
const isBeforeSelected = computed(() => {
|
|
12714
13163
|
const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
|
|
12715
|
-
return !groupItem.isSelected.value &&
|
|
13164
|
+
return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === 1);
|
|
12716
13165
|
});
|
|
12717
13166
|
const isAfterSelected = computed(() => {
|
|
12718
13167
|
const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
|
|
12719
|
-
return !groupItem.isSelected.value &&
|
|
13168
|
+
return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);
|
|
12720
13169
|
});
|
|
12721
13170
|
provide(VExpansionPanelSymbol, groupItem);
|
|
12722
13171
|
useRender(() => {
|
|
@@ -12884,7 +13333,7 @@ const VFileInput = defineComponent({
|
|
|
12884
13333
|
}
|
|
12885
13334
|
|
|
12886
13335
|
useRender(() => {
|
|
12887
|
-
const hasCounter = !!(slots.counter || props.counter
|
|
13336
|
+
const hasCounter = !!(slots.counter || props.counter);
|
|
12888
13337
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
12889
13338
|
const [{
|
|
12890
13339
|
modelValue: _,
|
|
@@ -12962,6 +13411,7 @@ const VFileInput = defineComponent({
|
|
|
12962
13411
|
});
|
|
12963
13412
|
},
|
|
12964
13413
|
details: hasCounter ? () => createVNode(Fragment, null, [createVNode("span", null, null), createVNode(VCounter, {
|
|
13414
|
+
"active": !!model.value.length,
|
|
12965
13415
|
"value": counterValue.value
|
|
12966
13416
|
}, slots.counter)]) : undefined
|
|
12967
13417
|
});
|
|
@@ -12974,11 +13424,15 @@ const VFileInput = defineComponent({
|
|
|
12974
13424
|
const VFooter = defineComponent({
|
|
12975
13425
|
name: 'VFooter',
|
|
12976
13426
|
props: {
|
|
13427
|
+
app: Boolean,
|
|
12977
13428
|
color: String,
|
|
13429
|
+
height: {
|
|
13430
|
+
type: [Number, String],
|
|
13431
|
+
default: 'auto'
|
|
13432
|
+
},
|
|
12978
13433
|
...makeBorderProps(),
|
|
12979
|
-
...makeDimensionProps(),
|
|
12980
13434
|
...makeElevationProps(),
|
|
12981
|
-
...
|
|
13435
|
+
...makeLayoutItemProps(),
|
|
12982
13436
|
...makeRoundedProps(),
|
|
12983
13437
|
...makeTagProps({
|
|
12984
13438
|
tag: 'footer'
|
|
@@ -13000,22 +13454,35 @@ const VFooter = defineComponent({
|
|
|
13000
13454
|
const {
|
|
13001
13455
|
borderClasses
|
|
13002
13456
|
} = useBorder(props);
|
|
13003
|
-
const {
|
|
13004
|
-
dimensionStyles
|
|
13005
|
-
} = useDimension(props);
|
|
13006
13457
|
const {
|
|
13007
13458
|
elevationClasses
|
|
13008
13459
|
} = useElevation(props);
|
|
13009
13460
|
const {
|
|
13010
|
-
|
|
13011
|
-
|
|
13012
|
-
|
|
13461
|
+
roundedClasses
|
|
13462
|
+
} = useRounded(props);
|
|
13463
|
+
const autoHeight = ref(32);
|
|
13464
|
+
const {
|
|
13465
|
+
resizeRef
|
|
13466
|
+
} = useResizeObserver(entries => {
|
|
13467
|
+
if (!entries.length) return;
|
|
13468
|
+
autoHeight.value = entries[0].target.clientHeight;
|
|
13469
|
+
});
|
|
13470
|
+
const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
|
|
13013
13471
|
const {
|
|
13014
|
-
|
|
13015
|
-
} =
|
|
13472
|
+
layoutItemStyles
|
|
13473
|
+
} = useLayoutItem({
|
|
13474
|
+
id: props.name,
|
|
13475
|
+
priority: computed(() => parseInt(props.priority, 10)),
|
|
13476
|
+
position: computed(() => 'bottom'),
|
|
13477
|
+
layoutSize: height,
|
|
13478
|
+
elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
|
|
13479
|
+
active: computed(() => props.app),
|
|
13480
|
+
absolute: toRef(props, 'absolute')
|
|
13481
|
+
});
|
|
13016
13482
|
return () => createVNode(props.tag, {
|
|
13017
|
-
"
|
|
13018
|
-
"
|
|
13483
|
+
"ref": resizeRef,
|
|
13484
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
13485
|
+
"style": [backgroundColorStyles, props.app ? layoutItemStyles.value : undefined]
|
|
13019
13486
|
}, slots);
|
|
13020
13487
|
}
|
|
13021
13488
|
|
|
@@ -13043,17 +13510,29 @@ const VForm = defineComponent({
|
|
|
13043
13510
|
form.reset();
|
|
13044
13511
|
}
|
|
13045
13512
|
|
|
13046
|
-
function onSubmit(
|
|
13047
|
-
e
|
|
13048
|
-
form.validate()
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13513
|
+
function onSubmit(_e) {
|
|
13514
|
+
const e = _e;
|
|
13515
|
+
const ready = form.validate();
|
|
13516
|
+
e.then = ready.then.bind(ready);
|
|
13517
|
+
e.catch = ready.catch.bind(ready);
|
|
13518
|
+
e.finally = ready.finally.bind(ready);
|
|
13519
|
+
emit('submit', e);
|
|
13052
13520
|
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13521
|
+
if (!e.defaultPrevented) {
|
|
13522
|
+
ready.then(_ref2 => {
|
|
13523
|
+
let {
|
|
13524
|
+
valid
|
|
13525
|
+
} = _ref2;
|
|
13526
|
+
|
|
13527
|
+
if (valid) {
|
|
13528
|
+
var _formRef$value;
|
|
13529
|
+
|
|
13530
|
+
(_formRef$value = formRef.value) == null ? void 0 : _formRef$value.submit();
|
|
13531
|
+
}
|
|
13532
|
+
});
|
|
13533
|
+
}
|
|
13534
|
+
|
|
13535
|
+
e.preventDefault();
|
|
13057
13536
|
}
|
|
13058
13537
|
|
|
13059
13538
|
useRender(() => {
|
|
@@ -13067,7 +13546,7 @@ const VForm = defineComponent({
|
|
|
13067
13546
|
"onSubmit": onSubmit
|
|
13068
13547
|
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, form)]);
|
|
13069
13548
|
});
|
|
13070
|
-
return form;
|
|
13549
|
+
return useForwardRef(form, formRef);
|
|
13071
13550
|
}
|
|
13072
13551
|
|
|
13073
13552
|
});
|
|
@@ -14026,7 +14505,7 @@ const VNavigationDrawer = defineComponent({
|
|
|
14026
14505
|
roundedClasses
|
|
14027
14506
|
} = useRounded(props);
|
|
14028
14507
|
const router = useRouter();
|
|
14029
|
-
const isActive = useProxiedModel(props, 'modelValue');
|
|
14508
|
+
const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);
|
|
14030
14509
|
const isHovering = ref(false);
|
|
14031
14510
|
const width = computed(() => {
|
|
14032
14511
|
return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
|
|
@@ -14315,27 +14794,25 @@ const VPagination = defineComponent({
|
|
|
14315
14794
|
});
|
|
14316
14795
|
const range = computed(() => {
|
|
14317
14796
|
if (length.value <= 0) return [];
|
|
14797
|
+
if (totalVisible.value <= 2) return [page.value];
|
|
14318
14798
|
|
|
14319
|
-
if (
|
|
14320
|
-
return [Math.min(Math.max(start.value, page.value), start.value + length.value)];
|
|
14321
|
-
}
|
|
14322
|
-
|
|
14323
|
-
if (props.length <= totalVisible.value) {
|
|
14799
|
+
if (length.value <= totalVisible.value) {
|
|
14324
14800
|
return createRange(length.value, start.value);
|
|
14325
14801
|
}
|
|
14326
14802
|
|
|
14327
|
-
const
|
|
14328
|
-
const
|
|
14803
|
+
const even = totalVisible.value % 2 === 0;
|
|
14804
|
+
const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);
|
|
14805
|
+
const left = even ? middle : middle + 1;
|
|
14329
14806
|
const right = length.value - middle;
|
|
14330
14807
|
|
|
14331
|
-
if (page.value
|
|
14332
|
-
return [...createRange(Math.max(1, totalVisible.value -
|
|
14333
|
-
} else if (page.value
|
|
14334
|
-
const rangeLength = totalVisible.value -
|
|
14808
|
+
if (left - page.value >= 0) {
|
|
14809
|
+
return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];
|
|
14810
|
+
} else if (page.value - right >= 0) {
|
|
14811
|
+
const rangeLength = totalVisible.value - 1;
|
|
14335
14812
|
const rangeStart = length.value - rangeLength + start.value;
|
|
14336
14813
|
return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];
|
|
14337
14814
|
} else {
|
|
14338
|
-
const rangeLength = Math.max(1, totalVisible.value -
|
|
14815
|
+
const rangeLength = Math.max(1, totalVisible.value - 3);
|
|
14339
14816
|
const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;
|
|
14340
14817
|
return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];
|
|
14341
14818
|
}
|
|
@@ -14678,7 +15155,7 @@ const VProgressCircular = defineComponent({
|
|
|
14678
15155
|
|
|
14679
15156
|
});
|
|
14680
15157
|
|
|
14681
|
-
const VRadio = defineComponent
|
|
15158
|
+
const VRadio = defineComponent({
|
|
14682
15159
|
name: 'VRadio',
|
|
14683
15160
|
props: {
|
|
14684
15161
|
falseIcon: {
|
|
@@ -14706,7 +15183,7 @@ const VRadio = defineComponent$1({
|
|
|
14706
15183
|
|
|
14707
15184
|
});
|
|
14708
15185
|
|
|
14709
|
-
const VRadioGroup = defineComponent
|
|
15186
|
+
const VRadioGroup = defineComponent({
|
|
14710
15187
|
name: 'VRadioGroup',
|
|
14711
15188
|
inheritAttrs: false,
|
|
14712
15189
|
props: {
|
|
@@ -14775,7 +15252,7 @@ const VRadioGroup = defineComponent$1({
|
|
|
14775
15252
|
|
|
14776
15253
|
});
|
|
14777
15254
|
|
|
14778
|
-
const VRangeSlider = defineComponent
|
|
15255
|
+
const VRangeSlider = defineComponent({
|
|
14779
15256
|
name: 'VRangeSlider',
|
|
14780
15257
|
props: { ...makeFocusProps(),
|
|
14781
15258
|
...makeVInputProps(),
|
|
@@ -15162,6 +15639,12 @@ const VRating = genericComponent()({
|
|
|
15162
15639
|
}, null)]);
|
|
15163
15640
|
}
|
|
15164
15641
|
|
|
15642
|
+
function createLabel(labelProps) {
|
|
15643
|
+
if (slots['item-label']) return slots['item-label'](labelProps);
|
|
15644
|
+
if (labelProps.label) return createVNode("span", null, [labelProps.label]);
|
|
15645
|
+
return createVNode("span", null, [createTextVNode("\xA0")]);
|
|
15646
|
+
}
|
|
15647
|
+
|
|
15165
15648
|
return () => {
|
|
15166
15649
|
var _props$itemLabels;
|
|
15167
15650
|
|
|
@@ -15181,11 +15664,11 @@ const VRating = genericComponent()({
|
|
|
15181
15664
|
|
|
15182
15665
|
return createVNode("div", {
|
|
15183
15666
|
"class": "v-rating__wrapper"
|
|
15184
|
-
}, [
|
|
15667
|
+
}, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
|
|
15185
15668
|
value,
|
|
15186
15669
|
index: i,
|
|
15187
15670
|
label: (_props$itemLabels2 = props.itemLabels) == null ? void 0 : _props$itemLabels2[i]
|
|
15188
|
-
}) :
|
|
15671
|
+
}) : undefined, createVNode("div", {
|
|
15189
15672
|
"class": ['v-rating__item', {
|
|
15190
15673
|
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
15191
15674
|
}]
|
|
@@ -15198,7 +15681,11 @@ const VRating = genericComponent()({
|
|
|
15198
15681
|
}, null)]) : createVNode(VRatingItem, {
|
|
15199
15682
|
"value": value,
|
|
15200
15683
|
"index": i
|
|
15201
|
-
}, null)])
|
|
15684
|
+
}, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({
|
|
15685
|
+
value,
|
|
15686
|
+
index: i,
|
|
15687
|
+
label: (_props$itemLabels3 = props.itemLabels) == null ? void 0 : _props$itemLabels3[i]
|
|
15688
|
+
}) : undefined]);
|
|
15202
15689
|
})]
|
|
15203
15690
|
});
|
|
15204
15691
|
};
|
|
@@ -15264,10 +15751,6 @@ const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
|
|
15264
15751
|
const VSlideGroup = defineComponent({
|
|
15265
15752
|
name: 'VSlideGroup',
|
|
15266
15753
|
props: {
|
|
15267
|
-
activeClass: {
|
|
15268
|
-
type: String,
|
|
15269
|
-
default: 'v-slide-item--active'
|
|
15270
|
-
},
|
|
15271
15754
|
centerActive: Boolean,
|
|
15272
15755
|
direction: {
|
|
15273
15756
|
type: String,
|
|
@@ -15290,7 +15773,9 @@ const VSlideGroup = defineComponent({
|
|
|
15290
15773
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
15291
15774
|
},
|
|
15292
15775
|
...makeTagProps(),
|
|
15293
|
-
...makeGroupProps(
|
|
15776
|
+
...makeGroupProps({
|
|
15777
|
+
selectedClass: 'v-slide-group-item--active'
|
|
15778
|
+
})
|
|
15294
15779
|
},
|
|
15295
15780
|
emits: {
|
|
15296
15781
|
'update:modelValue': value => true
|
|
@@ -15316,21 +15801,31 @@ const VSlideGroup = defineComponent({
|
|
|
15316
15801
|
resizeRef: containerRef,
|
|
15317
15802
|
contentRect: containerRect
|
|
15318
15803
|
} = useResizeObserver();
|
|
15319
|
-
const
|
|
15804
|
+
const {
|
|
15805
|
+
resizeRef: contentRef,
|
|
15806
|
+
contentRect
|
|
15807
|
+
} = useResizeObserver();
|
|
15320
15808
|
watchEffect(() => {
|
|
15321
|
-
if (!containerRect.value || !
|
|
15809
|
+
if (!containerRect.value || !contentRect.value) return;
|
|
15322
15810
|
const sizeProperty = isHorizontal.value ? 'width' : 'height';
|
|
15323
15811
|
containerSize.value = containerRect.value[sizeProperty];
|
|
15324
|
-
contentSize.value =
|
|
15812
|
+
contentSize.value = contentRect.value[sizeProperty];
|
|
15325
15813
|
isOverflowing.value = containerSize.value + 1 < contentSize.value;
|
|
15326
15814
|
});
|
|
15327
|
-
|
|
15328
|
-
if (!selected.length
|
|
15329
|
-
|
|
15815
|
+
const firstSelectedIndex = computed(() => {
|
|
15816
|
+
if (!group.selected.value.length) return -1;
|
|
15817
|
+
return group.items.value.findIndex(item => item.id === group.selected.value[0]);
|
|
15818
|
+
});
|
|
15819
|
+
const lastSelectedIndex = computed(() => {
|
|
15820
|
+
if (!group.selected.value.length) return -1;
|
|
15821
|
+
return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);
|
|
15822
|
+
});
|
|
15823
|
+
watch(group.selected, () => {
|
|
15824
|
+
if (firstSelectedIndex.value < 0 || !contentRef.value) return; // TODO: Is this too naive? Should we store element references in group composable?
|
|
15330
15825
|
|
|
15331
|
-
const selectedElement = contentRef.value.children[
|
|
15826
|
+
const selectedElement = contentRef.value.children[lastSelectedIndex.value];
|
|
15332
15827
|
|
|
15333
|
-
if (
|
|
15828
|
+
if (firstSelectedIndex.value === 0 || !isOverflowing.value) {
|
|
15334
15829
|
scrollOffset.value = 0;
|
|
15335
15830
|
} else if (props.centerActive) {
|
|
15336
15831
|
scrollOffset.value = calculateCenteredOffset({
|
|
@@ -15351,6 +15846,20 @@ const VSlideGroup = defineComponent({
|
|
|
15351
15846
|
});
|
|
15352
15847
|
}
|
|
15353
15848
|
});
|
|
15849
|
+
let firstOverflow = true;
|
|
15850
|
+
watch(isOverflowing, () => {
|
|
15851
|
+
if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return;
|
|
15852
|
+
firstOverflow = false; // TODO: Is this too naive? Should we store element references in group composable?
|
|
15853
|
+
|
|
15854
|
+
const selectedElement = contentRef.value.children[firstSelectedIndex.value];
|
|
15855
|
+
scrollOffset.value = calculateCenteredOffset({
|
|
15856
|
+
selectedElement,
|
|
15857
|
+
containerSize: containerSize.value,
|
|
15858
|
+
contentSize: contentSize.value,
|
|
15859
|
+
isRtl: isRtl.value,
|
|
15860
|
+
isHorizontal: isHorizontal.value
|
|
15861
|
+
});
|
|
15862
|
+
});
|
|
15354
15863
|
const disableTransition = ref(false);
|
|
15355
15864
|
let startTouch = 0;
|
|
15356
15865
|
let startOffset = 0;
|
|
@@ -15498,7 +16007,7 @@ const VSlideGroup = defineComponent({
|
|
|
15498
16007
|
// Always show arrows on desktop
|
|
15499
16008
|
|
|
15500
16009
|
case 'desktop':
|
|
15501
|
-
return mobile.value;
|
|
16010
|
+
return !mobile.value;
|
|
15502
16011
|
// Show arrows on mobile when overflowing.
|
|
15503
16012
|
// This matches the default 2.2 behavior
|
|
15504
16013
|
|
|
@@ -15597,7 +16106,9 @@ const VSlideGroupItem = defineComponent({
|
|
|
15597
16106
|
|
|
15598
16107
|
return (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
|
15599
16108
|
isSelected: slideGroupItem.isSelected.value,
|
|
15600
|
-
select: slideGroupItem.select
|
|
16109
|
+
select: slideGroupItem.select,
|
|
16110
|
+
toggle: slideGroupItem.toggle,
|
|
16111
|
+
selectedClass: slideGroupItem.selectedClass.value
|
|
15601
16112
|
});
|
|
15602
16113
|
};
|
|
15603
16114
|
}
|
|
@@ -15621,6 +16132,7 @@ const VSnackbar = defineComponent({
|
|
|
15621
16132
|
vertical: Boolean,
|
|
15622
16133
|
modelValue: Boolean,
|
|
15623
16134
|
...makePositionProps(),
|
|
16135
|
+
...makeRoundedProps(),
|
|
15624
16136
|
...makeVariantProps(),
|
|
15625
16137
|
...makeTransitionProps({
|
|
15626
16138
|
transition: 'v-snackbar-transition'
|
|
@@ -15644,6 +16156,9 @@ const VSnackbar = defineComponent({
|
|
|
15644
16156
|
colorStyles,
|
|
15645
16157
|
variantClasses
|
|
15646
16158
|
} = useVariant(props);
|
|
16159
|
+
const {
|
|
16160
|
+
roundedClasses
|
|
16161
|
+
} = useRounded(props);
|
|
15647
16162
|
watch(isActive, startTimeout);
|
|
15648
16163
|
watch(() => props.timeout, startTimeout);
|
|
15649
16164
|
onMounted(() => {
|
|
@@ -15667,7 +16182,9 @@ const VSnackbar = defineComponent({
|
|
|
15667
16182
|
useRender(() => {
|
|
15668
16183
|
var _slots$default, _slots$actions;
|
|
15669
16184
|
|
|
15670
|
-
return createVNode(
|
|
16185
|
+
return createVNode(VOverlay, {
|
|
16186
|
+
"modelValue": isActive.value,
|
|
16187
|
+
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
15671
16188
|
"class": ['v-snackbar', {
|
|
15672
16189
|
'v-snackbar--active': isActive.value,
|
|
15673
16190
|
'v-snackbar--bottom': props.bottom || !props.top,
|
|
@@ -15678,12 +16195,15 @@ const VSnackbar = defineComponent({
|
|
|
15678
16195
|
'v-snackbar--top': props.top,
|
|
15679
16196
|
'v-snackbar--vertical': props.vertical
|
|
15680
16197
|
}, positionClasses.value],
|
|
15681
|
-
"style": [colorStyles.value, positionStyles.value]
|
|
15682
|
-
|
|
16198
|
+
"style": [colorStyles.value, positionStyles.value],
|
|
16199
|
+
"persistent": true,
|
|
16200
|
+
"noClickAnimation": true,
|
|
16201
|
+
"scrim": false,
|
|
16202
|
+
"scrollStrategy": "none",
|
|
15683
16203
|
"transition": props.transition
|
|
15684
16204
|
}, {
|
|
15685
|
-
default: () => [
|
|
15686
|
-
"class": ['v-snackbar__wrapper', colorClasses.value, variantClasses.value],
|
|
16205
|
+
default: () => [createVNode("div", {
|
|
16206
|
+
"class": ['v-snackbar__wrapper', colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
15687
16207
|
"onPointerenter": onPointerenter,
|
|
15688
16208
|
"onPointerleave": startTimeout
|
|
15689
16209
|
}, [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
|
|
@@ -15701,21 +16221,25 @@ const VSnackbar = defineComponent({
|
|
|
15701
16221
|
default: () => [createVNode("div", {
|
|
15702
16222
|
"class": "v-snackbar__actions"
|
|
15703
16223
|
}, [(_slots$actions = slots.actions) == null ? void 0 : _slots$actions.call(slots)])]
|
|
15704
|
-
})]),
|
|
15705
|
-
|
|
16224
|
+
})])],
|
|
16225
|
+
activator: slots.activator
|
|
16226
|
+
});
|
|
15706
16227
|
});
|
|
15707
16228
|
}
|
|
15708
16229
|
|
|
15709
16230
|
});
|
|
15710
16231
|
|
|
15711
|
-
const VSwitch = defineComponent
|
|
16232
|
+
const VSwitch = defineComponent({
|
|
15712
16233
|
name: 'VSwitch',
|
|
15713
16234
|
inheritAttrs: false,
|
|
15714
16235
|
props: {
|
|
15715
16236
|
indeterminate: Boolean,
|
|
15716
16237
|
inset: Boolean,
|
|
15717
16238
|
flat: Boolean,
|
|
15718
|
-
|
|
16239
|
+
loading: {
|
|
16240
|
+
type: [Boolean, String],
|
|
16241
|
+
default: false
|
|
16242
|
+
},
|
|
15719
16243
|
...makeVInputProps(),
|
|
15720
16244
|
...makeSelectionControlProps()
|
|
15721
16245
|
},
|
|
@@ -15775,7 +16299,7 @@ const VSwitch = defineComponent$1({
|
|
|
15775
16299
|
"aria-checked": indeterminate.value ? 'mixed' : undefined,
|
|
15776
16300
|
"disabled": isDisabled.value,
|
|
15777
16301
|
"readonly": isReadonly.value
|
|
15778
|
-
}, controlAttrs), {
|
|
16302
|
+
}, controlAttrs), { ...slots,
|
|
15779
16303
|
default: () => createVNode("div", {
|
|
15780
16304
|
"class": "v-switch__track",
|
|
15781
16305
|
"onClick": onClick
|
|
@@ -15813,10 +16337,10 @@ const VSystemBar = defineComponent({
|
|
|
15813
16337
|
name: 'VSystemBar',
|
|
15814
16338
|
props: {
|
|
15815
16339
|
color: String,
|
|
16340
|
+
height: [Number, String],
|
|
15816
16341
|
window: Boolean,
|
|
15817
|
-
...makeDimensionProps(),
|
|
15818
16342
|
...makeElevationProps(),
|
|
15819
|
-
...
|
|
16343
|
+
...makeLayoutItemProps(),
|
|
15820
16344
|
...makeRoundedProps(),
|
|
15821
16345
|
...makeTagProps(),
|
|
15822
16346
|
...makeThemeProps()
|
|
@@ -15833,29 +16357,48 @@ const VSystemBar = defineComponent({
|
|
|
15833
16357
|
backgroundColorClasses,
|
|
15834
16358
|
backgroundColorStyles
|
|
15835
16359
|
} = useBackgroundColor(toRef(props, 'color'));
|
|
15836
|
-
const {
|
|
15837
|
-
dimensionStyles
|
|
15838
|
-
} = useDimension(props);
|
|
15839
16360
|
const {
|
|
15840
16361
|
elevationClasses
|
|
15841
16362
|
} = useElevation(props);
|
|
15842
|
-
const {
|
|
15843
|
-
positionClasses,
|
|
15844
|
-
positionStyles
|
|
15845
|
-
} = usePosition(props);
|
|
15846
16363
|
const {
|
|
15847
16364
|
roundedClasses
|
|
15848
16365
|
} = useRounded(props);
|
|
16366
|
+
const height = computed(() => {
|
|
16367
|
+
var _props$height;
|
|
16368
|
+
|
|
16369
|
+
return ((_props$height = props.height) != null ? _props$height : props.window) ? 32 : 24;
|
|
16370
|
+
});
|
|
16371
|
+
const {
|
|
16372
|
+
layoutItemStyles
|
|
16373
|
+
} = useLayoutItem({
|
|
16374
|
+
id: props.name,
|
|
16375
|
+
priority: computed(() => parseInt(props.priority, 10)),
|
|
16376
|
+
position: ref('top'),
|
|
16377
|
+
layoutSize: height,
|
|
16378
|
+
elementSize: height,
|
|
16379
|
+
active: computed(() => true),
|
|
16380
|
+
absolute: toRef(props, 'absolute')
|
|
16381
|
+
});
|
|
16382
|
+
provideDefaults({
|
|
16383
|
+
VBtn: {
|
|
16384
|
+
variant: 'text',
|
|
16385
|
+
density: 'compact'
|
|
16386
|
+
}
|
|
16387
|
+
}, {
|
|
16388
|
+
scoped: true
|
|
16389
|
+
});
|
|
15849
16390
|
return () => createVNode(props.tag, {
|
|
15850
16391
|
"class": ['v-system-bar', {
|
|
15851
16392
|
'v-system-bar--window': props.window
|
|
15852
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value,
|
|
15853
|
-
"style": [backgroundColorStyles.value,
|
|
16393
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
16394
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value]
|
|
15854
16395
|
}, slots);
|
|
15855
16396
|
}
|
|
15856
16397
|
|
|
15857
16398
|
});
|
|
15858
16399
|
|
|
16400
|
+
const VTabsSymbol = Symbol.for('vuetify:v-tabs');
|
|
16401
|
+
|
|
15859
16402
|
const VTab = defineComponent({
|
|
15860
16403
|
name: 'VTab',
|
|
15861
16404
|
props: {
|
|
@@ -15889,31 +16432,22 @@ const VTab = defineComponent({
|
|
|
15889
16432
|
slots,
|
|
15890
16433
|
attrs
|
|
15891
16434
|
} = _ref;
|
|
15892
|
-
const {
|
|
15893
|
-
isSelected,
|
|
15894
|
-
select,
|
|
15895
|
-
selectedClass
|
|
15896
|
-
} = useGroupItem(props, VTabsSymbol);
|
|
15897
16435
|
const {
|
|
15898
16436
|
textColorClasses: sliderColorClasses,
|
|
15899
16437
|
textColorStyles: sliderColorStyles
|
|
15900
16438
|
} = useTextColor(props, 'sliderColor');
|
|
15901
16439
|
const isHorizontal = computed(() => props.direction === 'horizontal');
|
|
15902
|
-
|
|
15903
|
-
VBtn: {
|
|
15904
|
-
block: toRef(props, 'fixed'),
|
|
15905
|
-
maxWidth: computed(() => props.fixed ? 300 : undefined),
|
|
15906
|
-
color: computed(() => isSelected.value ? props.color : undefined),
|
|
15907
|
-
variant: 'text',
|
|
15908
|
-
rounded: 0
|
|
15909
|
-
}
|
|
15910
|
-
}, {
|
|
15911
|
-
scoped: true
|
|
15912
|
-
});
|
|
16440
|
+
const isSelected = ref(false);
|
|
15913
16441
|
const rootEl = ref();
|
|
15914
16442
|
const sliderEl = ref();
|
|
15915
|
-
|
|
15916
|
-
|
|
16443
|
+
|
|
16444
|
+
function updateSlider(_ref2) {
|
|
16445
|
+
let {
|
|
16446
|
+
value
|
|
16447
|
+
} = _ref2;
|
|
16448
|
+
isSelected.value = value;
|
|
16449
|
+
|
|
16450
|
+
if (value) {
|
|
15917
16451
|
var _rootEl$value, _rootEl$value$$el$par;
|
|
15918
16452
|
|
|
15919
16453
|
const prevEl = (_rootEl$value = rootEl.value) == null ? void 0 : (_rootEl$value$$el$par = _rootEl$value.$el.parentElement) == null ? void 0 : _rootEl$value$$el$par.querySelector('.v-tab--selected .v-tab__slider');
|
|
@@ -15943,17 +16477,25 @@ const VTab = defineComponent({
|
|
|
15943
16477
|
easing: standardEasing
|
|
15944
16478
|
});
|
|
15945
16479
|
}
|
|
15946
|
-
}
|
|
16480
|
+
}
|
|
16481
|
+
|
|
15947
16482
|
useRender(() => {
|
|
15948
|
-
const [btnProps] = pick(props, ['href', 'to', 'replace', 'icon', 'stacked', 'prependIcon', 'appendIcon', 'ripple', 'theme', 'disabled']);
|
|
16483
|
+
const [btnProps] = pick(props, ['href', 'to', 'replace', 'icon', 'stacked', 'prependIcon', 'appendIcon', 'ripple', 'theme', 'disabled', 'selectedClass', 'value', 'color']);
|
|
15949
16484
|
return createVNode(VBtn, mergeProps({
|
|
16485
|
+
"_as": "VTab",
|
|
16486
|
+
"symbol": VTabsSymbol,
|
|
15950
16487
|
"ref": rootEl,
|
|
15951
|
-
"class": ['v-tab'
|
|
16488
|
+
"class": ['v-tab'],
|
|
15952
16489
|
"tabindex": isSelected.value ? 0 : -1,
|
|
15953
16490
|
"role": "tab",
|
|
15954
16491
|
"aria-selected": String(isSelected.value),
|
|
15955
|
-
"
|
|
15956
|
-
|
|
16492
|
+
"block": props.fixed,
|
|
16493
|
+
"maxWidth": props.fixed ? 300 : undefined,
|
|
16494
|
+
"variant": "text",
|
|
16495
|
+
"rounded": 0
|
|
16496
|
+
}, btnProps, attrs, {
|
|
16497
|
+
"onGroup:selected": updateSlider
|
|
16498
|
+
}), {
|
|
15957
16499
|
default: () => [slots.default ? slots.default() : props.title, !props.hideSlider && createVNode("div", {
|
|
15958
16500
|
"ref": sliderEl,
|
|
15959
16501
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
@@ -15961,9 +16503,7 @@ const VTab = defineComponent({
|
|
|
15961
16503
|
}, null)]
|
|
15962
16504
|
});
|
|
15963
16505
|
});
|
|
15964
|
-
return {
|
|
15965
|
-
isSelected
|
|
15966
|
-
};
|
|
16506
|
+
return {};
|
|
15967
16507
|
}
|
|
15968
16508
|
|
|
15969
16509
|
});
|
|
@@ -15979,7 +16519,6 @@ function parseItems(items) {
|
|
|
15979
16519
|
});
|
|
15980
16520
|
}
|
|
15981
16521
|
|
|
15982
|
-
const VTabsSymbol = Symbol.for('vuetify:v-tabs');
|
|
15983
16522
|
const VTabs = defineComponent({
|
|
15984
16523
|
name: 'VTabs',
|
|
15985
16524
|
props: {
|
|
@@ -16004,7 +16543,7 @@ const VTabs = defineComponent({
|
|
|
16004
16543
|
},
|
|
16005
16544
|
hideSlider: Boolean,
|
|
16006
16545
|
optional: Boolean,
|
|
16007
|
-
|
|
16546
|
+
end: Boolean,
|
|
16008
16547
|
sliderColor: String,
|
|
16009
16548
|
modelValue: null,
|
|
16010
16549
|
...makeDensityProps(),
|
|
@@ -16043,7 +16582,7 @@ const VTabs = defineComponent({
|
|
|
16043
16582
|
'v-tabs--centered': props.centered,
|
|
16044
16583
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
16045
16584
|
'v-tabs--grow': props.grow,
|
|
16046
|
-
'v-tabs--
|
|
16585
|
+
'v-tabs--end': props.end,
|
|
16047
16586
|
'v-tabs--stacked': props.stacked
|
|
16048
16587
|
}, densityClasses.value, backgroundColorClasses.value],
|
|
16049
16588
|
"style": backgroundColorStyles.value,
|
|
@@ -16357,7 +16896,96 @@ const VThemeProvider = defineComponent({
|
|
|
16357
16896
|
|
|
16358
16897
|
const VTimelineSymbol = Symbol.for('vuetify:timeline');
|
|
16359
16898
|
|
|
16360
|
-
const
|
|
16899
|
+
const VTimeline = defineComponent({
|
|
16900
|
+
name: 'VTimeline',
|
|
16901
|
+
props: {
|
|
16902
|
+
align: {
|
|
16903
|
+
type: String,
|
|
16904
|
+
default: 'center',
|
|
16905
|
+
validator: v => ['center', 'start'].includes(v)
|
|
16906
|
+
},
|
|
16907
|
+
direction: {
|
|
16908
|
+
type: String,
|
|
16909
|
+
default: 'vertical',
|
|
16910
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
16911
|
+
},
|
|
16912
|
+
side: {
|
|
16913
|
+
type: String,
|
|
16914
|
+
validator: v => v == null || ['start', 'end'].includes(v)
|
|
16915
|
+
},
|
|
16916
|
+
lineInset: {
|
|
16917
|
+
type: [String, Number],
|
|
16918
|
+
default: 0
|
|
16919
|
+
},
|
|
16920
|
+
lineThickness: {
|
|
16921
|
+
type: [String, Number],
|
|
16922
|
+
default: 2
|
|
16923
|
+
},
|
|
16924
|
+
lineColor: String,
|
|
16925
|
+
truncateLine: {
|
|
16926
|
+
type: String,
|
|
16927
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
|
16928
|
+
},
|
|
16929
|
+
...makeDensityProps(),
|
|
16930
|
+
...makeTagProps(),
|
|
16931
|
+
...makeThemeProps()
|
|
16932
|
+
},
|
|
16933
|
+
|
|
16934
|
+
setup(props, _ref) {
|
|
16935
|
+
let {
|
|
16936
|
+
slots
|
|
16937
|
+
} = _ref;
|
|
16938
|
+
const {
|
|
16939
|
+
themeClasses
|
|
16940
|
+
} = provideTheme(props);
|
|
16941
|
+
const {
|
|
16942
|
+
densityClasses
|
|
16943
|
+
} = useDensity(props);
|
|
16944
|
+
provide(VTimelineSymbol, {
|
|
16945
|
+
density: toRef(props, 'density'),
|
|
16946
|
+
lineColor: toRef(props, 'lineColor')
|
|
16947
|
+
});
|
|
16948
|
+
const sideClass = computed(() => {
|
|
16949
|
+
const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
|
|
16950
|
+
return side && `v-timeline--side-${side}`;
|
|
16951
|
+
});
|
|
16952
|
+
const truncateClasses = computed(() => {
|
|
16953
|
+
const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];
|
|
16954
|
+
|
|
16955
|
+
switch (props.truncateLine) {
|
|
16956
|
+
case 'both':
|
|
16957
|
+
return classes;
|
|
16958
|
+
|
|
16959
|
+
case 'start':
|
|
16960
|
+
return classes[0];
|
|
16961
|
+
|
|
16962
|
+
case 'end':
|
|
16963
|
+
return classes[1];
|
|
16964
|
+
|
|
16965
|
+
default:
|
|
16966
|
+
return null;
|
|
16967
|
+
}
|
|
16968
|
+
});
|
|
16969
|
+
return () => {
|
|
16970
|
+
var _slots$default;
|
|
16971
|
+
|
|
16972
|
+
return createVNode(props.tag, {
|
|
16973
|
+
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, !props.lineInset && truncateClasses.value, {
|
|
16974
|
+
'v-timeline--inset-line': !!props.lineInset
|
|
16975
|
+
}, themeClasses.value, densityClasses.value, sideClass.value],
|
|
16976
|
+
"style": {
|
|
16977
|
+
'--v-timeline-line-thickness': convertToUnit(props.lineThickness),
|
|
16978
|
+
'--v-timeline-line-inset': convertToUnit(props.lineInset)
|
|
16979
|
+
}
|
|
16980
|
+
}, {
|
|
16981
|
+
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
|
|
16982
|
+
});
|
|
16983
|
+
};
|
|
16984
|
+
}
|
|
16985
|
+
|
|
16986
|
+
});
|
|
16987
|
+
|
|
16988
|
+
const VTimelineDivider = defineComponent({
|
|
16361
16989
|
name: 'VTimelineDivider',
|
|
16362
16990
|
props: {
|
|
16363
16991
|
hideDot: Boolean,
|
|
@@ -16492,77 +17120,6 @@ const VTimelineItem = defineComponent({
|
|
|
16492
17120
|
|
|
16493
17121
|
});
|
|
16494
17122
|
|
|
16495
|
-
const VTimeline = defineComponent({
|
|
16496
|
-
name: 'VTimeline',
|
|
16497
|
-
props: {
|
|
16498
|
-
direction: {
|
|
16499
|
-
type: String,
|
|
16500
|
-
default: 'vertical',
|
|
16501
|
-
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
16502
|
-
},
|
|
16503
|
-
side: {
|
|
16504
|
-
type: String,
|
|
16505
|
-
validator: v => v == null || ['start', 'end'].includes(v)
|
|
16506
|
-
},
|
|
16507
|
-
lineInset: {
|
|
16508
|
-
type: [String, Number],
|
|
16509
|
-
default: 0
|
|
16510
|
-
},
|
|
16511
|
-
lineThickness: {
|
|
16512
|
-
type: [String, Number],
|
|
16513
|
-
default: 2
|
|
16514
|
-
},
|
|
16515
|
-
lineColor: String,
|
|
16516
|
-
truncateLine: {
|
|
16517
|
-
type: String,
|
|
16518
|
-
default: 'start',
|
|
16519
|
-
validator: v => ['none', 'start', 'end', 'both'].includes(v)
|
|
16520
|
-
},
|
|
16521
|
-
...makeDensityProps(),
|
|
16522
|
-
...makeTagProps(),
|
|
16523
|
-
...makeThemeProps()
|
|
16524
|
-
},
|
|
16525
|
-
|
|
16526
|
-
setup(props, _ref) {
|
|
16527
|
-
let {
|
|
16528
|
-
slots
|
|
16529
|
-
} = _ref;
|
|
16530
|
-
const {
|
|
16531
|
-
themeClasses
|
|
16532
|
-
} = provideTheme(props);
|
|
16533
|
-
const {
|
|
16534
|
-
densityClasses
|
|
16535
|
-
} = useDensity(props);
|
|
16536
|
-
provide(VTimelineSymbol, {
|
|
16537
|
-
density: toRef(props, 'density'),
|
|
16538
|
-
lineColor: toRef(props, 'lineColor')
|
|
16539
|
-
});
|
|
16540
|
-
const sideClass = computed(() => {
|
|
16541
|
-
const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
|
|
16542
|
-
return side && `v-timeline--side-${side}`;
|
|
16543
|
-
});
|
|
16544
|
-
return () => {
|
|
16545
|
-
var _slots$default;
|
|
16546
|
-
|
|
16547
|
-
return createVNode(props.tag, {
|
|
16548
|
-
"class": ['v-timeline', `v-timeline--${props.direction}`, {
|
|
16549
|
-
'v-timeline--inset-line': !!props.lineInset,
|
|
16550
|
-
'v-timeline--truncate-line-end': props.truncateLine === 'end' || props.truncateLine === 'both'
|
|
16551
|
-
}, themeClasses.value, densityClasses.value, sideClass.value],
|
|
16552
|
-
"style": {
|
|
16553
|
-
'--v-timeline-line-thickness': convertToUnit(props.lineThickness),
|
|
16554
|
-
'--v-timeline-line-inset': convertToUnit(props.lineInset)
|
|
16555
|
-
}
|
|
16556
|
-
}, {
|
|
16557
|
-
default: () => [(props.truncateLine === 'none' || props.truncateLine === 'end') && createVNode(VTimelineItem, {
|
|
16558
|
-
"hideDot": true
|
|
16559
|
-
}, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
|
|
16560
|
-
});
|
|
16561
|
-
};
|
|
16562
|
-
}
|
|
16563
|
-
|
|
16564
|
-
});
|
|
16565
|
-
|
|
16566
17123
|
const VTooltip = genericComponent()({
|
|
16567
17124
|
name: 'VTooltip',
|
|
16568
17125
|
inheritAttrs: false,
|
|
@@ -16680,6 +17237,8 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
16680
17237
|
VBadge: VBadge,
|
|
16681
17238
|
VBanner: VBanner,
|
|
16682
17239
|
VBannerActions: VBannerActions,
|
|
17240
|
+
VBannerAvatar: VBannerAvatar,
|
|
17241
|
+
VBannerIcon: VBannerIcon,
|
|
16683
17242
|
VBannerText: VBannerText,
|
|
16684
17243
|
VBottomNavigation: VBottomNavigation,
|
|
16685
17244
|
VBreadcrumbs: VBreadcrumbs,
|
|
@@ -16691,6 +17250,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
16691
17250
|
VCard: VCard,
|
|
16692
17251
|
VCardActions: VCardActions,
|
|
16693
17252
|
VCardAvatar: VCardAvatar,
|
|
17253
|
+
VCardContent: VCardContent,
|
|
16694
17254
|
VCardHeader: VCardHeader,
|
|
16695
17255
|
VCardHeaderText: VCardHeaderText,
|
|
16696
17256
|
VCardImg: VCardImg,
|
|
@@ -16741,8 +17301,10 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
16741
17301
|
VListSubheader: VListSubheader,
|
|
16742
17302
|
VListImg: VListImg,
|
|
16743
17303
|
VListItem: VListItem,
|
|
17304
|
+
VListItemAction: VListItemAction,
|
|
16744
17305
|
VListItemAvatar: VListItemAvatar,
|
|
16745
17306
|
VListItemHeader: VListItemHeader,
|
|
17307
|
+
VListItemIcon: VListItemIcon,
|
|
16746
17308
|
VListItemMedia: VListItemMedia,
|
|
16747
17309
|
VListItemSubtitle: VListItemSubtitle,
|
|
16748
17310
|
VListItemTitle: VListItemTitle,
|
|
@@ -17012,19 +17574,24 @@ const createVuetify$1 = function () {
|
|
|
17012
17574
|
|
|
17013
17575
|
const install = app => {
|
|
17014
17576
|
const {
|
|
17577
|
+
aliases: aliases$1 = {},
|
|
17015
17578
|
components = {},
|
|
17016
17579
|
directives = {},
|
|
17017
17580
|
icons = {}
|
|
17018
17581
|
} = options;
|
|
17019
17582
|
|
|
17020
17583
|
for (const key in directives) {
|
|
17021
|
-
|
|
17022
|
-
app.directive(key, directive);
|
|
17584
|
+
app.directive(key, directives[key]);
|
|
17023
17585
|
}
|
|
17024
17586
|
|
|
17025
17587
|
for (const key in components) {
|
|
17026
|
-
|
|
17027
|
-
|
|
17588
|
+
app.component(key, components[key]);
|
|
17589
|
+
}
|
|
17590
|
+
|
|
17591
|
+
for (const key in aliases$1) {
|
|
17592
|
+
app.component(key, defineComponent({ ...aliases$1[key],
|
|
17593
|
+
name: key
|
|
17594
|
+
}));
|
|
17028
17595
|
}
|
|
17029
17596
|
|
|
17030
17597
|
app.provide(DefaultsSymbol, createDefaults(options.defaults));
|
|
@@ -17035,7 +17602,7 @@ const createVuetify$1 = function () {
|
|
|
17035
17602
|
sets: { ...defaultSets,
|
|
17036
17603
|
mdi
|
|
17037
17604
|
},
|
|
17038
|
-
aliases
|
|
17605
|
+
aliases: aliases
|
|
17039
17606
|
}, icons));
|
|
17040
17607
|
const {
|
|
17041
17608
|
adapter,
|
|
@@ -17085,7 +17652,7 @@ const createVuetify = function () {
|
|
|
17085
17652
|
...options
|
|
17086
17653
|
});
|
|
17087
17654
|
};
|
|
17088
|
-
const version = "3.0.0-beta.
|
|
17655
|
+
const version = "3.0.0-beta.2";
|
|
17089
17656
|
|
|
17090
17657
|
export { components, createVuetify, directives, provideRtl, useDisplay, useLayout, useRtl, useTheme, version };
|
|
17091
17658
|
//# sourceMappingURL=vuetify.esm.js.map
|