vuetify 3.0.6 → 3.1.0
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/_settings.scss +1 -0
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +460 -12
- package/dist/json/importMap-labs.json +28 -0
- package/dist/json/importMap.json +60 -60
- package/dist/json/tags.json +154 -8
- package/dist/json/web-types.json +1522 -26
- package/dist/vuetify-labs.d.ts +875 -0
- package/dist/vuetify-labs.js +9748 -0
- package/dist/vuetify.css +36 -55
- package/dist/vuetify.d.ts +173 -196
- package/dist/vuetify.esm.js +190 -128
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +189 -127
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +788 -780
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +3 -2
- package/lib/blueprints/md1.d.ts +3 -2
- package/lib/blueprints/md2.d.ts +3 -2
- package/lib/blueprints/md3.d.ts +3 -2
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +3 -12
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +23 -20
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +21 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +4 -15
- package/lib/components/VColorPicker/VColorPicker.mjs +0 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +8 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +3 -12
- package/lib/components/VDivider/VDivider.css +1 -1
- package/lib/components/VDivider/VDivider.sass +1 -0
- package/lib/components/VDivider/_variables.scss +2 -1
- package/lib/components/VIcon/VIcon.mjs +25 -20
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.ts +4 -8
- package/lib/components/VList/VListItem.css +0 -4
- package/lib/components/VList/VListItem.sass +12 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +11 -3
- package/lib/components/VPagination/VPagination.mjs +12 -5
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +11 -8
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +11 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +12 -3
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +2 -0
- package/lib/components/VSlider/VSliderThumb.sass +2 -0
- package/lib/components/VTable/VTable.css +12 -29
- package/lib/components/VTable/VTable.mjs +3 -3
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +10 -17
- package/lib/components/VTable/_variables.scss +4 -2
- package/lib/components/index.d.ts +27 -51
- package/lib/composables/filter.mjs +18 -10
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/icons.mjs +12 -7
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +15 -13
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +3 -2
- package/lib/iconsets/fa.d.ts +3 -2
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +3 -2
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +3 -2
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +3 -2
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +3 -2
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +19 -18
- package/lib/labs/VDataTable/VDataTable.css +119 -0
- package/lib/labs/VDataTable/VDataTable.mjs +146 -0
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTable.sass +106 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs +37 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableFooter.css +22 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +105 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableFooter.sass +23 -0
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +88 -0
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +143 -0
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableRow.mjs +75 -0
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs +87 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableServer.mjs +124 -0
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +154 -0
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -0
- package/lib/labs/VDataTable/_variables.scss +6 -0
- package/lib/labs/VDataTable/composables/expand.mjs +51 -0
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/group.mjs +124 -0
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/headers.mjs +152 -0
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/items.mjs +30 -0
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/options.mjs +44 -0
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/paginate.mjs +62 -0
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/select.mjs +57 -0
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/sort.mjs +109 -0
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/virtual.mjs +77 -0
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -0
- package/lib/labs/VDataTable/index.d.ts +705 -0
- package/lib/labs/VDataTable/index.mjs +6 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -0
- package/lib/labs/VDataTable/types.mjs +2 -0
- package/lib/labs/VDataTable/types.mjs.map +1 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.css +11 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +118 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
- package/lib/{components → labs}/VVirtualScroll/VVirtualScroll.sass +0 -5
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +35 -0
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
- package/lib/labs/VVirtualScroll/index.d.ts +154 -0
- package/lib/labs/VVirtualScroll/index.mjs +2 -0
- package/lib/labs/VVirtualScroll/index.mjs.map +1 -0
- package/lib/labs/components.d.ts +856 -0
- package/lib/labs/components.mjs +3 -0
- package/lib/labs/components.mjs.map +1 -0
- package/lib/labs/index.mjs +3 -0
- package/lib/labs/index.mjs.map +1 -0
- package/lib/util/defineComponent.mjs +4 -0
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +0 -38
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +4 -2
- package/lib/components/VDataTable/MobileRow.mjs +0 -63
- package/lib/components/VDataTable/MobileRow.mjs.map +0 -1
- package/lib/components/VDataTable/Row.mjs +0 -57
- package/lib/components/VDataTable/Row.mjs.map +0 -1
- package/lib/components/VDataTable/RowGroup.mjs +0 -48
- package/lib/components/VDataTable/RowGroup.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTable.mjs +0 -577
- package/lib/components/VDataTable/VDataTable.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTable.sass +0 -98
- package/lib/components/VDataTable/VDataTableHeader.mjs +0 -42
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTableHeader.sass +0 -80
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -96
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -89
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +0 -1
- package/lib/components/VDataTable/VEditDialog.mjs +0 -127
- package/lib/components/VDataTable/VEditDialog.mjs.map +0 -1
- package/lib/components/VDataTable/VEditDialog.sass +0 -22
- package/lib/components/VDataTable/VVirtualTable.mjs +0 -132
- package/lib/components/VDataTable/VVirtualTable.mjs.map +0 -1
- package/lib/components/VDataTable/VVirtualTable.sass +0 -13
- package/lib/components/VDataTable/_variables.scss +0 -24
- package/lib/components/VDataTable/index.mjs +0 -21
- package/lib/components/VDataTable/index.mjs.map +0 -1
- package/lib/components/VDataTable/mixins/header.mjs +0 -71
- package/lib/components/VDataTable/mixins/header.mjs.map +0 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +0 -108
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
- package/lib/components/VVirtualScroll/index.mjs +0 -4
- package/lib/components/VVirtualScroll/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","nextTick","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","toPhysical","useRender","locations","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","emits","val","setup","attrs","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","left","right","top","bottom","VList","bgColor","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","nextTick","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","toPhysical","useRender","locations","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","emits","val","setup","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","left","right","top","bottom","VList","bgColor","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (props.expandOnHover && props.rail != null) {\n watch(isHovering, val => emit('update:rail', !val))\n }\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
|
@@ -37,7 +37,10 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
|
37
37
|
default: null;
|
|
38
38
|
};
|
|
39
39
|
permanent: BooleanConstructor;
|
|
40
|
-
rail:
|
|
40
|
+
rail: {
|
|
41
|
+
type: PropType<boolean | null>;
|
|
42
|
+
default: null;
|
|
43
|
+
};
|
|
41
44
|
railWidth: {
|
|
42
45
|
type: (StringConstructor | NumberConstructor)[];
|
|
43
46
|
default: number;
|
|
@@ -63,6 +66,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
|
63
66
|
isStuck: vue.Ref<boolean | "top" | "bottom">;
|
|
64
67
|
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
65
68
|
'update:modelValue': (val: boolean) => true;
|
|
69
|
+
'update:rail': (val: boolean) => true;
|
|
66
70
|
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
67
71
|
theme: StringConstructor;
|
|
68
72
|
tag: Omit<{
|
|
@@ -99,7 +103,10 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
|
99
103
|
default: null;
|
|
100
104
|
};
|
|
101
105
|
permanent: BooleanConstructor;
|
|
102
|
-
rail:
|
|
106
|
+
rail: {
|
|
107
|
+
type: PropType<boolean | null>;
|
|
108
|
+
default: null;
|
|
109
|
+
};
|
|
103
110
|
railWidth: {
|
|
104
111
|
type: (StringConstructor | NumberConstructor)[];
|
|
105
112
|
default: number;
|
|
@@ -123,6 +130,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
|
123
130
|
sticky: BooleanConstructor;
|
|
124
131
|
}>> & {
|
|
125
132
|
"onUpdate:modelValue"?: ((val: boolean) => any) | undefined;
|
|
133
|
+
"onUpdate:rail"?: ((val: boolean) => any) | undefined;
|
|
126
134
|
}, {
|
|
127
135
|
absolute: boolean;
|
|
128
136
|
location: "end" | "start" | "left" | "bottom" | "right";
|
|
@@ -140,7 +148,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
|
140
148
|
disableRouteWatcher: boolean;
|
|
141
149
|
expandOnHover: boolean;
|
|
142
150
|
permanent: boolean;
|
|
143
|
-
rail: boolean;
|
|
151
|
+
rail: boolean | null;
|
|
144
152
|
railWidth: string | number;
|
|
145
153
|
}>;
|
|
146
154
|
declare type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>;
|
|
@@ -20,6 +20,7 @@ import { useRefs } from "../../composables/refs.mjs";
|
|
|
20
20
|
import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
|
|
21
21
|
import { computed, nextTick, ref, toRef } from 'vue';
|
|
22
22
|
import { createRange, defineComponent, keyValues, useRender } from "../../util/index.mjs"; // Types
|
|
23
|
+
import { useDisplay } from "../../composables/index.mjs";
|
|
23
24
|
export const VPagination = defineComponent({
|
|
24
25
|
name: 'VPagination',
|
|
25
26
|
props: {
|
|
@@ -124,6 +125,9 @@ export const VPagination = defineComponent({
|
|
|
124
125
|
const {
|
|
125
126
|
themeClasses
|
|
126
127
|
} = provideTheme(props);
|
|
128
|
+
const {
|
|
129
|
+
width
|
|
130
|
+
} = useDisplay();
|
|
127
131
|
const maxButtons = ref(-1);
|
|
128
132
|
provideDefaults(undefined, {
|
|
129
133
|
scoped: true
|
|
@@ -140,17 +144,20 @@ export const VPagination = defineComponent({
|
|
|
140
144
|
if (!firstItem) return;
|
|
141
145
|
const totalWidth = contentRect.width;
|
|
142
146
|
const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
|
|
143
|
-
|
|
144
|
-
maxButtons.value = Math.max(0, Math.floor(
|
|
145
|
-
// Round to two decimal places to avoid floating point errors
|
|
146
|
-
+((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
|
|
147
|
+
maxButtons.value = getMax(totalWidth, itemWidth);
|
|
147
148
|
});
|
|
148
149
|
const length = computed(() => parseInt(props.length, 10));
|
|
149
150
|
const start = computed(() => parseInt(props.start, 10));
|
|
150
151
|
const totalVisible = computed(() => {
|
|
151
152
|
if (props.totalVisible) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;
|
|
152
|
-
return
|
|
153
|
+
return getMax(width.value, 58);
|
|
153
154
|
});
|
|
155
|
+
function getMax(totalWidth, itemWidth) {
|
|
156
|
+
const minButtons = props.showFirstLastPage ? 5 : 3;
|
|
157
|
+
return Math.max(0, Math.floor(
|
|
158
|
+
// Round to two decimal places to avoid floating point errors
|
|
159
|
+
+((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
|
|
160
|
+
}
|
|
154
161
|
const range = computed(() => {
|
|
155
162
|
if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
|
|
156
163
|
if (totalVisible.value <= 1) return [page.value];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useRtl","useProxiedModel","useRefs","useResizeObserver","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","minButtons","Math","max","floor","toFixed","parseInt","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","rounded","elevation","items","map","item","index","isActive","key","icon","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n const minButtons = props.showFirstLastPage ? 5 : 3\n\n maxButtons.value = Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.key }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useRtl","useProxiedModel","useRefs","useResizeObserver","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","useDisplay","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","width","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","getMax","parseInt","minButtons","Math","max","floor","toFixed","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","rounded","elevation","items","map","item","index","isActive","key","icon","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\nimport { useDisplay } from '@/composables'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { width } = useDisplay()\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n\n maxButtons.value = getMax(totalWidth, itemWidth)\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return getMax(width.value, 58)\n })\n\n function getMax (totalWidth: number, itemWidth: number) {\n const minButtons = props.showFirstLastPage ? 5 : 3\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n }\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.key }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export const VRadioGroup = defineComponent({
|
|
|
73
73
|
isReadonly
|
|
74
74
|
} = _ref2;
|
|
75
75
|
return _createVNode(_Fragment, null, [label && _createVNode(VLabel, {
|
|
76
|
-
"
|
|
76
|
+
"id": id.value
|
|
77
77
|
}, {
|
|
78
78
|
default: () => [label]
|
|
79
79
|
}), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {
|
|
@@ -83,7 +83,8 @@ export const VRadioGroup = defineComponent({
|
|
|
83
83
|
"falseIcon": props.falseIcon,
|
|
84
84
|
"type": props.type,
|
|
85
85
|
"disabled": isDisabled.value,
|
|
86
|
-
"readonly": isReadonly.value
|
|
86
|
+
"readonly": isReadonly.value,
|
|
87
|
+
"aria-labelledby": label ? id.value : undefined
|
|
87
88
|
}, controlAttrs, {
|
|
88
89
|
"modelValue": model.value,
|
|
89
90
|
"onUpdate:modelValue": $event => model.value = $event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VRadioGroup.mjs","names":["filterControlProps","filterInputProps","makeVInputProps","VInput","makeSelectionControlGroupProps","VSelectionControlGroup","VLabel","IconValue","useProxiedModel","computed","defineComponent","filterInputAttrs","getUid","omit","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","emits","val","setup","attrs","slots","uid","id","model","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","multiple","label","for","value","isDisabled","isReadonly"],"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, omit, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps({\n ...props,\n multiple: false as const,\n })\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel
|
|
1
|
+
{"version":3,"file":"VRadioGroup.mjs","names":["filterControlProps","filterInputProps","makeVInputProps","VInput","makeSelectionControlGroupProps","VSelectionControlGroup","VLabel","IconValue","useProxiedModel","computed","defineComponent","filterInputAttrs","getUid","omit","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","emits","val","setup","attrs","slots","uid","id","model","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","multiple","label","for","value","isDisabled","isReadonly","undefined"],"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, omit, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps({\n ...props,\n multiple: false as const,\n })\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel id={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n defaultsTarget=\"VRadio\"\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n aria-labelledby={ label ? id.value : undefined }\n { ...controlAttrs }\n v-model={ model.value }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VRadioGroup = InstanceType<typeof VRadioGroup>\n"],"mappings":"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"}
|
|
@@ -200,14 +200,17 @@ export const VSelect = genericComponent()({
|
|
|
200
200
|
default: () => [!items.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? _createVNode(VListItem, {
|
|
201
201
|
"title": t(props.noDataText)
|
|
202
202
|
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), items.value.map((item, index) => {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
item,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
203
|
+
if (slots.item) {
|
|
204
|
+
var _slots$item;
|
|
205
|
+
return (_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
|
|
206
|
+
item,
|
|
207
|
+
index,
|
|
208
|
+
props: mergeProps(item.props, {
|
|
209
|
+
onClick: () => select(item)
|
|
210
|
+
})
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return _createVNode(VListItem, _mergeProps({
|
|
211
214
|
"key": index
|
|
212
215
|
}, item.props, {
|
|
213
216
|
"onClick": () => select(item)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","forwardRefs","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","listRef","onClear","e","onClickControl","length","readonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","textFieldProps","join","externalValue","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n e.preventDefault()\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n e.preventDefault()\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","forwardRefs","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","listRef","onClear","e","onClickControl","length","readonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","textFieldProps","join","externalValue","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n e.preventDefault()\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n e.preventDefault()\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => {\n if (slots.item) {\n return slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n })\n }\n\n return (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )\n })}\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { Ripple } from "../../directives/ripple/index.mjs"; // Composables
|
|
|
10
10
|
import { useDensity } from "../../composables/density.mjs";
|
|
11
11
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
12
12
|
import { useTextColor } from "../../composables/color.mjs"; // Utilities
|
|
13
|
-
import { computed, inject, ref } from 'vue';
|
|
13
|
+
import { computed, inject, nextTick, ref } from 'vue';
|
|
14
14
|
import { filterInputAttrs, genericComponent, getUid, pick, propsFactory, SUPPORTS_FOCUS_VISIBLE, useRender, wrapInArray } from "../../util/index.mjs"; // Types
|
|
15
15
|
export const makeSelectionControlProps = propsFactory({
|
|
16
16
|
label: String,
|
|
@@ -81,6 +81,7 @@ export const VSelectionControl = genericComponent()({
|
|
|
81
81
|
slots
|
|
82
82
|
} = _ref;
|
|
83
83
|
const {
|
|
84
|
+
group,
|
|
84
85
|
densityClasses,
|
|
85
86
|
icon,
|
|
86
87
|
model,
|
|
@@ -93,6 +94,11 @@ export const VSelectionControl = genericComponent()({
|
|
|
93
94
|
const isFocused = ref(false);
|
|
94
95
|
const isFocusVisible = ref(false);
|
|
95
96
|
const input = ref();
|
|
97
|
+
group == null ? void 0 : group.onForceUpdate(() => {
|
|
98
|
+
if (input.value) {
|
|
99
|
+
input.value.checked = model.value;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
96
102
|
function onFocus(e) {
|
|
97
103
|
isFocused.value = true;
|
|
98
104
|
if (!SUPPORTS_FOCUS_VISIBLE || SUPPORTS_FOCUS_VISIBLE && e.target.matches(':focus-visible')) {
|
|
@@ -104,6 +110,9 @@ export const VSelectionControl = genericComponent()({
|
|
|
104
110
|
isFocusVisible.value = false;
|
|
105
111
|
}
|
|
106
112
|
function onInput(e) {
|
|
113
|
+
if (props.readonly && group) {
|
|
114
|
+
nextTick(() => group.forceUpdate());
|
|
115
|
+
}
|
|
107
116
|
model.value = e.target.checked;
|
|
108
117
|
}
|
|
109
118
|
useRender(() => {
|
|
@@ -140,7 +149,7 @@ export const VSelectionControl = genericComponent()({
|
|
|
140
149
|
"onBlur": onBlur,
|
|
141
150
|
"onFocus": onFocus,
|
|
142
151
|
"onInput": onInput,
|
|
143
|
-
"aria-
|
|
152
|
+
"aria-disabled": props.readonly,
|
|
144
153
|
"type": props.type,
|
|
145
154
|
"value": trueValue.value,
|
|
146
155
|
"name": props.name,
|