vuetify 3.2.3 → 3.2.4

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.
Files changed (132) hide show
  1. package/dist/json/attributes.json +9 -9
  2. package/dist/json/importMap.json +12 -12
  3. package/dist/json/web-types.json +11 -11
  4. package/dist/vuetify-labs.css +34 -35
  5. package/dist/vuetify-labs.d.ts +72 -72
  6. package/dist/vuetify-labs.esm.js +142 -124
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +142 -124
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +1 -2
  11. package/dist/vuetify.d.ts +75 -68
  12. package/dist/vuetify.esm.js +131 -115
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +131 -115
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +469 -469
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.mjs +1 -2
  20. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  21. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  22. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  23. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
  24. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  25. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAutocomplete/index.d.ts +9 -9
  30. package/lib/components/VChip/VChip.css +0 -1
  31. package/lib/components/VChip/VChip.sass +0 -1
  32. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
  33. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.mjs +5 -5
  35. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  36. package/lib/components/VCombobox/index.d.ts +9 -9
  37. package/lib/components/VFooter/VFooter.mjs +2 -2
  38. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  39. package/lib/components/VForm/index.d.ts +3 -3
  40. package/lib/components/VImg/VImg.mjs +6 -6
  41. package/lib/components/VImg/VImg.mjs.map +1 -1
  42. package/lib/components/VImg/index.d.ts +12 -12
  43. package/lib/components/VList/VList.mjs +2 -2
  44. package/lib/components/VList/VList.mjs.map +1 -1
  45. package/lib/components/VList/index.d.ts +9 -9
  46. package/lib/components/VList/list.mjs +4 -4
  47. package/lib/components/VList/list.mjs.map +1 -1
  48. package/lib/components/VMenu/VMenu.mjs +3 -3
  49. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  50. package/lib/components/VMenu/index.d.ts +3 -3
  51. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
  52. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  53. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  54. package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
  55. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  56. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  57. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  58. package/lib/components/VOverlay/locationStrategies.mjs +1 -1
  59. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  60. package/lib/components/VPagination/VPagination.mjs +2 -2
  61. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  62. package/lib/components/VRating/VRating.mjs +6 -3
  63. package/lib/components/VRating/VRating.mjs.map +1 -1
  64. package/lib/components/VSelect/VSelect.mjs +2 -2
  65. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  66. package/lib/components/VSelect/index.d.ts +9 -9
  67. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  68. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  69. package/lib/components/VSelectionControl/index.d.ts +3 -3
  70. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  71. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  72. package/lib/components/VSlideGroup/index.d.ts +3 -3
  73. package/lib/components/VSlider/slider.mjs +3 -3
  74. package/lib/components/VSlider/slider.mjs.map +1 -1
  75. package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
  76. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  77. package/lib/components/VTabs/VTab.mjs +4 -5
  78. package/lib/components/VTabs/VTab.mjs.map +1 -1
  79. package/lib/components/VTextarea/VTextarea.mjs +6 -3
  80. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  81. package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
  82. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  83. package/lib/components/VToolbar/VToolbar.mjs +2 -2
  84. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  85. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
  86. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  87. package/lib/components/VWindow/VWindow.mjs +3 -3
  88. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  89. package/lib/components/VWindow/VWindowItem.mjs +3 -3
  90. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  91. package/lib/components/index.d.ts +63 -63
  92. package/lib/composables/display.mjs +3 -3
  93. package/lib/composables/display.mjs.map +1 -1
  94. package/lib/composables/form.mjs +4 -4
  95. package/lib/composables/form.mjs.map +1 -1
  96. package/lib/composables/hydration.mjs +6 -6
  97. package/lib/composables/hydration.mjs.map +1 -1
  98. package/lib/composables/intersectionObserver.mjs +2 -2
  99. package/lib/composables/intersectionObserver.mjs.map +1 -1
  100. package/lib/composables/layout.mjs +3 -3
  101. package/lib/composables/layout.mjs.map +1 -1
  102. package/lib/composables/lazy.mjs +2 -2
  103. package/lib/composables/lazy.mjs.map +1 -1
  104. package/lib/composables/nested/nested.mjs +5 -4
  105. package/lib/composables/nested/nested.mjs.map +1 -1
  106. package/lib/composables/scroll.mjs +6 -6
  107. package/lib/composables/scroll.mjs.map +1 -1
  108. package/lib/composables/ssrBoot.mjs +2 -2
  109. package/lib/composables/ssrBoot.mjs.map +1 -1
  110. package/lib/composables/stack.mjs +5 -4
  111. package/lib/composables/stack.mjs.map +1 -1
  112. package/lib/composables/transition.mjs +5 -2
  113. package/lib/composables/transition.mjs.map +1 -1
  114. package/lib/composables/validation.mjs +3 -3
  115. package/lib/composables/validation.mjs.map +1 -1
  116. package/lib/entry-bundler.mjs +1 -1
  117. package/lib/framework.mjs +1 -1
  118. package/lib/index.d.ts +12 -5
  119. package/lib/labs/VDataTable/VDataTable.mjs +2 -1
  120. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  121. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  122. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  123. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
  124. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  125. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  126. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  127. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  128. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  129. package/lib/labs/components.d.ts +9 -9
  130. package/lib/locale/adapters/vuetify.mjs +8 -5
  131. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  132. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"VList.mjs","names":["VListChildren","createList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useBackgroundColor","computed","ref","toRef","focusChild","genericComponent","getPropertyFromItem","pick","propsFactory","useRender","isPrimitive","value","transformItem","props","item","type","itemType","title","itemTitle","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","activeColor","String","activeClass","bgColor","disabled","Boolean","lines","default","nav","selectStrategy","openStrategy","variant","VList","name","emits","val","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","preventDefault","location","_createVNode","tag","class","style"],"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 { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/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'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { focusChild, genericComponent, getPropertyFromItem, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\nimport type { InternalItem, ItemProps } from '@/composables/items'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { PropType } from 'vue'\n\nexport interface InternalListItem<T = any> extends InternalItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction isPrimitive (value: unknown): value is string | number | boolean {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction transformItem (props: ItemProps & { itemType: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\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 & { itemType: string }, 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\nfunction useListItems (props: ItemProps & { itemType: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n\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 itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'v-list')\n\nexport const VList = genericComponent<new <T>(props: {\n items?: T[]\n}) => GenericProps<typeof props, VListChildrenSlots<T>>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (val: unknown[]) => true,\n 'update:opened': (val: unknown[]) => true,\n 'click:open': (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(toRef(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 { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = ref(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 if (!contentRef.value) return\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 focus (location?: 'next' | 'prev' | 'first' | 'last') {\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 },\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 role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VList.mjs","names":["VListChildren","createList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useBackgroundColor","computed","ref","shallowRef","toRef","focusChild","genericComponent","getPropertyFromItem","pick","propsFactory","useRender","isPrimitive","value","transformItem","props","item","type","itemType","title","itemTitle","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","activeColor","String","activeClass","bgColor","disabled","Boolean","lines","default","nav","selectStrategy","openStrategy","variant","VList","name","emits","val","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","preventDefault","location","_createVNode","tag","class","style"],"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 { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/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'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport { focusChild, genericComponent, getPropertyFromItem, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\nimport type { InternalItem, ItemProps } from '@/composables/items'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { PropType } from 'vue'\n\nexport interface InternalListItem<T = any> extends InternalItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction isPrimitive (value: unknown): value is string | number | boolean {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction transformItem (props: ItemProps & { itemType: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\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 & { itemType: string }, 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\nfunction useListItems (props: ItemProps & { itemType: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n\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 itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'v-list')\n\nexport const VList = genericComponent<new <T>(props: {\n items?: T[]\n}) => GenericProps<typeof props, VListChildrenSlots<T>>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (val: unknown[]) => true,\n 'update:opened': (val: unknown[]) => true,\n 'click:open': (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(toRef(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 { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\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 if (!contentRef.value) return\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 focus (location?: 'next' | 'prev' | 'first' | 'last') {\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 },\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 role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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"}
@@ -3,15 +3,6 @@ import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, PropType, JSXCompo
3
3
  // @ts-ignore
4
4
  import * as vue_router from 'vue-router';
5
5
 
6
- type SelectStrategyFn = (data: {
7
- id: unknown;
8
- value: boolean;
9
- selected: Map<unknown, 'on' | 'off' | 'indeterminate'>;
10
- children: Map<unknown, unknown[]>;
11
- parents: Map<unknown, unknown>;
12
- event?: Event;
13
- }) => Map<unknown, 'on' | 'off' | 'indeterminate'>;
14
-
15
6
  type OpenStrategyFn = (data: {
16
7
  id: unknown;
17
8
  value: boolean;
@@ -34,6 +25,15 @@ type OpenStrategy = {
34
25
  select: OpenSelectStrategyFn;
35
26
  };
36
27
 
28
+ type SelectStrategyFn = (data: {
29
+ id: unknown;
30
+ value: boolean;
31
+ selected: Map<unknown, 'on' | 'off' | 'indeterminate'>;
32
+ children: Map<unknown, unknown[]>;
33
+ parents: Map<unknown, unknown>;
34
+ event?: Event;
35
+ }) => Map<unknown, 'on' | 'off' | 'indeterminate'>;
36
+
37
37
  type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn;
38
38
  type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy;
39
39
 
@@ -1,12 +1,12 @@
1
1
  // Utilities
2
- import { computed, inject, provide, ref } from 'vue';
2
+ import { computed, inject, provide, shallowRef } from 'vue';
3
3
 
4
4
  // Types
5
5
 
6
6
  // Depth
7
7
  export const DepthKey = Symbol.for('vuetify:depth');
8
8
  export function useDepth(hasPrepend) {
9
- const parent = inject(DepthKey, ref(-1));
9
+ const parent = inject(DepthKey, shallowRef(-1));
10
10
  const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0));
11
11
  provide(DepthKey, depth);
12
12
  return depth;
@@ -16,11 +16,11 @@ export function useDepth(hasPrepend) {
16
16
  export const ListKey = Symbol.for('vuetify:list');
17
17
  export function createList() {
18
18
  const parent = inject(ListKey, {
19
- hasPrepend: ref(false),
19
+ hasPrepend: shallowRef(false),
20
20
  updateHasPrepend: () => null
21
21
  });
22
22
  const data = {
23
- hasPrepend: ref(false),
23
+ hasPrepend: shallowRef(false),
24
24
  updateHasPrepend: value => {
25
25
  if (value) data.hasPrepend.value = value;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.mjs","names":["computed","inject","provide","ref","DepthKey","Symbol","for","useDepth","hasPrepend","parent","depth","value","ListKey","createList","updateHasPrepend","data","useList"],"sources":["../../../src/components/VList/list.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey<Ref<number>> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref<boolean>) {\n const parent = inject(DepthKey, ref(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref<boolean>\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: ref(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: ref(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,QAAQ,KAAK;;AAEpD;;AAGA;AACA,OAAO,MAAMC,QAAmC,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE9E,OAAO,SAASC,QAAQA,CAAEC,UAAyB,EAAE;EACnD,MAAMC,MAAM,GAAGR,MAAM,CAACG,QAAQ,EAAED,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAExC,MAAMO,KAAK,GAAGV,QAAQ,CAAC,MAAMS,MAAM,CAACE,KAAK,GAAG,CAAC,IAAIH,UAAU,EAAEG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAE5ET,OAAO,CAACE,QAAQ,EAAEM,KAAK,CAAC;EAExB,OAAOA,KAAK;AACd;;AAEA;AACA,OAAO,MAAME,OAGX,GAAGP,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;AAE/B,OAAO,SAASO,UAAUA,CAAA,EAAI;EAC5B,MAAMJ,MAAM,GAAGR,MAAM,CAACW,OAAO,EAAE;IAAEJ,UAAU,EAAEL,GAAG,CAAC,KAAK,CAAC;IAAEW,gBAAgB,EAAEA,CAAA,KAAM;EAAK,CAAC,CAAC;EAExF,MAAMC,IAAI,GAAG;IACXP,UAAU,EAAEL,GAAG,CAAC,KAAK,CAAC;IACtBW,gBAAgB,EAAGH,KAAc,IAAK;MACpC,IAAIA,KAAK,EAAEI,IAAI,CAACP,UAAU,CAACG,KAAK,GAAGA,KAAK;IAC1C;EACF,CAAC;EAEDT,OAAO,CAACU,OAAO,EAAEG,IAAI,CAAC;EAEtB,OAAON,MAAM;AACf;AAEA,OAAO,SAASO,OAAOA,CAAA,EAAI;EACzB,OAAOf,MAAM,CAACW,OAAO,EAAE,IAAI,CAAC;AAC9B"}
1
+ {"version":3,"file":"list.mjs","names":["computed","inject","provide","shallowRef","DepthKey","Symbol","for","useDepth","hasPrepend","parent","depth","value","ListKey","createList","updateHasPrepend","data","useList"],"sources":["../../../src/components/VList/list.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey<Ref<number>> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref<boolean>) {\n const parent = inject(DepthKey, shallowRef(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref<boolean>\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: shallowRef(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,UAAU,QAAQ,KAAK;;AAE3D;;AAGA;AACA,OAAO,MAAMC,QAAmC,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE9E,OAAO,SAASC,QAAQA,CAAEC,UAAyB,EAAE;EACnD,MAAMC,MAAM,GAAGR,MAAM,CAACG,QAAQ,EAAED,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;EAE/C,MAAMO,KAAK,GAAGV,QAAQ,CAAC,MAAMS,MAAM,CAACE,KAAK,GAAG,CAAC,IAAIH,UAAU,EAAEG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAE5ET,OAAO,CAACE,QAAQ,EAAEM,KAAK,CAAC;EAExB,OAAOA,KAAK;AACd;;AAEA;AACA,OAAO,MAAME,OAGX,GAAGP,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;AAE/B,OAAO,SAASO,UAAUA,CAAA,EAAI;EAC5B,MAAMJ,MAAM,GAAGR,MAAM,CAACW,OAAO,EAAE;IAAEJ,UAAU,EAAEL,UAAU,CAAC,KAAK,CAAC;IAAEW,gBAAgB,EAAEA,CAAA,KAAM;EAAK,CAAC,CAAC;EAE/F,MAAMC,IAAI,GAAG;IACXP,UAAU,EAAEL,UAAU,CAAC,KAAK,CAAC;IAC7BW,gBAAgB,EAAGH,KAAc,IAAK;MACpC,IAAIA,KAAK,EAAEI,IAAI,CAACP,UAAU,CAACG,KAAK,GAAGA,KAAK;IAC1C;EACF,CAAC;EAEDT,OAAO,CAACU,OAAO,EAAEG,IAAI,CAAC;EAEtB,OAAON,MAAM;AACf;AAEA,OAAO,SAASO,OAAOA,CAAA,EAAI;EACzB,OAAOf,MAAM,CAACW,OAAO,EAAE,IAAI,CAAC;AAC9B"}
@@ -3,13 +3,13 @@ import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
3
3
  import "./VMenu.css";
4
4
 
5
5
  // Components
6
- import { VDialogTransition } from "../transitions/index.mjs";
7
6
  import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
7
+ import { VDialogTransition } from "../transitions/index.mjs";
8
8
  import { VOverlay } from "../VOverlay/index.mjs"; // Composables
9
9
  import { forwardRefs } from "../../composables/forwardRefs.mjs";
10
10
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
11
11
  import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
12
- import { computed, inject, mergeProps, provide, ref, watch } from 'vue';
12
+ import { computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue';
13
13
  import { genericComponent, getUid, omit, propsFactory, useRender } from "../../util/index.mjs";
14
14
  import { makeVOverlayProps } from "../VOverlay/VOverlay.mjs";
15
15
  import { VMenuSymbol } from "./shared.mjs"; // Types
@@ -47,7 +47,7 @@ export const VMenu = genericComponent()({
47
47
  const id = computed(() => props.id || `v-menu-${uid}`);
48
48
  const overlay = ref();
49
49
  const parent = inject(VMenuSymbol, null);
50
- const openChildren = ref(0);
50
+ const openChildren = shallowRef(0);
51
51
  provide(VMenuSymbol, {
52
52
  register() {
53
53
  ++openChildren.value;
@@ -1 +1 @@
1
- {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","provide","ref","watch","genericComponent","getUid","omit","propsFactory","useRender","makeVOverlayProps","VMenuSymbol","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","val","onClickOutside","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { type Component, computed, inject, mergeProps, provide, ref, watch } from 'vue'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'v-menu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = ref(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root>\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VMenu.mjs","names":["VDefaultsProvider","VDialogTransition","VOverlay","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","provide","ref","shallowRef","watch","genericComponent","getUid","omit","propsFactory","useRender","makeVOverlayProps","VMenuSymbol","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","val","onClickOutside","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { type Component, computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'v-menu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root>\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
@@ -283,7 +283,7 @@ declare const VMenu: {
283
283
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
284
284
  }, {
285
285
  id: vue.ComputedRef<string>;
286
- ΨopenChildren: vue.Ref<number>;
286
+ ΨopenChildren: vue.ShallowRef<number>;
287
287
  } & Omit<Omit<{
288
288
  $: vue.ComponentInternalInstance;
289
289
  $data: {};
@@ -749,7 +749,7 @@ declare const VMenu: {
749
749
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
750
750
  } & vue.ShallowUnwrapRef<{
751
751
  id: vue.ComputedRef<string>;
752
- ΨopenChildren: vue.Ref<number>;
752
+ ΨopenChildren: vue.ShallowRef<number>;
753
753
  } & Omit<Omit<{
754
754
  $: vue.ComponentInternalInstance;
755
755
  $data: {};
@@ -1168,7 +1168,7 @@ declare const VMenu: {
1168
1168
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1169
1169
  }, {
1170
1170
  id: vue.ComputedRef<string>;
1171
- ΨopenChildren: vue.Ref<number>;
1171
+ ΨopenChildren: vue.ShallowRef<number>;
1172
1172
  } & Omit<Omit<{
1173
1173
  $: vue.ComponentInternalInstance;
1174
1174
  $data: {};
@@ -19,7 +19,7 @@ import { useRtl } from "../../composables/index.mjs";
19
19
  import { useSsrBoot } from "../../composables/ssrBoot.mjs";
20
20
  import { useSticky } from "./sticky.mjs";
21
21
  import { useTouch } from "./touch.mjs"; // Utilities
22
- import { computed, nextTick, onBeforeMount, ref, toRef, Transition, watch } from 'vue';
22
+ import { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, Transition, watch } from 'vue';
23
23
  import { genericComponent, propsFactory, toPhysical, useRender } from "../../util/index.mjs"; // Types
24
24
  const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
25
25
  export const makeVNavigationDrawerProps = propsFactory({
@@ -109,7 +109,7 @@ export const VNavigationDrawer = genericComponent()({
109
109
  ssrBootStyles
110
110
  } = useSsrBoot();
111
111
  const rootEl = ref();
112
- const isHovering = ref(false);
112
+ const isHovering = shallowRef(false);
113
113
  const width = computed(() => {
114
114
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
115
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeComponentProps","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","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","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","VNavigationDrawer","name","props","emits","val","setup","_ref","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","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\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 { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string\n}\n\nexport type VNavigationDrawerSlots = {\n default: []\n prepend: []\n append: []\n image: [VNavigationDrawerImageSlot]\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\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 ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'v-navigation-drawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\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, 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 ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\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 props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\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","makeComponentProps","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","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","VNavigationDrawer","name","props","emits","val","setup","_ref","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","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\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, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string\n}\n\nexport type VNavigationDrawerSlots = {\n default: []\n prepend: []\n append: []\n image: [VNavigationDrawerImageSlot]\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\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 ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'v-navigation-drawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\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 = shallowRef(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, 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 ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\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 props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\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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"}
@@ -145,7 +145,7 @@ declare const VNavigationDrawer: {
145
145
  "onUpdate:modelValue"?: ((val: boolean) => any) | undefined;
146
146
  "onUpdate:rail"?: ((val: boolean) => any) | undefined;
147
147
  }, {
148
- isStuck: vue.Ref<boolean | "top" | "bottom">;
148
+ isStuck: vue.ShallowRef<boolean | "top" | "bottom">;
149
149
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
150
150
  'update:modelValue': (val: boolean) => true;
151
151
  'update:rail': (val: boolean) => true;
@@ -239,7 +239,7 @@ declare const VNavigationDrawer: {
239
239
  "onUpdate:modelValue"?: ((val: boolean) => any) | undefined;
240
240
  "onUpdate:rail"?: ((val: boolean) => any) | undefined;
241
241
  } & vue.ShallowUnwrapRef<{
242
- isStuck: vue.Ref<boolean | "top" | "bottom">;
242
+ isStuck: vue.ShallowRef<boolean | "top" | "bottom">;
243
243
  }> & {} & vue.ComponentCustomProperties & {};
244
244
  __isFragment?: undefined;
245
245
  __isTeleport?: undefined;
@@ -294,7 +294,7 @@ declare const VNavigationDrawer: {
294
294
  "onUpdate:modelValue"?: ((val: boolean) => any) | undefined;
295
295
  "onUpdate:rail"?: ((val: boolean) => any) | undefined;
296
296
  }, {
297
- isStuck: vue.Ref<boolean | "top" | "bottom">;
297
+ isStuck: vue.ShallowRef<boolean | "top" | "bottom">;
298
298
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
299
299
  'update:modelValue': (val: boolean) => true;
300
300
  'update:rail': (val: boolean) => true;
@@ -1,13 +1,14 @@
1
- import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';
2
- import { convertToUnit } from "../../util/index.mjs";
1
+ // Utilities
2
+ import { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';
3
+ import { convertToUnit } from "../../util/index.mjs"; // Types
3
4
  export function useSticky(_ref) {
4
5
  let {
5
6
  rootEl,
6
7
  isSticky,
7
8
  layoutItemStyles
8
9
  } = _ref;
9
- const isStuck = ref(false);
10
- const stuckPosition = ref(0);
10
+ const isStuck = shallowRef(false);
11
+ const stuckPosition = shallowRef(0);
11
12
  const stickyStyles = computed(() => {
12
13
  const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
13
14
  return [isSticky.value ? {
@@ -1 +1 @@
1
- {"version":3,"file":"sticky.mjs","names":["computed","onBeforeUnmount","onMounted","ref","watch","convertToUnit","useSticky","_ref","rootEl","isSticky","layoutItemStyles","isStuck","stuckPosition","stickyStyles","side","value","top","bottom","height","undefined","val","window","addEventListener","onScroll","passive","removeEventListener","immediate","document","lastScrollTop","direction","scrollY","rect","getBoundingClientRect","layoutTop","parseFloat","Math","max","innerHeight","bodyScroll","getComputedStyle","getPropertyValue"],"sources":["../../../src/components/VNavigationDrawer/sticky.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue'\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\ninterface StickyProps {\n rootEl: Ref<HTMLElement | undefined>\n isSticky: Ref<boolean>\n layoutItemStyles: Ref<CSSProperties>\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = ref<boolean | 'top' | 'bottom'>(false)\n const stuckPosition = ref(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value!).getPropertyValue('--v-body-scroll-y')) || 0\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop\n isStuck.value = 'top'\n }\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sticky.mjs","names":["computed","onBeforeUnmount","onMounted","shallowRef","watch","convertToUnit","useSticky","_ref","rootEl","isSticky","layoutItemStyles","isStuck","stuckPosition","stickyStyles","side","value","top","bottom","height","undefined","val","window","addEventListener","onScroll","passive","removeEventListener","immediate","document","lastScrollTop","direction","scrollY","rect","getBoundingClientRect","layoutTop","parseFloat","Math","max","innerHeight","bodyScroll","getComputedStyle","getPropertyValue"],"sources":["../../../src/components/VNavigationDrawer/sticky.ts"],"sourcesContent":["// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ninterface StickyProps {\n rootEl: Ref<HTMLElement | undefined>\n isSticky: Ref<boolean>\n layoutItemStyles: Ref<CSSProperties>\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = shallowRef<boolean | 'top' | 'bottom'>(false)\n const stuckPosition = shallowRef(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value!).getPropertyValue('--v-body-scroll-y')) || 0\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop\n isStuck.value = 'top'\n }\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACpEC,aAAa,gCAEtB;AASA,OAAO,SAASC,SAASA,CAAAC,IAAA,EAAuD;EAAA,IAArD;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAA8B,CAAC,GAAAH,IAAA;EAC5E,MAAMI,OAAO,GAAGR,UAAU,CAA6B,KAAK,CAAC;EAC7D,MAAMS,aAAa,GAAGT,UAAU,CAAC,CAAC,CAAC;EAEnC,MAAMU,YAAY,GAAGb,QAAQ,CAAC,MAAM;IAClC,MAAMc,IAAI,GAAG,OAAOH,OAAO,CAACI,KAAK,KAAK,SAAS,GAAG,KAAK,GAAGJ,OAAO,CAACI,KAAK;IACvE,OAAO,CACLN,QAAQ,CAACM,KAAK,GAAG;MAAEC,GAAG,EAAE,MAAM;MAAEC,MAAM,EAAE,MAAM;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGA,SAAS,EAC/ER,OAAO,CAACI,KAAK,GACT;MAAE,CAACD,IAAI,GAAGT,aAAa,CAACO,aAAa,CAACG,KAAK;IAAE,CAAC,GAC9C;MAAEC,GAAG,EAAEN,gBAAgB,CAACK,KAAK,CAACC;IAAI,CAAC,CACxC;EACH,CAAC,CAAC;EAEFd,SAAS,CAAC,MAAM;IACdE,KAAK,CAACK,QAAQ,EAAEW,GAAG,IAAI;MACrB,IAAIA,GAAG,EAAE;QACPC,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC;MAChE,CAAC,MAAM;QACLH,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;MAChD;IACF,CAAC,EAAE;MAAEG,SAAS,EAAE;IAAK,CAAC,CAAC;EACzB,CAAC,CAAC;EAEFzB,eAAe,CAAC,MAAM;IACpB0B,QAAQ,CAACF,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;EAClD,CAAC,CAAC;EAEF,IAAIK,aAAa,GAAG,CAAC;EACrB,SAASL,QAAQA,CAAA,EAAI;IACnB,MAAMM,SAAS,GAAGD,aAAa,GAAGP,MAAM,CAACS,OAAO,GAAG,IAAI,GAAG,MAAM;IAChE,MAAMC,IAAI,GAAGvB,MAAM,CAACO,KAAK,CAAEiB,qBAAqB,EAAE;IAClD,MAAMC,SAAS,GAAGC,UAAU,CAACxB,gBAAgB,CAACK,KAAK,CAACC,GAAG,IAAI,CAAC,CAAC;IAC7D,MAAMA,GAAG,GAAGK,MAAM,CAACS,OAAO,GAAGK,IAAI,CAACC,GAAG,CAAC,CAAC,EAAExB,aAAa,CAACG,KAAK,GAAGkB,SAAS,CAAC;IACzE,MAAMhB,MAAM,GACVc,IAAI,CAACb,MAAM,GACXiB,IAAI,CAACC,GAAG,CAACxB,aAAa,CAACG,KAAK,EAAEkB,SAAS,CAAC,GACxCZ,MAAM,CAACS,OAAO,GACdT,MAAM,CAACgB,WAAW;IACpB,MAAMC,UAAU,GAAGJ,UAAU,CAACK,gBAAgB,CAAC/B,MAAM,CAACO,KAAK,CAAE,CAACyB,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC;IAEzG,IAAIT,IAAI,CAACb,MAAM,GAAGG,MAAM,CAACgB,WAAW,GAAGJ,SAAS,EAAE;MAChDtB,OAAO,CAACI,KAAK,GAAG,KAAK;MACrBH,aAAa,CAACG,KAAK,GAAGkB,SAAS;IACjC,CAAC,MAAM,IACJJ,SAAS,KAAK,IAAI,IAAIlB,OAAO,CAACI,KAAK,KAAK,QAAQ,IAChDc,SAAS,KAAK,MAAM,IAAIlB,OAAO,CAACI,KAAK,KAAK,KAAM,EACjD;MACAH,aAAa,CAACG,KAAK,GAAGM,MAAM,CAACS,OAAO,GAAGC,IAAI,CAACf,GAAG,GAAGsB,UAAU;MAC5D3B,OAAO,CAACI,KAAK,GAAG,IAAI;IACtB,CAAC,MAAM,IAAIc,SAAS,KAAK,MAAM,IAAIZ,MAAM,IAAI,CAAC,EAAE;MAC9CL,aAAa,CAACG,KAAK,GAAG,CAAC;MACvBJ,OAAO,CAACI,KAAK,GAAG,QAAQ;IAC1B,CAAC,MAAM,IAAIc,SAAS,KAAK,IAAI,IAAIb,GAAG,IAAI,CAAC,EAAE;MACzC,IAAI,CAACsB,UAAU,EAAE;QACf1B,aAAa,CAACG,KAAK,GAAGgB,IAAI,CAACf,GAAG,GAAGA,GAAG;QACpCL,OAAO,CAACI,KAAK,GAAG,KAAK;MACvB,CAAC,MAAM,IAAIJ,OAAO,CAACI,KAAK,KAAK,KAAK,EAAE;QAClCH,aAAa,CAACG,KAAK,GAAG,CAACC,GAAG,GAAGsB,UAAU,GAAGL,SAAS;QACnDtB,OAAO,CAACI,KAAK,GAAG,KAAK;MACvB;IACF;IAEAa,aAAa,GAAGP,MAAM,CAACS,OAAO;EAChC;EAEA,OAAO;IAAEnB,OAAO;IAAEE;EAAa,CAAC;AAClC"}
@@ -1,6 +1,6 @@
1
1
  // Composables
2
2
  import { useVelocity } from "../../composables/touch.mjs"; // Utilities
3
- import { computed, onBeforeUnmount, onMounted, ref } from 'vue';
3
+ import { computed, onBeforeUnmount, onMounted, shallowRef } from 'vue';
4
4
 
5
5
  // Types
6
6
 
@@ -35,9 +35,9 @@ export function useTouch(_ref) {
35
35
  getVelocity
36
36
  } = useVelocity();
37
37
  let maybeDragging = false;
38
- const isDragging = ref(false);
39
- const dragProgress = ref(0);
40
- const offset = ref(0);
38
+ const isDragging = shallowRef(false);
39
+ const dragProgress = shallowRef(0);
40
+ const offset = shallowRef(0);
41
41
  let start;
42
42
  function getOffset(pos, active) {
43
43
  return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
@@ -1 +1 @@
1
- {"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","ref","useTouch","_ref","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","includes","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","arguments","length","undefined","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","top","bottom","dragStyles","transform","transition","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","shallowRef","useTouch","_ref","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","includes","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","arguments","length","undefined","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","top","bottom","dragStyles","transform","transition","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = shallowRef(false)\n const dragProgress = shallowRef(0)\n const offset = shallowRef(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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"}
@@ -100,7 +100,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
100
100
  Object.assign(contentStyles.value, {
101
101
  position: 'fixed',
102
102
  top: 0,
103
- left: 0
103
+ [data.isRtl.value ? 'right' : 'left']: 0
104
104
  });
105
105
  }
106
106
  const {