@vuetify/nightly 3.9.2-master.2025-07-28 → 3.9.3-dev.2025-07-30
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 +8 -53
- package/dist/json/attributes.json +3804 -3784
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +192 -192
- package/dist/json/tags.json +5 -0
- package/dist/json/web-types.json +6986 -6916
- package/dist/vuetify-labs.cjs +272 -44
- package/dist/vuetify-labs.css +5500 -5503
- package/dist/vuetify-labs.d.ts +132 -69
- package/dist/vuetify-labs.esm.js +272 -44
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +272 -44
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +234 -35
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4797 -4800
- package/dist/vuetify.d.ts +122 -69
- package/dist/vuetify.esm.js +234 -35
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +234 -35
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +792 -768
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +11 -6
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerControls.js +8 -1
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +11 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.js +3 -0
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.d.ts +15 -0
- package/lib/components/VFileInput/VFileInput.js +38 -9
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VList/VList.js +2 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js +3 -4
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListItem.js +7 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.d.ts +75 -0
- package/lib/components/VProgressLinear/VProgressLinear.js +32 -6
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +1 -1
- package/lib/components/VProgressLinear/chunks.d.ts +55 -0
- package/lib/components/VProgressLinear/chunks.js +62 -0
- package/lib/components/VProgressLinear/chunks.js.map +1 -0
- package/lib/components/VSelect/VSelect.js +1 -0
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +9 -14
- package/lib/components/VSlider/VSliderThumb.js +13 -7
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +9 -14
- package/lib/components/VSlider/slider.d.ts +1 -0
- package/lib/components/VSlider/slider.js +2 -0
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/composables/fileFilter.d.ts +18 -0
- package/lib/composables/fileFilter.js +38 -0
- package/lib/composables/fileFilter.js.map +1 -0
- package/lib/composables/theme.d.ts +1 -0
- package/lib/composables/theme.js +3 -1
- package/lib/composables/theme.js.map +1 -1
- package/lib/directives/ripple/index.js +2 -2
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +70 -69
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.d.ts +15 -0
- package/lib/labs/VFileUpload/VFileUpload.js +39 -9
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/locale/af.d.ts +7 -0
- package/lib/locale/af.js +7 -0
- package/lib/locale/af.js.map +1 -1
- package/lib/locale/ar.d.ts +7 -0
- package/lib/locale/ar.js +13 -6
- package/lib/locale/ar.js.map +1 -1
- package/lib/locale/az.d.ts +7 -0
- package/lib/locale/az.js +7 -0
- package/lib/locale/az.js.map +1 -1
- package/lib/locale/bg.d.ts +7 -0
- package/lib/locale/bg.js +7 -0
- package/lib/locale/bg.js.map +1 -1
- package/lib/locale/ca.d.ts +7 -0
- package/lib/locale/ca.js +7 -0
- package/lib/locale/ca.js.map +1 -1
- package/lib/locale/ckb.d.ts +7 -0
- package/lib/locale/ckb.js +7 -0
- package/lib/locale/ckb.js.map +1 -1
- package/lib/locale/cs.d.ts +7 -0
- package/lib/locale/cs.js +7 -0
- package/lib/locale/cs.js.map +1 -1
- package/lib/locale/da.d.ts +7 -0
- package/lib/locale/da.js +7 -0
- package/lib/locale/da.js.map +1 -1
- package/lib/locale/de.d.ts +7 -0
- package/lib/locale/de.js +7 -0
- package/lib/locale/de.js.map +1 -1
- package/lib/locale/el.d.ts +7 -0
- package/lib/locale/el.js +7 -0
- package/lib/locale/el.js.map +1 -1
- package/lib/locale/en.d.ts +7 -0
- package/lib/locale/en.js +8 -0
- package/lib/locale/en.js.map +1 -1
- package/lib/locale/es.d.ts +7 -0
- package/lib/locale/es.js +7 -0
- package/lib/locale/es.js.map +1 -1
- package/lib/locale/et.d.ts +7 -0
- package/lib/locale/et.js +7 -0
- package/lib/locale/et.js.map +1 -1
- package/lib/locale/fa.d.ts +7 -0
- package/lib/locale/fa.js +7 -0
- package/lib/locale/fa.js.map +1 -1
- package/lib/locale/fi.d.ts +7 -0
- package/lib/locale/fi.js +7 -0
- package/lib/locale/fi.js.map +1 -1
- package/lib/locale/fr.d.ts +7 -0
- package/lib/locale/fr.js +7 -0
- package/lib/locale/fr.js.map +1 -1
- package/lib/locale/he.d.ts +7 -0
- package/lib/locale/he.js +7 -0
- package/lib/locale/he.js.map +1 -1
- package/lib/locale/hr.d.ts +7 -0
- package/lib/locale/hr.js +7 -0
- package/lib/locale/hr.js.map +1 -1
- package/lib/locale/hu.d.ts +7 -0
- package/lib/locale/hu.js +7 -0
- package/lib/locale/hu.js.map +1 -1
- package/lib/locale/id.d.ts +7 -0
- package/lib/locale/id.js +7 -0
- package/lib/locale/id.js.map +1 -1
- package/lib/locale/it.d.ts +7 -0
- package/lib/locale/it.js +7 -0
- package/lib/locale/it.js.map +1 -1
- package/lib/locale/ja.d.ts +7 -0
- package/lib/locale/ja.js +7 -0
- package/lib/locale/ja.js.map +1 -1
- package/lib/locale/km.d.ts +7 -0
- package/lib/locale/km.js +7 -0
- package/lib/locale/km.js.map +1 -1
- package/lib/locale/ko.d.ts +7 -0
- package/lib/locale/ko.js +7 -0
- package/lib/locale/ko.js.map +1 -1
- package/lib/locale/lt.d.ts +7 -0
- package/lib/locale/lt.js +7 -0
- package/lib/locale/lt.js.map +1 -1
- package/lib/locale/lv.d.ts +7 -0
- package/lib/locale/lv.js +7 -0
- package/lib/locale/lv.js.map +1 -1
- package/lib/locale/nl.d.ts +7 -0
- package/lib/locale/nl.js +7 -0
- package/lib/locale/nl.js.map +1 -1
- package/lib/locale/no.d.ts +7 -0
- package/lib/locale/no.js +7 -0
- package/lib/locale/no.js.map +1 -1
- package/lib/locale/pl.d.ts +7 -0
- package/lib/locale/pl.js +7 -0
- package/lib/locale/pl.js.map +1 -1
- package/lib/locale/pt.d.ts +7 -0
- package/lib/locale/pt.js +7 -0
- package/lib/locale/pt.js.map +1 -1
- package/lib/locale/ro.d.ts +7 -0
- package/lib/locale/ro.js +7 -0
- package/lib/locale/ro.js.map +1 -1
- package/lib/locale/ru.d.ts +7 -0
- package/lib/locale/ru.js +7 -0
- package/lib/locale/ru.js.map +1 -1
- package/lib/locale/sk.d.ts +7 -0
- package/lib/locale/sk.js +7 -0
- package/lib/locale/sk.js.map +1 -1
- package/lib/locale/sl.d.ts +7 -0
- package/lib/locale/sl.js +7 -0
- package/lib/locale/sl.js.map +1 -1
- package/lib/locale/sr-Cyrl.d.ts +7 -0
- package/lib/locale/sr-Cyrl.js +7 -0
- package/lib/locale/sr-Cyrl.js.map +1 -1
- package/lib/locale/sr-Latn.d.ts +7 -0
- package/lib/locale/sr-Latn.js +7 -0
- package/lib/locale/sr-Latn.js.map +1 -1
- package/lib/locale/sv.d.ts +7 -0
- package/lib/locale/sv.js +7 -0
- package/lib/locale/sv.js.map +1 -1
- package/lib/locale/th.d.ts +7 -0
- package/lib/locale/th.js +7 -0
- package/lib/locale/th.js.map +1 -1
- package/lib/locale/tr.d.ts +7 -0
- package/lib/locale/tr.js +7 -0
- package/lib/locale/tr.js.map +1 -1
- package/lib/locale/uk.d.ts +7 -0
- package/lib/locale/uk.js +7 -0
- package/lib/locale/uk.js.map +1 -1
- package/lib/locale/vi.d.ts +7 -0
- package/lib/locale/vi.js +7 -0
- package/lib/locale/vi.js.map +1 -1
- package/lib/locale/zh-Hans.d.ts +7 -0
- package/lib/locale/zh-Hans.js +7 -0
- package/lib/locale/zh-Hans.js.map +1 -1
- package/lib/locale/zh-Hant.d.ts +7 -0
- package/lib/locale/zh-Hant.js +7 -0
- package/lib/locale/zh-Hant.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","itemTypes","Set","transformItem","props","item","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","type","itemType","has","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","filterable","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","tagName","includes","key","preventDefault","onMousedown","location","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {}\n\nconst itemTypes = new Set(['item', 'divider', 'subheader'])\n\nfunction transformItem (props: ItemProps, item: any): ListItem {\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n let type = getPropertyFromItem(item, props.itemType, 'item')\n if (!itemTypes.has(type)) {\n type = 'item'\n }\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n\n createList({\n filterable: props.filterable,\n })\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value ||\n (target.tagName === 'INPUT' && ['Home', 'End'].includes(e.key)) ||\n target.tagName === 'TEXTAREA') {\n return\n }\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","itemTypes","Set","transformItem","props","item","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","type","itemType","has","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","filterable","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","isSelectable","selectable","activatable","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","tagName","includes","key","preventDefault","onMousedown","location","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {}\n\nconst itemTypes = new Set(['item', 'divider', 'subheader'])\n\nfunction transformItem (props: ItemProps, item: any): ListItem {\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n let type = getPropertyFromItem(item, props.itemType, 'item')\n if (!itemTypes.has(type)) {\n type = 'item'\n }\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const isSelectable = toRef(() => (props.selectable || props.activatable))\n\n createList({\n filterable: props.filterable,\n })\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value ||\n (target.tagName === 'INPUT' && ['Home', 'End'].includes(e.key)) ||\n target.tagName === 'TEXTAREA') {\n return\n }\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role={ isSelectable.value ? 'listbox' : 'list' }\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
|
@@ -4,6 +4,7 @@ import { VListGroup } from "./VListGroup.js";
|
|
4
4
|
import { VListItem } from "./VListItem.js";
|
5
5
|
import { VListSubheader } from "./VListSubheader.js";
|
6
6
|
import { VDivider } from "../VDivider/index.js"; // Utilities
|
7
|
+
import { mergeProps } from 'vue';
|
7
8
|
import { createList } from "./list.js";
|
8
9
|
import { genericComponent, propsFactory } from "../../util/index.js"; // Types
|
9
10
|
export const makeVListChildrenProps = propsFactory({
|
@@ -62,11 +63,9 @@ export const VListChildren = genericComponent()({
|
|
62
63
|
let {
|
63
64
|
props: activatorProps
|
64
65
|
} = _ref3;
|
65
|
-
const listItemProps = {
|
66
|
-
...itemProps,
|
67
|
-
...activatorProps,
|
66
|
+
const listItemProps = mergeProps(itemProps, activatorProps, {
|
68
67
|
value: props.returnObject ? item : itemProps.value
|
69
|
-
};
|
68
|
+
});
|
70
69
|
return slots.header ? slots.header({
|
71
70
|
props: listItemProps
|
72
71
|
}) : _createVNode(VListItem, listItemProps, slotsWithItem);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VListChildren.js","names":["VListGroup","VListItem","VListSubheader","VDivider","createList","genericComponent","propsFactory","makeVListChildrenProps","items","Array","returnObject","Boolean","VListChildren","name","props","setup","_ref","slots","default","map","_ref2","children","itemProps","type","raw","item","divider","_createVNode","subheader","slotsWithItem","subtitle","slotProps","undefined","prepend","append","title","listGroupProps","filterProps","_mergeProps","value","activator","_ref3","activatorProps","listItemProps","header"],"sources":["../../../src/components/VList/VListChildren.tsx"],"sourcesContent":["// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '@/components/VDivider'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType<readonly InternalListItem[]>,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n <VDivider { ...itemProps } />\n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n <VListSubheader { ...itemProps } />\n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n <VListGroup\n { ...listGroupProps }\n value={ props.returnObject ? item : itemProps?.value }\n rawId={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps =
|
1
|
+
{"version":3,"file":"VListChildren.js","names":["VListGroup","VListItem","VListSubheader","VDivider","mergeProps","createList","genericComponent","propsFactory","makeVListChildrenProps","items","Array","returnObject","Boolean","VListChildren","name","props","setup","_ref","slots","default","map","_ref2","children","itemProps","type","raw","item","divider","_createVNode","subheader","slotsWithItem","subtitle","slotProps","undefined","prepend","append","title","listGroupProps","filterProps","_mergeProps","value","activator","_ref3","activatorProps","listItemProps","header"],"sources":["../../../src/components/VList/VListChildren.tsx"],"sourcesContent":["// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '@/components/VDivider'\n\n// Utilities\nimport { mergeProps } from 'vue'\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType<readonly InternalListItem[]>,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n <VDivider { ...itemProps } />\n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n <VListSubheader { ...itemProps } />\n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n <VListGroup\n { ...listGroupProps }\n value={ props.returnObject ? item : itemProps?.value }\n rawId={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = mergeProps(\n itemProps,\n activatorProps,\n { value: props.returnObject ? item : itemProps.value }\n ) as typeof itemProps\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n <VListItem { ...listItemProps } v-slots={ slotsWithItem } />\n )\n },\n default: () => (\n <VListChildren\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n <VListItem\n { ...itemProps }\n value={ props.returnObject ? item : itemProps.value }\n v-slots={ slotsWithItem }\n />\n )\n )\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
@@ -108,6 +108,11 @@ export const VListItem = genericComponent()({
|
|
108
108
|
const isLink = toRef(() => props.link !== false && link.isLink.value);
|
109
109
|
const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
110
110
|
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
111
|
+
const role = computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
112
|
+
const ariaSelected = computed(() => {
|
113
|
+
if (!isSelectable.value) return undefined;
|
114
|
+
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
115
|
+
});
|
111
116
|
const roundedProps = toRef(() => props.rounded || props.nav);
|
112
117
|
const color = toRef(() => props.color ?? props.activeColor);
|
113
118
|
const variantProps = toRef(() => ({
|
@@ -211,7 +216,8 @@ export const VListItem = genericComponent()({
|
|
211
216
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
212
217
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
213
218
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
214
|
-
"aria-selected":
|
219
|
+
"aria-selected": ariaSelected.value,
|
220
|
+
"role": role.value,
|
215
221
|
"onClick": onClick,
|
216
222
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
217
223
|
}, link.linkProps), {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VListItem.js","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","vRipple","computed","onBeforeMount","toDisplayString","toRef","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","slim","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","activate","isActivated","select","isOpen","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","uid","list","isActive","activatable","isLink","isSelectable","selectable","isClickable","roundedProps","rounded","color","variantProps","val","handleActiveLink","open","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","rippleOptions","filterable","keys","slotProps","includes","target","tagName","navigate","onKeyDown","key","preventDefault","stopPropagation","dispatchEvent","MouseEvent","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","_mergeProps","class","style","linkProps","_createElementVNode","_Fragment","density","image","icon","VListItemAction","start","end"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, onBeforeMount, toDisplayString, toRef, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n index?: number\n depth?: number\n path?: number[]\n isFirst?: boolean\n isLast?: boolean\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n slim: Boolean,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { vRipple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, () => props.disabled, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = toRef(() => props.link !== false && link.isLink.value)\n const isSelectable = computed(() => (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || isSelectable.value)\n )\n\n const roundedProps = toRef(() => props.rounded || props.nav)\n const color = toRef(() => props.color ?? props.activeColor)\n const variantProps = toRef(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return\n handleActiveLink()\n })\n onBeforeMount(() => {\n if (link.isActive?.value) handleActiveLink()\n })\n function handleActiveLink () {\n if (parent.value != null) {\n root.open(parent.value, true)\n }\n openOnSelect(true)\n }\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n const rippleOptions = toRef(() =>\n (\n props.ripple !== undefined &&\n !!props.ripple &&\n list?.filterable\n )\n ? { keys: ['Enter'] }\n : props.ripple\n )\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n if (['INPUT', 'TEXTAREA'].includes((e.target as Element)?.tagName)) return\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'Enter' || (e.key === ' ' && !list?.filterable)) {\n e.preventDefault()\n e.stopPropagation()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n aria-selected={\n isSelectable.value ? (\n root.activatable.value ? isActivated.value\n : root.selectable.value ? isSelected.value\n : isActive.value\n ) : undefined\n }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && rippleOptions.value }\n { ...link.linkProps }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? toDisplayString(props.title) }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? toDisplayString(props.subtitle) }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n link,\n }\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VListItem.js","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","vRipple","computed","onBeforeMount","toDisplayString","toRef","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","slim","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","activate","isActivated","select","isOpen","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","uid","list","isActive","activatable","isLink","isSelectable","selectable","isClickable","role","ariaSelected","roundedProps","rounded","color","variantProps","val","handleActiveLink","open","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","rippleOptions","filterable","keys","slotProps","includes","target","tagName","navigate","onKeyDown","key","preventDefault","stopPropagation","dispatchEvent","MouseEvent","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","_mergeProps","class","style","linkProps","_createElementVNode","_Fragment","density","image","icon","VListItemAction","start","end"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, onBeforeMount, toDisplayString, toRef, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n index?: number\n depth?: number\n path?: number[]\n isFirst?: boolean\n isLast?: boolean\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n slim: Boolean,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { vRipple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, () => props.disabled, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = toRef(() => props.link !== false && link.isLink.value)\n const isSelectable = computed(() => (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || isSelectable.value)\n )\n const role = computed(() => list ? (isSelectable.value ? 'option' : 'listitem') : undefined)\n const ariaSelected = computed(() => {\n if (!isSelectable.value) return undefined\n return root.activatable.value ? isActivated.value\n : root.selectable.value ? isSelected.value\n : isActive.value\n })\n\n const roundedProps = toRef(() => props.rounded || props.nav)\n const color = toRef(() => props.color ?? props.activeColor)\n const variantProps = toRef(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return\n handleActiveLink()\n })\n onBeforeMount(() => {\n if (link.isActive?.value) handleActiveLink()\n })\n function handleActiveLink () {\n if (parent.value != null) {\n root.open(parent.value, true)\n }\n openOnSelect(true)\n }\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n const rippleOptions = toRef(() =>\n (\n props.ripple !== undefined &&\n !!props.ripple &&\n list?.filterable\n )\n ? { keys: ['Enter'] }\n : props.ripple\n )\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n if (['INPUT', 'TEXTAREA'].includes((e.target as Element)?.tagName)) return\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'Enter' || (e.key === ' ' && !list?.filterable)) {\n e.preventDefault()\n e.stopPropagation()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n aria-selected={ ariaSelected.value }\n role={ role.value }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && rippleOptions.value }\n { ...link.linkProps }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? toDisplayString(props.title) }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? toDisplayString(props.subtitle) }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n link,\n }\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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","ignoreList":[]}
|
@@ -6,6 +6,9 @@ export declare const makeVProgressLinearProps: <Defaults extends {
|
|
6
6
|
location?: unknown;
|
7
7
|
class?: unknown;
|
8
8
|
style?: unknown;
|
9
|
+
chunkCount?: unknown;
|
10
|
+
chunkWidth?: unknown;
|
11
|
+
chunkGap?: unknown;
|
9
12
|
absolute?: unknown;
|
10
13
|
active?: unknown;
|
11
14
|
bgColor?: unknown;
|
@@ -77,6 +80,36 @@ export declare const makeVProgressLinearProps: <Defaults extends {
|
|
77
80
|
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
|
78
81
|
default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable<import("vue").StyleValue> | Defaults["style"];
|
79
82
|
};
|
83
|
+
chunkCount: unknown extends Defaults["chunkCount"] ? {
|
84
|
+
type: (StringConstructor | NumberConstructor)[];
|
85
|
+
default: null;
|
86
|
+
} : Omit<{
|
87
|
+
type: (StringConstructor | NumberConstructor)[];
|
88
|
+
default: null;
|
89
|
+
}, "type" | "default"> & {
|
90
|
+
type: import("vue").PropType<unknown extends Defaults["chunkCount"] ? string | number : string | number | Defaults["chunkCount"]>;
|
91
|
+
default: unknown extends Defaults["chunkCount"] ? string | number : NonNullable<string | number> | Defaults["chunkCount"];
|
92
|
+
};
|
93
|
+
chunkWidth: unknown extends Defaults["chunkWidth"] ? {
|
94
|
+
type: (StringConstructor | NumberConstructor)[];
|
95
|
+
default: null;
|
96
|
+
} : Omit<{
|
97
|
+
type: (StringConstructor | NumberConstructor)[];
|
98
|
+
default: null;
|
99
|
+
}, "type" | "default"> & {
|
100
|
+
type: import("vue").PropType<unknown extends Defaults["chunkWidth"] ? string | number : string | number | Defaults["chunkWidth"]>;
|
101
|
+
default: unknown extends Defaults["chunkWidth"] ? string | number : NonNullable<string | number> | Defaults["chunkWidth"];
|
102
|
+
};
|
103
|
+
chunkGap: unknown extends Defaults["chunkGap"] ? {
|
104
|
+
type: (StringConstructor | NumberConstructor)[];
|
105
|
+
default: number;
|
106
|
+
} : Omit<{
|
107
|
+
type: (StringConstructor | NumberConstructor)[];
|
108
|
+
default: number;
|
109
|
+
}, "type" | "default"> & {
|
110
|
+
type: import("vue").PropType<unknown extends Defaults["chunkGap"] ? string | number : string | number | Defaults["chunkGap"]>;
|
111
|
+
default: unknown extends Defaults["chunkGap"] ? string | number : NonNullable<string | number> | Defaults["chunkGap"];
|
112
|
+
};
|
80
113
|
absolute: unknown extends Defaults["absolute"] ? BooleanConstructor : {
|
81
114
|
type: import("vue").PropType<unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"]>;
|
82
115
|
default: unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"];
|
@@ -194,6 +227,9 @@ export declare const VProgressLinear: {
|
|
194
227
|
indeterminate: boolean;
|
195
228
|
modelValue: string | number;
|
196
229
|
tile: boolean;
|
230
|
+
chunkCount: string | number;
|
231
|
+
chunkWidth: string | number;
|
232
|
+
chunkGap: string | number;
|
197
233
|
bufferValue: string | number;
|
198
234
|
clickable: boolean;
|
199
235
|
striped: boolean;
|
@@ -249,6 +285,9 @@ export declare const VProgressLinear: {
|
|
249
285
|
modelValue: string | number;
|
250
286
|
rounded: string | number | boolean;
|
251
287
|
tile: boolean;
|
288
|
+
chunkCount: string | number;
|
289
|
+
chunkWidth: string | number;
|
290
|
+
chunkGap: string | number;
|
252
291
|
bufferValue: string | number;
|
253
292
|
clickable: boolean;
|
254
293
|
striped: boolean;
|
@@ -278,6 +317,9 @@ export declare const VProgressLinear: {
|
|
278
317
|
indeterminate: boolean;
|
279
318
|
modelValue: string | number;
|
280
319
|
tile: boolean;
|
320
|
+
chunkCount: string | number;
|
321
|
+
chunkWidth: string | number;
|
322
|
+
chunkGap: string | number;
|
281
323
|
bufferValue: string | number;
|
282
324
|
clickable: boolean;
|
283
325
|
striped: boolean;
|
@@ -331,6 +373,9 @@ export declare const VProgressLinear: {
|
|
331
373
|
modelValue: string | number;
|
332
374
|
rounded: string | number | boolean;
|
333
375
|
tile: boolean;
|
376
|
+
chunkCount: string | number;
|
377
|
+
chunkWidth: string | number;
|
378
|
+
chunkGap: string | number;
|
334
379
|
bufferValue: string | number;
|
335
380
|
clickable: boolean;
|
336
381
|
striped: boolean;
|
@@ -352,6 +397,9 @@ export declare const VProgressLinear: {
|
|
352
397
|
indeterminate: boolean;
|
353
398
|
modelValue: string | number;
|
354
399
|
tile: boolean;
|
400
|
+
chunkCount: string | number;
|
401
|
+
chunkWidth: string | number;
|
402
|
+
chunkGap: string | number;
|
355
403
|
bufferValue: string | number;
|
356
404
|
clickable: boolean;
|
357
405
|
striped: boolean;
|
@@ -407,6 +455,9 @@ export declare const VProgressLinear: {
|
|
407
455
|
modelValue: string | number;
|
408
456
|
rounded: string | number | boolean;
|
409
457
|
tile: boolean;
|
458
|
+
chunkCount: string | number;
|
459
|
+
chunkWidth: string | number;
|
460
|
+
chunkGap: string | number;
|
410
461
|
bufferValue: string | number;
|
411
462
|
clickable: boolean;
|
412
463
|
striped: boolean;
|
@@ -436,6 +487,18 @@ export declare const VProgressLinear: {
|
|
436
487
|
type: import("vue").PropType<import("vue").StyleValue>;
|
437
488
|
default: null;
|
438
489
|
};
|
490
|
+
chunkCount: {
|
491
|
+
type: (StringConstructor | NumberConstructor)[];
|
492
|
+
default: null;
|
493
|
+
};
|
494
|
+
chunkWidth: {
|
495
|
+
type: (StringConstructor | NumberConstructor)[];
|
496
|
+
default: null;
|
497
|
+
};
|
498
|
+
chunkGap: {
|
499
|
+
type: (StringConstructor | NumberConstructor)[];
|
500
|
+
default: number;
|
501
|
+
};
|
439
502
|
absolute: BooleanConstructor;
|
440
503
|
active: {
|
441
504
|
type: BooleanConstructor;
|
@@ -489,6 +552,18 @@ export declare const VProgressLinear: {
|
|
489
552
|
type: import("vue").PropType<import("vue").StyleValue>;
|
490
553
|
default: null;
|
491
554
|
};
|
555
|
+
chunkCount: {
|
556
|
+
type: (StringConstructor | NumberConstructor)[];
|
557
|
+
default: null;
|
558
|
+
};
|
559
|
+
chunkWidth: {
|
560
|
+
type: (StringConstructor | NumberConstructor)[];
|
561
|
+
default: null;
|
562
|
+
};
|
563
|
+
chunkGap: {
|
564
|
+
type: (StringConstructor | NumberConstructor)[];
|
565
|
+
default: number;
|
566
|
+
};
|
492
567
|
absolute: BooleanConstructor;
|
493
568
|
active: {
|
494
569
|
type: BooleanConstructor;
|
@@ -9,10 +9,13 @@ import { useIntersectionObserver } from "../../composables/intersectionObserver.
|
|
9
9
|
import { useRtl } from "../../composables/locale.js";
|
10
10
|
import { makeLocationProps, useLocation } from "../../composables/location.js";
|
11
11
|
import { useProxiedModel } from "../../composables/proxiedModel.js";
|
12
|
+
import { useResizeObserver } from "../../composables/resizeObserver.js";
|
12
13
|
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
13
14
|
import { makeTagProps } from "../../composables/tag.js";
|
14
|
-
import { makeThemeProps, provideTheme } from "../../composables/theme.js";
|
15
|
-
import {
|
15
|
+
import { makeThemeProps, provideTheme } from "../../composables/theme.js";
|
16
|
+
import { useToggleScope } from "../../composables/toggleScope.js"; // Utilities
|
17
|
+
import { computed, ref, shallowRef, Transition, watchEffect } from 'vue';
|
18
|
+
import { makeChunksProps, useChunks } from "./chunks.js";
|
16
19
|
import { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from "../../util/index.js";
|
17
20
|
export const makeVProgressLinearProps = propsFactory({
|
18
21
|
absolute: Boolean,
|
@@ -48,6 +51,7 @@ export const makeVProgressLinearProps = propsFactory({
|
|
48
51
|
stream: Boolean,
|
49
52
|
striped: Boolean,
|
50
53
|
roundedBar: Boolean,
|
54
|
+
...makeChunksProps(),
|
51
55
|
...makeComponentProps(),
|
52
56
|
...makeLocationProps({
|
53
57
|
location: 'top'
|
@@ -66,6 +70,7 @@ export const VProgressLinear = genericComponent()({
|
|
66
70
|
let {
|
67
71
|
slots
|
68
72
|
} = _ref;
|
73
|
+
const root = ref();
|
69
74
|
const progress = useProxiedModel(props, 'modelValue');
|
70
75
|
const {
|
71
76
|
isRtl,
|
@@ -107,6 +112,24 @@ export const VProgressLinear = genericComponent()({
|
|
107
112
|
const isReversed = computed(() => isRtl.value !== props.reverse);
|
108
113
|
const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');
|
109
114
|
const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;
|
115
|
+
const containerWidth = shallowRef(0);
|
116
|
+
const {
|
117
|
+
hasChunks,
|
118
|
+
chunksMaskStyles,
|
119
|
+
snapValueToChunk
|
120
|
+
} = useChunks(props, containerWidth);
|
121
|
+
useToggleScope(hasChunks, () => {
|
122
|
+
const {
|
123
|
+
resizeRef
|
124
|
+
} = useResizeObserver(entries => containerWidth.value = entries[0].contentRect.width);
|
125
|
+
watchEffect(() => resizeRef.value = root.value);
|
126
|
+
});
|
127
|
+
const bufferWidth = computed(() => {
|
128
|
+
return hasChunks.value ? snapValueToChunk(normalizedBuffer.value) : normalizedBuffer.value;
|
129
|
+
});
|
130
|
+
const barWidth = computed(() => {
|
131
|
+
return hasChunks.value ? snapValueToChunk(normalizedValue.value) : normalizedValue.value;
|
132
|
+
});
|
110
133
|
function handleClick(e) {
|
111
134
|
if (!intersectionRef.value) return;
|
112
135
|
const {
|
@@ -117,8 +140,11 @@ export const VProgressLinear = genericComponent()({
|
|
117
140
|
const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;
|
118
141
|
progress.value = Math.round(value / width * max.value);
|
119
142
|
}
|
143
|
+
watchEffect(() => {
|
144
|
+
intersectionRef.value = root.value;
|
145
|
+
});
|
120
146
|
useRender(() => _createVNode(props.tag, {
|
121
|
-
"ref":
|
147
|
+
"ref": root,
|
122
148
|
"class": _normalizeClass(['v-progress-linear', {
|
123
149
|
'v-progress-linear--absolute': props.absolute,
|
124
150
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
@@ -134,7 +160,7 @@ export const VProgressLinear = genericComponent()({
|
|
134
160
|
height: props.active ? convertToUnit(height.value) : 0,
|
135
161
|
'--v-progress-linear-height': convertToUnit(height.value),
|
136
162
|
...(props.absolute ? locationStyles.value : {})
|
137
|
-
}, props.style]),
|
163
|
+
}, chunksMaskStyles.value, props.style]),
|
138
164
|
"role": "progressbar",
|
139
165
|
"aria-hidden": props.active ? 'false' : 'true',
|
140
166
|
"aria-valuemin": "0",
|
@@ -164,7 +190,7 @@ export const VProgressLinear = genericComponent()({
|
|
164
190
|
"class": _normalizeClass(['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined]),
|
165
191
|
"style": _normalizeStyle([bufferColorStyles.value, {
|
166
192
|
opacity: parseFloat(props.bufferOpacity),
|
167
|
-
width: convertToUnit(
|
193
|
+
width: convertToUnit(bufferWidth.value, '%')
|
168
194
|
}])
|
169
195
|
}, null), _createVNode(Transition, {
|
170
196
|
"name": transition.value
|
@@ -172,7 +198,7 @@ export const VProgressLinear = genericComponent()({
|
|
172
198
|
default: () => [!props.indeterminate ? _createElementVNode("div", {
|
173
199
|
"class": _normalizeClass(['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined]),
|
174
200
|
"style": _normalizeStyle([barColorStyles.value, {
|
175
|
-
width: convertToUnit(
|
201
|
+
width: convertToUnit(barWidth.value, '%')
|
176
202
|
}])
|
177
203
|
}, null) : _createElementVNode("div", {
|
178
204
|
"class": "v-progress-linear__indeterminate"
|