@vuetify/nightly 3.0.0-beta.10 → 3.0.0-beta.13

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 (224) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/json/attributes.json +37 -29
  3. package/dist/json/importMap.json +46 -46
  4. package/dist/json/tags.json +10 -8
  5. package/dist/json/web-types.json +101 -87
  6. package/dist/vuetify.css +545 -441
  7. package/dist/vuetify.d.ts +12095 -10059
  8. package/dist/vuetify.esm.js +401 -266
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +371 -236
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +496 -490
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/blueprints/index.d.ts +171 -0
  16. package/lib/blueprints/md1.d.ts +167 -0
  17. package/lib/blueprints/md2.d.ts +167 -0
  18. package/lib/blueprints/md3.d.ts +167 -0
  19. package/lib/components/VAlert/index.d.ts +185 -0
  20. package/lib/components/VApp/index.d.ts +83 -0
  21. package/lib/components/VAppBar/VAppBar.css +3 -0
  22. package/lib/components/VAppBar/VAppBar.sass +3 -0
  23. package/lib/components/VAppBar/index.d.ts +156 -0
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.ts +1569 -0
  27. package/lib/components/VAvatar/VAvatar.css +44 -2
  28. package/lib/components/VAvatar/VAvatar.mjs +16 -12
  29. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  30. package/lib/components/VAvatar/VAvatar.sass +5 -1
  31. package/lib/components/VAvatar/_variables.scss +9 -4
  32. package/lib/components/VAvatar/index.d.ts +80 -0
  33. package/lib/components/VBadge/index.d.ts +123 -0
  34. package/lib/components/VBanner/index.d.ts +122 -0
  35. package/lib/components/VBottomNavigation/index.d.ts +143 -0
  36. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
  37. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  38. package/lib/components/VBreadcrumbs/index.d.ts +301 -0
  39. package/lib/components/VBtn/VBtn.css +8 -3
  40. package/lib/components/VBtn/VBtn.mjs +16 -6
  41. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  42. package/lib/components/VBtn/index.d.ts +210 -0
  43. package/lib/components/VBtnGroup/index.d.ts +65 -0
  44. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
  45. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  46. package/lib/components/VBtnToggle/index.d.ts +175 -0
  47. package/lib/components/VCard/VCard.css +8 -3
  48. package/lib/components/VCard/index.d.ts +230 -0
  49. package/lib/components/VCarousel/VCarousel.mjs +3 -3
  50. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  51. package/lib/components/VCarousel/index.d.ts +80 -0
  52. package/lib/components/VCheckbox/index.d.ts +291 -0
  53. package/lib/components/VChip/index.d.ts +195 -0
  54. package/lib/components/VChipGroup/index.d.ts +89 -0
  55. package/lib/components/VCode/index.d.ts +19 -0
  56. package/lib/components/VColorPicker/index.d.ts +116 -0
  57. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  58. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  59. package/lib/components/VCombobox/index.d.ts +1590 -0
  60. package/lib/components/VCounter/index.d.ts +223 -0
  61. package/lib/components/VDefaultsProvider/index.d.ts +26 -0
  62. package/lib/components/VDialog/VDialog.css +2 -0
  63. package/lib/components/VDialog/VDialog.mjs +17 -12
  64. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  65. package/lib/components/VDialog/VDialog.sass +2 -0
  66. package/lib/components/VDialog/index.d.ts +859 -0
  67. package/lib/components/VDivider/index.d.ts +22 -0
  68. package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -3
  69. package/lib/components/VExpansionPanel/index.d.ts +206 -0
  70. package/lib/components/VField/VField.css +27 -24
  71. package/lib/components/VField/VField.mjs +1 -1
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/VField.sass +23 -21
  74. package/lib/components/VField/index.d.ts +332 -0
  75. package/lib/components/VFileInput/VFileInput.mjs +3 -3
  76. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  77. package/lib/components/VFileInput/index.d.ts +236 -0
  78. package/lib/components/VFooter/VFooter.css +7 -0
  79. package/lib/components/VFooter/VFooter.sass +1 -1
  80. package/lib/components/VFooter/_variables.scss +11 -0
  81. package/lib/components/VFooter/index.d.ts +76 -0
  82. package/lib/components/VForm/index.d.ts +72 -0
  83. package/lib/components/VGrid/index.d.ts +154 -0
  84. package/lib/components/VHover/index.d.ts +30 -0
  85. package/lib/components/VIcon/index.d.ts +124 -0
  86. package/lib/components/VImg/VImg.mjs +29 -27
  87. package/lib/components/VImg/VImg.mjs.map +1 -1
  88. package/lib/components/VImg/index.d.ts +89 -0
  89. package/lib/components/VInput/VInput.mjs +4 -4
  90. package/lib/components/VInput/VInput.mjs.map +1 -1
  91. package/lib/components/VInput/index.d.ts +325 -0
  92. package/lib/components/VItemGroup/index.d.ts +210 -0
  93. package/lib/components/VKbd/index.d.ts +19 -0
  94. package/lib/components/VLabel/VLabel.css +4 -1
  95. package/lib/components/VLabel/VLabel.mjs +4 -1
  96. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  97. package/lib/components/VLabel/VLabel.sass +3 -1
  98. package/lib/components/VLabel/index.d.ts +16 -0
  99. package/lib/components/VLayout/index.d.ts +75 -0
  100. package/lib/components/VLazy/index.d.ts +85 -0
  101. package/lib/components/VList/VListItem.css +8 -3
  102. package/lib/components/VList/VListItem.mjs +4 -4
  103. package/lib/components/VList/VListItem.mjs.map +1 -1
  104. package/lib/components/VList/index.d.ts +1250 -0
  105. package/lib/components/VLocaleProvider/index.d.ts +23 -0
  106. package/lib/components/VMain/index.d.ts +26 -0
  107. package/lib/components/VMenu/VMenu.mjs +16 -3
  108. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  109. package/lib/components/VMenu/index.d.ts +817 -0
  110. package/lib/components/VMessages/index.d.ts +234 -0
  111. package/lib/components/VNavigationDrawer/index.d.ts +148 -0
  112. package/lib/components/VNoSsr/index.d.ts +7 -0
  113. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  114. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  115. package/lib/components/VOverlay/index.d.ts +579 -0
  116. package/lib/components/VOverlay/useActivator.mjs +27 -1
  117. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  118. package/lib/components/VPagination/VPagination.mjs +6 -3
  119. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  120. package/lib/components/VPagination/index.d.ts +247 -0
  121. package/lib/components/VParallax/VParallax.mjs +24 -10
  122. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  123. package/lib/components/VParallax/index.d.ts +18 -0
  124. package/lib/components/VProgressCircular/index.d.ts +68 -0
  125. package/lib/components/VProgressLinear/index.d.ts +101 -0
  126. package/lib/components/VRadio/index.d.ts +103 -0
  127. package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
  128. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
  129. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  130. package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
  131. package/lib/components/VRadioGroup/_variables.scss +0 -1
  132. package/lib/components/VRadioGroup/index.d.ts +186 -0
  133. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -2
  134. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  135. package/lib/components/VRangeSlider/index.d.ts +242 -0
  136. package/lib/components/VRating/index.d.ts +356 -0
  137. package/lib/components/VResponsive/index.d.ts +23 -0
  138. package/lib/components/VSelect/VSelect.mjs +1 -1
  139. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  140. package/lib/components/VSelect/index.d.ts +1521 -0
  141. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  142. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  143. package/lib/components/VSelectionControl/index.d.ts +275 -0
  144. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
  145. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -1
  146. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  147. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +5 -0
  148. package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
  149. package/lib/components/VSheet/index.d.ts +68 -0
  150. package/lib/components/VSlideGroup/index.d.ts +151 -0
  151. package/lib/components/VSlider/VSlider.css +7 -2
  152. package/lib/components/VSlider/VSlider.mjs +14 -4
  153. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  154. package/lib/components/VSlider/VSlider.sass +6 -2
  155. package/lib/components/VSlider/VSliderTrack.css +20 -20
  156. package/lib/components/VSlider/VSliderTrack.mjs +7 -3
  157. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  158. package/lib/components/VSlider/VSliderTrack.sass +14 -14
  159. package/lib/components/VSlider/_variables.scss +2 -2
  160. package/lib/components/VSlider/index.d.ts +239 -0
  161. package/lib/components/VSlider/slider.mjs +2 -2
  162. package/lib/components/VSlider/slider.mjs.map +1 -1
  163. package/lib/components/VSnackbar/VSnackbar.mjs +3 -2
  164. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  165. package/lib/components/VSnackbar/index.d.ts +892 -0
  166. package/lib/components/VSwitch/index.d.ts +175 -0
  167. package/lib/components/VSystemBar/index.d.ts +61 -0
  168. package/lib/components/VTable/index.d.ts +39 -0
  169. package/lib/components/VTabs/VTab.mjs +1 -0
  170. package/lib/components/VTabs/VTab.mjs.map +1 -1
  171. package/lib/components/VTabs/index.d.ts +178 -0
  172. package/lib/components/VTextField/VTextField.css +2 -3
  173. package/lib/components/VTextField/VTextField.sass +2 -4
  174. package/lib/components/VTextField/index.d.ts +582 -0
  175. package/lib/components/VTextarea/VTextarea.css +5 -3
  176. package/lib/components/VTextarea/VTextarea.mjs +2 -1
  177. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  178. package/lib/components/VTextarea/VTextarea.sass +5 -4
  179. package/lib/components/VTextarea/index.d.ts +218 -0
  180. package/lib/components/VThemeProvider/index.d.ts +24 -0
  181. package/lib/components/VTimeline/VTimeline.css +21 -6
  182. package/lib/components/VTimeline/VTimeline.mjs +6 -1
  183. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  184. package/lib/components/VTimeline/VTimeline.sass +16 -2
  185. package/lib/components/VTimeline/_variables.scss +4 -3
  186. package/lib/components/VTimeline/index.d.ts +154 -0
  187. package/lib/components/VToolbar/VToolbar.css +0 -1
  188. package/lib/components/VToolbar/VToolbar.sass +0 -1
  189. package/lib/components/VToolbar/index.d.ts +414 -0
  190. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  191. package/lib/components/VTooltip/index.d.ts +799 -0
  192. package/lib/components/VValidation/index.d.ts +61 -0
  193. package/lib/components/VWindow/index.d.ts +428 -0
  194. package/lib/components/index.d.ts +12037 -10009
  195. package/lib/components/transitions/index.d.ts +454 -0
  196. package/lib/composables/display.mjs +3 -3
  197. package/lib/composables/display.mjs.map +1 -1
  198. package/lib/composables/items.mjs.map +1 -1
  199. package/lib/composables/locale.mjs +10 -3
  200. package/lib/composables/locale.mjs.map +1 -1
  201. package/lib/composables/proxiedModel.mjs +28 -10
  202. package/lib/composables/proxiedModel.mjs.map +1 -1
  203. package/lib/composables/router.mjs +10 -2
  204. package/lib/composables/router.mjs.map +1 -1
  205. package/lib/composables/selectLink.mjs +4 -4
  206. package/lib/composables/selectLink.mjs.map +1 -1
  207. package/lib/composables/theme.mjs +37 -33
  208. package/lib/composables/theme.mjs.map +1 -1
  209. package/lib/composables/validation.mjs +1 -1
  210. package/lib/composables/validation.mjs.map +1 -1
  211. package/lib/entry-bundler.mjs +1 -1
  212. package/lib/framework.mjs +46 -51
  213. package/lib/framework.mjs.map +1 -1
  214. package/lib/index.d.ts +31 -22
  215. package/lib/locale/adapters/vue-i18n.d.ts +35 -0
  216. package/lib/locale/adapters/vue-intl.d.ts +42 -0
  217. package/lib/styles/main.css +73 -73
  218. package/lib/styles/settings/_colors.scss +84 -84
  219. package/lib/styles/tools/_states.sass +8 -3
  220. package/lib/util/getCurrentInstance.mjs +2 -3
  221. package/lib/util/getCurrentInstance.mjs.map +1 -1
  222. package/lib/util/helpers.mjs +6 -11
  223. package/lib/util/helpers.mjs.map +1 -1
  224. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useActivator.mjs","names":["makeDelayProps","useDelay","VMenuSymbol","getCurrentInstance","IN_BROWSER","isComponentInstance","propsFactory","SUPPORTS_FOCUS_VISIBLE","computed","effectScope","inject","nextTick","onScopeDispose","ref","watch","watchEffect","makeActivatorProps","activator","String","Object","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","isActive","isTop","activatorEl","isHovered","isFocused","value","runOpenDelay","runCloseDelay","availableEvents","click","e","stopPropagation","currentTarget","target","mouseenter","mouseleave","focus","matches","blur","activatorEvents","events","contentEvents","menu","closeParents","val","activatorRef","$el","vm","scope","run","_useActivator","stop","flush","immediate","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","el","_props","entries","forEach","name","cb","addEventListener","keys","k","removeAttribute","setAttribute","removeEventListener","selector","proxy","parentNode","hasAttribute","document","querySelector","nodeType","Node","ELEMENT_NODE"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n})\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useActivator.mjs","names":["makeDelayProps","useDelay","VMenuSymbol","getCurrentInstance","IN_BROWSER","isComponentInstance","propsFactory","SUPPORTS_FOCUS_VISIBLE","computed","effectScope","inject","nextTick","onScopeDispose","ref","watch","watchEffect","makeActivatorProps","activator","String","Object","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","isActive","isTop","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","availableEvents","click","e","stopPropagation","currentTarget","target","mouseenter","mouseleave","focus","matches","blur","activatorEvents","events","contentEvents","menu","closeParents","scrimEvents","val","activatorRef","$el","vm","scope","run","_useActivator","stop","flush","immediate","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","el","_props","entries","forEach","name","cb","addEventListener","keys","k","removeAttribute","setAttribute","removeEventListener","selector","proxy","parentNode","hasAttribute","document","querySelector","nodeType","Node","ELEMENT_NODE"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n})\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n if (props.openOnHover) {\n events.mouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n"],"mappings":"AAAA;SACSA,c,EAAgBC,Q;SAChBC,W,+BAET;;SACSC,kB,EAAoBC,U,EAAYC,mB,EAAqBC,Y,EAAcC,sB;AAC5E,SACEC,QADF,EAEEC,WAFF,EAGEC,MAHF,EAIEC,QAJF,EAKEC,cALF,EAMEC,GANF,EAOEC,KAPF,EAQEC,WARF,QASO,KATP,C,CAWA;;AAqBA,OAAO,MAAMC,kBAAkB,GAAGV,YAAY,CAAC;EAC7CW,SAAS,EAAE,CAACC,MAAD,EAASC,MAAT,CADkC;EAE7CC,cAAc,EAAE;IACdC,IAAI,EAAEF,MADQ;IAEdG,OAAO,EAAE,OAAO,EAAP;EAFK,CAF6B;EAO7CC,WAAW,EAAE;IACXF,IAAI,EAAEG,OADK;IAEXF,OAAO,EAAEG;EAFE,CAPgC;EAW7CC,WAAW,EAAEF,OAXgC;EAY7CG,WAAW,EAAE;IACXN,IAAI,EAAEG,OADK;IAEXF,OAAO,EAAEG;EAFE,CAZgC;EAiB7CG,mBAAmB,EAAEJ,OAjBwB;EAmB7C,GAAGxB,cAAc;AAnB4B,CAAD,CAAvC;AAsBP,OAAO,SAAS6B,YAAT,CACLC,KADK,QAGL;EAAA,IADA;IAAEC,QAAF;IAAYC;EAAZ,CACA;EACA,MAAMC,WAAW,GAAGpB,GAAG,EAAvB;EAEA,IAAIqB,SAAS,GAAG,KAAhB;EACA,IAAIC,SAAS,GAAG,KAAhB;EACA,IAAIC,UAAU,GAAG,IAAjB;EAEA,MAAMT,WAAW,GAAGnB,QAAQ,CAAC,MAAMsB,KAAK,CAACH,WAAN,IAAsBG,KAAK,CAACH,WAAN,IAAqB,IAArB,IAA6BG,KAAK,CAACJ,WAAhE,CAA5B;EACA,MAAMH,WAAW,GAAGf,QAAQ,CAAC,MAAMsB,KAAK,CAACP,WAAN,IAAsBO,KAAK,CAACP,WAAN,IAAqB,IAArB,IAA6B,CAACO,KAAK,CAACJ,WAApC,IAAmD,CAACC,WAAW,CAACU,KAA7F,CAA5B;EAEA,MAAM;IAAEC,YAAF;IAAgBC;EAAhB,IAAkCtC,QAAQ,CAAC6B,KAAD,EAAQO,KAAK,IAAI;IAC/D,IACEA,KAAK,MACFP,KAAK,CAACJ,WAAN,IAAqBQ,SAAtB,IACCP,WAAW,CAACU,KAAZ,IAAqBF,SAFnB,CAAL,IAGK,EAAEL,KAAK,CAACJ,WAAN,IAAqBK,QAAQ,CAACM,KAA9B,IAAuC,CAACL,KAAK,CAACK,KAAhD,CAJP,EAKE;MACA,IAAIN,QAAQ,CAACM,KAAT,KAAmBA,KAAvB,EAA8B;QAC5BD,UAAU,GAAG,IAAb;MACD;;MACDL,QAAQ,CAACM,KAAT,GAAiBA,KAAjB;IACD;EACF,CAZ+C,CAAhD;EAcA,MAAMG,eAAe,GAAG;IACtBC,KAAK,EAAGC,CAAD,IAAmB;MACxBA,CAAC,CAACC,eAAF;MACAV,WAAW,CAACI,KAAZ,GAAqBK,CAAC,CAACE,aAAF,IAAmBF,CAAC,CAACG,MAA1C;MACAd,QAAQ,CAACM,KAAT,GAAiB,CAACN,QAAQ,CAACM,KAA3B;IACD,CALqB;IAMtBS,UAAU,EAAGJ,CAAD,IAAmB;MAC7BR,SAAS,GAAG,IAAZ;MACAD,WAAW,CAACI,KAAZ,GAAqBK,CAAC,CAACE,aAAF,IAAmBF,CAAC,CAACG,MAA1C;MACAP,YAAY;IACb,CAVqB;IAWtBS,UAAU,EAAGL,CAAD,IAAmB;MAC7BR,SAAS,GAAG,KAAZ;MACAK,aAAa;IACd,CAdqB;IAetBS,KAAK,EAAGN,CAAD,IAAmB;MACxB,IACEnC,sBAAsB,IACtB,CAAEmC,CAAC,CAACG,MAAH,CAA0BI,OAA1B,CAAkC,gBAAlC,CAFH,EAGE;MAEFd,SAAS,GAAG,IAAZ;MACAO,CAAC,CAACC,eAAF;MACAV,WAAW,CAACI,KAAZ,GAAqBK,CAAC,CAACE,aAAF,IAAmBF,CAAC,CAACG,MAA1C;MAEAP,YAAY;IACb,CA1BqB;IA2BtBY,IAAI,EAAGR,CAAD,IAAmB;MACvBP,SAAS,GAAG,KAAZ;MACAO,CAAC,CAACC,eAAF;MAEAJ,aAAa;IACd;EAhCqB,CAAxB;EAmCA,MAAMY,eAAe,GAAG3C,QAAQ,CAAC,MAAM;IACrC,MAAM4C,MAAuC,GAAG,EAAhD;;IAEA,IAAI7B,WAAW,CAACc,KAAhB,EAAuB;MACrBe,MAAM,CAACX,KAAP,GAAeD,eAAe,CAACC,KAA/B;IACD;;IACD,IAAIX,KAAK,CAACJ,WAAV,EAAuB;MACrB0B,MAAM,CAACN,UAAP,GAAoBN,eAAe,CAACM,UAApC;MACAM,MAAM,CAACL,UAAP,GAAoBP,eAAe,CAACO,UAApC;IACD;;IACD,IAAIpB,WAAW,CAACU,KAAhB,EAAuB;MACrBe,MAAM,CAACJ,KAAP,GAAeR,eAAe,CAACQ,KAA/B;MACAI,MAAM,CAACF,IAAP,GAAcV,eAAe,CAACU,IAA9B;IACD;;IAED,OAAOE,MAAP;EACD,CAhB+B,CAAhC;EAkBA,MAAMC,aAAa,GAAG7C,QAAQ,CAAC,MAAM;IACnC,MAAM4C,MAAuC,GAAG,EAAhD;;IAEA,IAAItB,KAAK,CAACJ,WAAV,EAAuB;MACrB0B,MAAM,CAACN,UAAP,GAAoB,MAAM;QACxBZ,SAAS,GAAG,IAAZ;QACAI,YAAY;MACb,CAHD;;MAIAc,MAAM,CAACL,UAAP,GAAoB,MAAM;QACxBb,SAAS,GAAG,KAAZ;QACAK,aAAa;MACd,CAHD;IAID;;IAED,IAAIT,KAAK,CAACF,mBAAV,EAA+B;MAC7B,MAAM0B,IAAI,GAAG5C,MAAM,CAACR,WAAD,EAAc,IAAd,CAAnB;;MACAkD,MAAM,CAACX,KAAP,GAAe,MAAM;QACnBV,QAAQ,CAACM,KAAT,GAAiB,KAAjB;QACAiB,IAAI,QAAJ,YAAAA,IAAI,CAAEC,YAAN;MACD,CAHD;IAID;;IAED,OAAOH,MAAP;EACD,CAvB6B,CAA9B;EAyBA,MAAMI,WAAW,GAAGhD,QAAQ,CAAC,MAAM;IACjC,MAAM4C,MAAuC,GAAG,EAAhD;;IACA,IAAItB,KAAK,CAACJ,WAAV,EAAuB;MACrB0B,MAAM,CAACN,UAAP,GAAoB,MAAM;QACxB,IAAIV,UAAJ,EAAgB;UACdF,SAAS,GAAG,IAAZ;UACAE,UAAU,GAAG,KAAb;UACAE,YAAY;QACb;MACF,CAND;;MAOAc,MAAM,CAACL,UAAP,GAAoB,MAAM;QACxBb,SAAS,GAAG,KAAZ;QACAK,aAAa;MACd,CAHD;IAID;;IAED,OAAOa,MAAP;EACD,CAjB2B,CAA5B;EAmBAtC,KAAK,CAACkB,KAAD,EAAQyB,GAAG,IAAI;IAClB,IAAIA,GAAG,KACJ3B,KAAK,CAACJ,WAAN,IAAqB,CAACQ,SAAtB,KAAoC,CAACP,WAAW,CAACU,KAAb,IAAsB,CAACF,SAA3D,CAAD,IACCR,WAAW,CAACU,KAAZ,IAAqB,CAACF,SAAtB,KAAoC,CAACL,KAAK,CAACJ,WAAP,IAAsB,CAACQ,SAA3D,CAFI,CAAP,EAGG;MACDH,QAAQ,CAACM,KAAT,GAAiB,KAAjB;IACD;EACF,CAPI,CAAL;EASA,MAAMqB,YAAY,GAAG7C,GAAG,EAAxB;EACAE,WAAW,CAAC,MAAM;IAChB,IAAI,CAAC2C,YAAY,CAACrB,KAAlB,EAAyB;IAEzB1B,QAAQ,CAAC,MAAM;MACb,MAAMM,SAAS,GAAGyC,YAAY,CAACrB,KAA/B;MACAJ,WAAW,CAACI,KAAZ,GAAoBhC,mBAAmB,CAACY,SAAD,CAAnB,GAAiCA,SAAS,CAAC0C,GAA3C,GAAiD1C,SAArE;IACD,CAHO,CAAR;EAID,CAPU,CAAX;EASA,MAAM2C,EAAE,GAAGzD,kBAAkB,CAAC,cAAD,CAA7B;EACA,IAAI0D,KAAJ;EACA/C,KAAK,CAAC,MAAM,CAAC,CAACgB,KAAK,CAACb,SAAf,EAA0BwC,GAAG,IAAI;IACpC,IAAIA,GAAG,IAAIrD,UAAX,EAAuB;MACrByD,KAAK,GAAGpD,WAAW,EAAnB;MACAoD,KAAK,CAACC,GAAN,CAAU,MAAM;QACdC,aAAa,CAACjC,KAAD,EAAQ8B,EAAR,EAAY;UAAE3B,WAAF;UAAekB;QAAf,CAAZ,CAAb;MACD,CAFD;IAGD,CALD,MAKO,IAAIU,KAAJ,EAAW;MAChBA,KAAK,CAACG,IAAN;IACD;EACF,CATI,EASF;IAAEC,KAAK,EAAE,MAAT;IAAiBC,SAAS,EAAE;EAA5B,CATE,CAAL;EAWA,OAAO;IAAEjC,WAAF;IAAeyB,YAAf;IAA6BP,eAA7B;IAA8CE,aAA9C;IAA6DG;EAA7D,CAAP;AACD;;AAED,SAASO,aAAT,CACEjC,KADF,EAEE8B,EAFF,SAIE;EAAA,IADA;IAAE3B,WAAF;IAAekB;EAAf,CACA;EACArC,KAAK,CAAC,MAAMgB,KAAK,CAACb,SAAb,EAAwB,CAACwC,GAAD,EAAMU,MAAN,KAAiB;IAC5C,IAAIA,MAAM,IAAIV,GAAG,KAAKU,MAAtB,EAA8B;MAC5B,MAAMlD,SAAS,GAAGmD,YAAY,CAACD,MAAD,CAA9B;MACAlD,SAAS,IAAIoD,oBAAoB,CAACpD,SAAD,CAAjC;IACD;;IACD,IAAIwC,GAAJ,EAAS;MACP9C,QAAQ,CAAC,MAAM2D,kBAAkB,EAAzB,CAAR;IACD;EACF,CARI,EAQF;IAAEJ,SAAS,EAAE;EAAb,CARE,CAAL;EAUApD,KAAK,CAAC,MAAMgB,KAAK,CAACV,cAAb,EAA6B,MAAM;IACtCkD,kBAAkB;EACnB,CAFI,CAAL;EAIA1D,cAAc,CAAC,MAAM;IACnByD,oBAAoB;EACrB,CAFa,CAAd;;EAIA,SAASC,kBAAT,GAAiF;IAAA,IAApDC,EAAoD,uEAA/CH,YAAY,EAAmC;;IAAA,IAA/BI,MAA+B,uEAAtB1C,KAAK,CAACV,cAAgB;;IAC/E,IAAI,CAACmD,EAAL,EAAS;IAETpD,MAAM,CAACsD,OAAP,CAAetB,eAAe,CAACd,KAA/B,EAAsCqC,OAAtC,CAA8C,SAAgB;MAAA,IAAf,CAACC,IAAD,EAAOC,EAAP,CAAe;MAC5DL,EAAE,CAACM,gBAAH,CAAoBF,IAApB,EAA0BC,EAA1B;IACD,CAFD;IAIAzD,MAAM,CAAC2D,IAAP,CAAYN,MAAZ,EAAoBE,OAApB,CAA4BK,CAAC,IAAI;MAC/B,IAAIP,MAAM,CAACO,CAAD,CAAN,IAAa,IAAjB,EAAuB;QACrBR,EAAE,CAACS,eAAH,CAAmBD,CAAnB;MACD,CAFD,MAEO;QACLR,EAAE,CAACU,YAAH,CAAgBF,CAAhB,EAAmBP,MAAM,CAACO,CAAD,CAAzB;MACD;IACF,CAND;EAOD;;EAED,SAASV,oBAAT,GAAmF;IAAA,IAApDE,EAAoD,uEAA/CH,YAAY,EAAmC;;IAAA,IAA/BI,MAA+B,uEAAtB1C,KAAK,CAACV,cAAgB;;IACjF,IAAI,CAACmD,EAAL,EAAS;IAETpD,MAAM,CAACsD,OAAP,CAAetB,eAAe,CAACd,KAA/B,EAAsCqC,OAAtC,CAA8C,SAAgB;MAAA,IAAf,CAACC,IAAD,EAAOC,EAAP,CAAe;MAC5DL,EAAE,CAACW,mBAAH,CAAuBP,IAAvB,EAA6BC,EAA7B;IACD,CAFD;IAIAzD,MAAM,CAAC2D,IAAP,CAAYN,MAAZ,EAAoBE,OAApB,CAA4BK,CAAC,IAAI;MAC/BR,EAAE,CAACS,eAAH,CAAmBD,CAAnB;IACD,CAFD;EAGD;;EAED,SAASX,YAAT,GAA4E;IAAA;;IAAA,IAArDe,QAAqD,uEAA1CrD,KAAK,CAACb,SAAoC;IAC1E,IAAIA,SAAJ;;IACA,IAAIkE,QAAJ,EAAc;MACZ,IAAIA,QAAQ,KAAK,QAAjB,EAA2B;QAAA;;QACzB,IAAIZ,EAAE,GAAGX,EAAH,iCAAGA,EAAE,CAAEwB,KAAP,sCAAG,UAAWzB,GAAd,qBAAG,cAAgB0B,UAAzB;;QACA,OAAOd,EAAE,CAACe,YAAH,CAAgB,mBAAhB,CAAP,EAA6C;UAC3Cf,EAAE,GAAGA,EAAE,CAACc,UAAR;QACD;;QACDpE,SAAS,GAAGsD,EAAZ;MACD,CAND,MAMO,IAAI,OAAOY,QAAP,KAAoB,QAAxB,EAAkC;QACvC;QACAlE,SAAS,GAAGsE,QAAQ,CAACC,aAAT,CAAuBL,QAAvB,CAAZ;MACD,CAHM,MAGA,IAAI,SAASA,QAAb,EAAuB;QAC5B;QACAlE,SAAS,GAAGkE,QAAQ,CAACxB,GAArB;MACD,CAHM,MAGA;QACL;QACA1C,SAAS,GAAGkE,QAAZ;MACD;IACF,CAnByE,CAqB1E;;;IACAlD,WAAW,CAACI,KAAZ,GAAoB,eAAApB,SAAS,SAAT,uBAAWwE,QAAX,MAAwBC,IAAI,CAACC,YAA7B,GAA4C1E,SAA5C,GAAwD,IAA5E;IAEA,OAAOgB,WAAW,CAACI,KAAnB;EACD;AACF"}
@@ -143,9 +143,10 @@ export const VPagination = defineComponent({
143
143
  const firstItem = target.querySelector('.v-pagination__list > *');
144
144
  if (!firstItem) return;
145
145
  const totalWidth = contentRect.width;
146
- const itemWidth = firstItem.getBoundingClientRect().width + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
146
+ const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
147
147
  const minButtons = props.showFirstLastPage ? 5 : 3;
148
- maxButtons.value = Math.max(0, Math.floor((totalWidth - itemWidth * minButtons) / itemWidth));
148
+ maxButtons.value = Math.max(0, Math.floor( // Round to two decimal places to avoid floating point errors
149
+ +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
149
150
  });
150
151
  const length = computed(() => parseInt(props.length, 10));
151
152
  const start = computed(() => parseInt(props.start, 10));
@@ -205,6 +206,7 @@ export const VPagination = defineComponent({
205
206
  if (typeof item === 'string') {
206
207
  return {
207
208
  isActive: false,
209
+ key: `ellipsis-${index}`,
208
210
  page: item,
209
211
  props: {
210
212
  ref,
@@ -217,6 +219,7 @@ export const VPagination = defineComponent({
217
219
  const isActive = item === page.value;
218
220
  return {
219
221
  isActive,
222
+ key: item,
220
223
  page: n(item),
221
224
  props: {
222
225
  ref,
@@ -309,7 +312,7 @@ export const VPagination = defineComponent({
309
312
  }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({
310
313
  "_as": "VPaginationBtn"
311
314
  }, controls.value.prev), null)]), items.value.map((item, index) => _createVNode("li", {
312
- "key": item.page,
315
+ "key": item.key,
313
316
  "class": ['v-pagination__item', {
314
317
  'v-pagination__item--is-active': item.isActive
315
318
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useProxiedModel","useRefs","useResizeObserver","useRtl","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","parseFloat","getComputedStyle","marginRight","minButtons","Math","max","floor","parseInt","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.getBoundingClientRect().width +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n const minButtons = props.showFirstLastPage ? 5 : 3\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - itemWidth * minButtons) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.page }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useProxiedModel","useRefs","useResizeObserver","useRtl","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","minButtons","Math","max","floor","toFixed","parseInt","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","items","map","item","index","isActive","key","icon","elevation","rounded","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n const minButtons = props.showFirstLastPage ? 5 : 3\n\n maxButtons.value = Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.key }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ import * as vue from 'vue';
2
+ import { JSXComponent, PropType } from 'vue';
3
+
4
+ declare type IconValue = string | JSXComponent;
5
+ declare const IconValue: PropType<IconValue>;
6
+
7
+ declare const VPagination: vue.DefineComponent<{
8
+ color: StringConstructor;
9
+ variant: Omit<{
10
+ type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
11
+ default: string;
12
+ validator: (v: any) => boolean;
13
+ }, "type" | "default"> & {
14
+ type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
15
+ default: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
16
+ };
17
+ theme: StringConstructor;
18
+ tag: Omit<{
19
+ type: StringConstructor;
20
+ default: string;
21
+ }, "type" | "default"> & {
22
+ type: vue.PropType<string>;
23
+ default: string;
24
+ };
25
+ size: {
26
+ type: (StringConstructor | NumberConstructor)[];
27
+ default: string;
28
+ };
29
+ rounded: {
30
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
31
+ default: undefined;
32
+ };
33
+ elevation: {
34
+ type: (StringConstructor | NumberConstructor)[];
35
+ validator(v: any): boolean;
36
+ };
37
+ density: {
38
+ type: vue.PropType<"default" | "compact" | "comfortable" | null>;
39
+ default: string;
40
+ validator: (v: any) => boolean;
41
+ };
42
+ border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
43
+ activeColor: StringConstructor;
44
+ start: {
45
+ type: (StringConstructor | NumberConstructor)[];
46
+ default: number;
47
+ };
48
+ modelValue: {
49
+ type: NumberConstructor;
50
+ default: (props: any) => any;
51
+ };
52
+ disabled: BooleanConstructor;
53
+ length: {
54
+ type: (StringConstructor | NumberConstructor)[];
55
+ default: number;
56
+ validator: (val: number) => boolean;
57
+ };
58
+ totalVisible: (StringConstructor | NumberConstructor)[];
59
+ firstIcon: {
60
+ type: vue.PropType<IconValue>;
61
+ default: string;
62
+ };
63
+ prevIcon: {
64
+ type: vue.PropType<IconValue>;
65
+ default: string;
66
+ };
67
+ nextIcon: {
68
+ type: vue.PropType<IconValue>;
69
+ default: string;
70
+ };
71
+ lastIcon: {
72
+ type: vue.PropType<IconValue>;
73
+ default: string;
74
+ };
75
+ ariaLabel: {
76
+ type: StringConstructor;
77
+ default: string;
78
+ };
79
+ pageAriaLabel: {
80
+ type: StringConstructor;
81
+ default: string;
82
+ };
83
+ currentPageAriaLabel: {
84
+ type: StringConstructor;
85
+ default: string;
86
+ };
87
+ firstAriaLabel: {
88
+ type: StringConstructor;
89
+ default: string;
90
+ };
91
+ previousAriaLabel: {
92
+ type: StringConstructor;
93
+ default: string;
94
+ };
95
+ nextAriaLabel: {
96
+ type: StringConstructor;
97
+ default: string;
98
+ };
99
+ lastAriaLabel: {
100
+ type: StringConstructor;
101
+ default: string;
102
+ };
103
+ ellipsis: {
104
+ type: StringConstructor;
105
+ default: string;
106
+ };
107
+ showFirstLastPage: BooleanConstructor;
108
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
109
+ 'update:modelValue': (value: number) => true;
110
+ first: (value: number) => true;
111
+ prev: (value: number) => true;
112
+ next: (value: number) => true;
113
+ last: (value: number) => true;
114
+ }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
115
+ color: StringConstructor;
116
+ variant: Omit<{
117
+ type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
118
+ default: string;
119
+ validator: (v: any) => boolean;
120
+ }, "type" | "default"> & {
121
+ type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
122
+ default: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
123
+ };
124
+ theme: StringConstructor;
125
+ tag: Omit<{
126
+ type: StringConstructor;
127
+ default: string;
128
+ }, "type" | "default"> & {
129
+ type: vue.PropType<string>;
130
+ default: string;
131
+ };
132
+ size: {
133
+ type: (StringConstructor | NumberConstructor)[];
134
+ default: string;
135
+ };
136
+ rounded: {
137
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
138
+ default: undefined;
139
+ };
140
+ elevation: {
141
+ type: (StringConstructor | NumberConstructor)[];
142
+ validator(v: any): boolean;
143
+ };
144
+ density: {
145
+ type: vue.PropType<"default" | "compact" | "comfortable" | null>;
146
+ default: string;
147
+ validator: (v: any) => boolean;
148
+ };
149
+ border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
150
+ activeColor: StringConstructor;
151
+ start: {
152
+ type: (StringConstructor | NumberConstructor)[];
153
+ default: number;
154
+ };
155
+ modelValue: {
156
+ type: NumberConstructor;
157
+ default: (props: any) => any;
158
+ };
159
+ disabled: BooleanConstructor;
160
+ length: {
161
+ type: (StringConstructor | NumberConstructor)[];
162
+ default: number;
163
+ validator: (val: number) => boolean;
164
+ };
165
+ totalVisible: (StringConstructor | NumberConstructor)[];
166
+ firstIcon: {
167
+ type: vue.PropType<IconValue>;
168
+ default: string;
169
+ };
170
+ prevIcon: {
171
+ type: vue.PropType<IconValue>;
172
+ default: string;
173
+ };
174
+ nextIcon: {
175
+ type: vue.PropType<IconValue>;
176
+ default: string;
177
+ };
178
+ lastIcon: {
179
+ type: vue.PropType<IconValue>;
180
+ default: string;
181
+ };
182
+ ariaLabel: {
183
+ type: StringConstructor;
184
+ default: string;
185
+ };
186
+ pageAriaLabel: {
187
+ type: StringConstructor;
188
+ default: string;
189
+ };
190
+ currentPageAriaLabel: {
191
+ type: StringConstructor;
192
+ default: string;
193
+ };
194
+ firstAriaLabel: {
195
+ type: StringConstructor;
196
+ default: string;
197
+ };
198
+ previousAriaLabel: {
199
+ type: StringConstructor;
200
+ default: string;
201
+ };
202
+ nextAriaLabel: {
203
+ type: StringConstructor;
204
+ default: string;
205
+ };
206
+ lastAriaLabel: {
207
+ type: StringConstructor;
208
+ default: string;
209
+ };
210
+ ellipsis: {
211
+ type: StringConstructor;
212
+ default: string;
213
+ };
214
+ showFirstLastPage: BooleanConstructor;
215
+ }>> & {
216
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
217
+ onNext?: ((value: number) => any) | undefined;
218
+ onPrev?: ((value: number) => any) | undefined;
219
+ onFirst?: ((value: number) => any) | undefined;
220
+ onLast?: ((value: number) => any) | undefined;
221
+ }, {
222
+ length: string | number;
223
+ start: string | number;
224
+ ariaLabel: string;
225
+ disabled: boolean;
226
+ size: string | number;
227
+ tag: string;
228
+ ellipsis: string;
229
+ rounded: string | number | boolean;
230
+ density: "default" | "compact" | "comfortable" | null;
231
+ variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
232
+ modelValue: number;
233
+ nextIcon: IconValue;
234
+ prevIcon: IconValue;
235
+ firstIcon: IconValue;
236
+ lastIcon: IconValue;
237
+ pageAriaLabel: string;
238
+ currentPageAriaLabel: string;
239
+ firstAriaLabel: string;
240
+ previousAriaLabel: string;
241
+ nextAriaLabel: string;
242
+ lastAriaLabel: string;
243
+ showFirstLastPage: boolean;
244
+ }>;
245
+ declare type VPagination = InstanceType<typeof VPagination>;
246
+
247
+ export { VPagination };
@@ -6,8 +6,10 @@ import { VImg } from "../VImg/index.mjs"; // Composables
6
6
 
7
7
  import { useIntersectionObserver } from "../../composables/intersectionObserver.mjs"; // Utilities
8
8
 
9
- import { defineComponent, getScrollParent, useRender } from "../../util/index.mjs";
10
- import { onBeforeUnmount, ref, watch, watchEffect } from 'vue';
9
+ import { clamp, defineComponent, getScrollParent, useRender } from "../../util/index.mjs";
10
+ import { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';
11
+ import { useResizeObserver } from "../../composables/resizeObserver.mjs";
12
+ import { useDisplay } from "../../composables/index.mjs";
11
13
 
12
14
  function floor(val) {
13
15
  return Math.floor(Math.abs(val)) * Math.sign(val);
@@ -18,7 +20,7 @@ export const VParallax = defineComponent({
18
20
  props: {
19
21
  scale: {
20
22
  type: [Number, String],
21
- default: 1.3
23
+ default: 0.5
22
24
  }
23
25
  },
24
26
 
@@ -30,11 +32,18 @@ export const VParallax = defineComponent({
30
32
  intersectionRef,
31
33
  isIntersecting
32
34
  } = useIntersectionObserver();
35
+ const {
36
+ resizeRef,
37
+ contentRect
38
+ } = useResizeObserver();
39
+ const {
40
+ height: displayHeight
41
+ } = useDisplay();
33
42
  const root = ref();
34
43
  watchEffect(() => {
35
44
  var _root$value;
36
45
 
37
- intersectionRef.value = (_root$value = root.value) == null ? void 0 : _root$value.$el;
46
+ intersectionRef.value = resizeRef.value = (_root$value = root.value) == null ? void 0 : _root$value.$el;
38
47
  });
39
48
  let scrollParent;
40
49
  watch(isIntersecting, val => {
@@ -54,6 +63,10 @@ export const VParallax = defineComponent({
54
63
 
55
64
  (_scrollParent = scrollParent) == null ? void 0 : _scrollParent.removeEventListener('scroll', onScroll);
56
65
  });
66
+ watch(displayHeight, onScroll);
67
+ const scale = computed(() => {
68
+ return 1 - clamp(+props.scale);
69
+ });
57
70
  let frame = -1;
58
71
 
59
72
  function onScroll() {
@@ -64,13 +77,14 @@ export const VParallax = defineComponent({
64
77
 
65
78
  const el = ((_root$value2 = root.value) == null ? void 0 : _root$value2.$el).querySelector('.v-img__img');
66
79
  if (!el) return;
67
- const rect = intersectionRef.value.getBoundingClientRect();
68
- const scrollHeight = scrollParent.clientHeight ?? window.innerHeight;
80
+ const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight;
69
81
  const scrollPos = scrollParent.scrollTop ?? window.scrollY;
70
- const top = rect.top + scrollPos;
71
- const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight);
72
- const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5));
73
- el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`);
82
+ const top = intersectionRef.value.offsetTop;
83
+ const height = contentRect.value.height;
84
+ const center = top + (height - scrollHeight) / 2;
85
+ const translate = floor((scrollPos - center) * scale.value);
86
+ const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height);
87
+ el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`);
74
88
  });
75
89
  }
76
90
 
@@ -1 +1 @@
1
- {"version":3,"file":"VParallax.mjs","names":["VImg","useIntersectionObserver","defineComponent","getScrollParent","useRender","onBeforeUnmount","ref","watch","watchEffect","floor","val","Math","abs","sign","VParallax","name","props","scale","type","Number","String","default","setup","slots","intersectionRef","isIntersecting","root","value","$el","scrollParent","document","scrollingElement","addEventListener","onScroll","passive","removeEventListener","frame","cancelAnimationFrame","requestAnimationFrame","el","querySelector","rect","getBoundingClientRect","scrollHeight","clientHeight","window","innerHeight","scrollPos","scrollTop","scrollY","top","progress","height","translate","style","setProperty"],"sources":["../../../src/components/VParallax/VParallax.tsx"],"sourcesContent":["// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\n\n// Utilities\nimport { defineComponent, getScrollParent, useRender } from '@/util'\nimport { onBeforeUnmount, ref, watch, watchEffect } from 'vue'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = defineComponent({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 1.3,\n },\n },\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = root.value?.$el\n })\n\n let scrollParent: Element\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document as any : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const rect = intersectionRef.value!.getBoundingClientRect()\n const scrollHeight = scrollParent.clientHeight ?? window.innerHeight\n const scrollPos = scrollParent.scrollTop ?? window.scrollY\n const top = rect.top + scrollPos\n const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight)\n const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5))\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n ]}\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VParallax.mjs","names":["VImg","useIntersectionObserver","clamp","defineComponent","getScrollParent","useRender","computed","onBeforeUnmount","ref","watch","watchEffect","useResizeObserver","useDisplay","floor","val","Math","abs","sign","VParallax","name","props","scale","type","Number","String","default","setup","slots","intersectionRef","isIntersecting","resizeRef","contentRect","height","displayHeight","root","value","$el","scrollParent","document","scrollingElement","addEventListener","onScroll","passive","removeEventListener","frame","cancelAnimationFrame","requestAnimationFrame","el","querySelector","scrollHeight","clientHeight","documentElement","scrollPos","scrollTop","window","scrollY","top","offsetTop","center","translate","sizeScale","max","style","setProperty"],"sources":["../../../src/components/VParallax/VParallax.tsx"],"sourcesContent":["// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\n\n// Utilities\nimport { clamp, defineComponent, getScrollParent, useRender } from '@/util'\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useDisplay } from '@/composables'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = defineComponent({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 0.5,\n },\n },\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n const { height: displayHeight } = useDisplay()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el\n })\n\n let scrollParent: Element\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document as any : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n watch(displayHeight, onScroll)\n\n const scale = computed(() => {\n return 1 - clamp(+props.scale)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight\n const scrollPos = scrollParent.scrollTop ?? window.scrollY\n const top = intersectionRef.value!.offsetTop\n const height = contentRect.value!.height\n\n const center = top + (height - scrollHeight) / 2\n const translate = floor((scrollPos - center) * scale.value)\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height)\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n ]}\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import * as vue from 'vue';
2
+
3
+ declare const VParallax: vue.DefineComponent<{
4
+ scale: {
5
+ type: (StringConstructor | NumberConstructor)[];
6
+ default: number;
7
+ };
8
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
9
+ scale: {
10
+ type: (StringConstructor | NumberConstructor)[];
11
+ default: number;
12
+ };
13
+ }>>, {
14
+ scale: string | number;
15
+ }>;
16
+ declare type VParallax = InstanceType<typeof VParallax>;
17
+
18
+ export { VParallax };