@vuetify/nightly 3.9.2-master.2025-07-22 → 3.9.2-master.2025-07-24

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 (237) hide show
  1. package/CHANGELOG.md +32 -3
  2. package/dist/_component-variables-labs.sass +2 -1
  3. package/dist/json/attributes.json +3014 -2750
  4. package/dist/json/importMap-labs.json +34 -22
  5. package/dist/json/importMap.json +168 -168
  6. package/dist/json/tags.json +81 -0
  7. package/dist/json/web-types.json +6647 -5536
  8. package/dist/vuetify-labs.cjs +765 -23
  9. package/dist/vuetify-labs.css +4300 -3958
  10. package/dist/vuetify-labs.d.ts +6519 -844
  11. package/dist/vuetify-labs.esm.js +766 -24
  12. package/dist/vuetify-labs.esm.js.map +1 -1
  13. package/dist/vuetify-labs.js +765 -23
  14. package/dist/vuetify-labs.min.css +2 -2
  15. package/dist/vuetify.cjs +50 -16
  16. package/dist/vuetify.cjs.map +1 -1
  17. package/dist/vuetify.css +5769 -5762
  18. package/dist/vuetify.d.ts +96 -82
  19. package/dist/vuetify.esm.js +50 -16
  20. package/dist/vuetify.esm.js.map +1 -1
  21. package/dist/vuetify.js +50 -16
  22. package/dist/vuetify.js.map +1 -1
  23. package/dist/vuetify.min.css +2 -2
  24. package/dist/vuetify.min.js +276 -274
  25. package/dist/vuetify.min.js.map +1 -1
  26. package/lib/components/VBottomSheet/VBottomSheet.d.ts +6 -6
  27. package/lib/components/VCarousel/VCarousel.d.ts +7 -13
  28. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  29. package/lib/components/VColorPicker/VColorPicker.css +1 -0
  30. package/lib/components/VColorPicker/VColorPicker.sass +1 -0
  31. package/lib/components/VDataTable/VDataTableHeaders.js +0 -1
  32. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  33. package/lib/components/VDialog/VDialog.d.ts +6 -6
  34. package/lib/components/VFileInput/VFileInput.css +3 -0
  35. package/lib/components/VFileInput/VFileInput.sass +3 -0
  36. package/lib/components/VOverlay/VOverlay.js +1 -0
  37. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  38. package/lib/components/VOverlay/scrollStrategies.d.ts +1 -0
  39. package/lib/components/VOverlay/scrollStrategies.js +6 -4
  40. package/lib/components/VOverlay/scrollStrategies.js.map +1 -1
  41. package/lib/components/VProgressLinear/VProgressLinear.css +4 -1
  42. package/lib/components/VProgressLinear/VProgressLinear.js +2 -1
  43. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  44. package/lib/components/VProgressLinear/VProgressLinear.sass +5 -2
  45. package/lib/components/VRangeSlider/VRangeSlider.d.ts +13 -0
  46. package/lib/components/VSlider/VSlider.d.ts +13 -0
  47. package/lib/components/VSlider/VSlider.js +3 -1
  48. package/lib/components/VSlider/VSlider.js.map +1 -1
  49. package/lib/components/VSlider/VSliderThumb.d.ts +13 -0
  50. package/lib/components/VSlider/VSliderThumb.js +2 -0
  51. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  52. package/lib/components/VSlider/slider.d.ts +6 -0
  53. package/lib/components/VSlider/slider.js +2 -0
  54. package/lib/components/VSlider/slider.js.map +1 -1
  55. package/lib/components/VTextField/VTextField.js +2 -2
  56. package/lib/components/VTextField/VTextField.js.map +1 -1
  57. package/lib/components/VTreeview/VTreeview.d.ts +7 -7
  58. package/lib/components/VTreeview/VTreeview.js +0 -1
  59. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  60. package/lib/components/VTreeview/VTreeviewChildren.d.ts +13 -0
  61. package/lib/components/VTreeview/VTreeviewChildren.js +2 -1
  62. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  63. package/lib/components/index.js +1 -1
  64. package/lib/components/index.js.map +1 -1
  65. package/lib/composables/date/adapters/vuetify.js +8 -2
  66. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  67. package/lib/entry-bundler.js +1 -1
  68. package/lib/framework.d.ts +59 -55
  69. package/lib/framework.js +1 -1
  70. package/lib/iconsets/fa.js +9 -1
  71. package/lib/iconsets/fa.js.map +1 -1
  72. package/lib/iconsets/fa4.js +9 -1
  73. package/lib/iconsets/fa4.js.map +1 -1
  74. package/lib/iconsets/md.js +9 -1
  75. package/lib/iconsets/md.js.map +1 -1
  76. package/lib/iconsets/mdi-svg.js +9 -1
  77. package/lib/iconsets/mdi-svg.js.map +1 -1
  78. package/lib/iconsets/mdi.js +9 -1
  79. package/lib/iconsets/mdi.js.map +1 -1
  80. package/lib/labs/VFileUpload/VFileUploadItem.js +1 -1
  81. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  82. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +1 -0
  83. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +1 -0
  84. package/lib/labs/VVideo/VVideo.css +319 -0
  85. package/lib/labs/VVideo/VVideo.d.ts +6932 -0
  86. package/lib/labs/VVideo/VVideo.js +424 -0
  87. package/lib/labs/VVideo/VVideo.js.map +1 -0
  88. package/lib/labs/VVideo/VVideo.sass +301 -0
  89. package/lib/labs/VVideo/VVideoControls.d.ts +3524 -0
  90. package/lib/labs/VVideo/VVideoControls.js +232 -0
  91. package/lib/labs/VVideo/VVideoControls.js.map +1 -0
  92. package/lib/labs/VVideo/VVideoVolume.d.ts +3088 -0
  93. package/lib/labs/VVideo/VVideoVolume.js +90 -0
  94. package/lib/labs/VVideo/VVideoVolume.js.map +1 -0
  95. package/lib/labs/VVideo/_variables.scss +58 -0
  96. package/lib/labs/VVideo/index.d.ts +3 -0
  97. package/lib/labs/VVideo/index.js +4 -0
  98. package/lib/labs/VVideo/index.js.map +1 -0
  99. package/lib/labs/components.d.ts +1 -0
  100. package/lib/labs/components.js +1 -0
  101. package/lib/labs/components.js.map +1 -1
  102. package/lib/locale/af.d.ts +11 -0
  103. package/lib/locale/af.js +11 -0
  104. package/lib/locale/af.js.map +1 -1
  105. package/lib/locale/ar.d.ts +11 -0
  106. package/lib/locale/ar.js +11 -0
  107. package/lib/locale/ar.js.map +1 -1
  108. package/lib/locale/az.d.ts +11 -0
  109. package/lib/locale/az.js +11 -0
  110. package/lib/locale/az.js.map +1 -1
  111. package/lib/locale/bg.d.ts +11 -0
  112. package/lib/locale/bg.js +11 -0
  113. package/lib/locale/bg.js.map +1 -1
  114. package/lib/locale/ca.d.ts +11 -0
  115. package/lib/locale/ca.js +11 -0
  116. package/lib/locale/ca.js.map +1 -1
  117. package/lib/locale/ckb.d.ts +11 -0
  118. package/lib/locale/ckb.js +11 -0
  119. package/lib/locale/ckb.js.map +1 -1
  120. package/lib/locale/cs.d.ts +11 -0
  121. package/lib/locale/cs.js +11 -0
  122. package/lib/locale/cs.js.map +1 -1
  123. package/lib/locale/da.d.ts +11 -0
  124. package/lib/locale/da.js +11 -0
  125. package/lib/locale/da.js.map +1 -1
  126. package/lib/locale/de.d.ts +11 -0
  127. package/lib/locale/de.js +11 -0
  128. package/lib/locale/de.js.map +1 -1
  129. package/lib/locale/el.d.ts +11 -0
  130. package/lib/locale/el.js +11 -0
  131. package/lib/locale/el.js.map +1 -1
  132. package/lib/locale/en.d.ts +11 -0
  133. package/lib/locale/en.js +11 -0
  134. package/lib/locale/en.js.map +1 -1
  135. package/lib/locale/es.d.ts +11 -0
  136. package/lib/locale/es.js +11 -0
  137. package/lib/locale/es.js.map +1 -1
  138. package/lib/locale/et.d.ts +11 -0
  139. package/lib/locale/et.js +11 -0
  140. package/lib/locale/et.js.map +1 -1
  141. package/lib/locale/fa.d.ts +11 -0
  142. package/lib/locale/fa.js +11 -0
  143. package/lib/locale/fa.js.map +1 -1
  144. package/lib/locale/fi.d.ts +11 -0
  145. package/lib/locale/fi.js +11 -0
  146. package/lib/locale/fi.js.map +1 -1
  147. package/lib/locale/fr.d.ts +11 -0
  148. package/lib/locale/fr.js +11 -0
  149. package/lib/locale/fr.js.map +1 -1
  150. package/lib/locale/he.d.ts +11 -0
  151. package/lib/locale/he.js +11 -0
  152. package/lib/locale/he.js.map +1 -1
  153. package/lib/locale/hr.d.ts +11 -0
  154. package/lib/locale/hr.js +11 -0
  155. package/lib/locale/hr.js.map +1 -1
  156. package/lib/locale/hu.d.ts +11 -0
  157. package/lib/locale/hu.js +11 -0
  158. package/lib/locale/hu.js.map +1 -1
  159. package/lib/locale/id.d.ts +11 -0
  160. package/lib/locale/id.js +11 -0
  161. package/lib/locale/id.js.map +1 -1
  162. package/lib/locale/it.d.ts +11 -0
  163. package/lib/locale/it.js +11 -0
  164. package/lib/locale/it.js.map +1 -1
  165. package/lib/locale/ja.d.ts +11 -0
  166. package/lib/locale/ja.js +11 -0
  167. package/lib/locale/ja.js.map +1 -1
  168. package/lib/locale/km.d.ts +11 -0
  169. package/lib/locale/km.js +11 -0
  170. package/lib/locale/km.js.map +1 -1
  171. package/lib/locale/ko.d.ts +11 -0
  172. package/lib/locale/ko.js +11 -0
  173. package/lib/locale/ko.js.map +1 -1
  174. package/lib/locale/lt.d.ts +11 -0
  175. package/lib/locale/lt.js +11 -0
  176. package/lib/locale/lt.js.map +1 -1
  177. package/lib/locale/lv.d.ts +11 -0
  178. package/lib/locale/lv.js +11 -0
  179. package/lib/locale/lv.js.map +1 -1
  180. package/lib/locale/nl.d.ts +11 -0
  181. package/lib/locale/nl.js +11 -0
  182. package/lib/locale/nl.js.map +1 -1
  183. package/lib/locale/no.d.ts +11 -0
  184. package/lib/locale/no.js +11 -0
  185. package/lib/locale/no.js.map +1 -1
  186. package/lib/locale/pl.d.ts +11 -0
  187. package/lib/locale/pl.js +11 -0
  188. package/lib/locale/pl.js.map +1 -1
  189. package/lib/locale/pt.d.ts +11 -0
  190. package/lib/locale/pt.js +11 -0
  191. package/lib/locale/pt.js.map +1 -1
  192. package/lib/locale/ro.d.ts +11 -0
  193. package/lib/locale/ro.js +11 -0
  194. package/lib/locale/ro.js.map +1 -1
  195. package/lib/locale/ru.d.ts +11 -0
  196. package/lib/locale/ru.js +11 -0
  197. package/lib/locale/ru.js.map +1 -1
  198. package/lib/locale/sk.d.ts +11 -0
  199. package/lib/locale/sk.js +11 -0
  200. package/lib/locale/sk.js.map +1 -1
  201. package/lib/locale/sl.d.ts +11 -0
  202. package/lib/locale/sl.js +11 -0
  203. package/lib/locale/sl.js.map +1 -1
  204. package/lib/locale/sr-Cyrl.d.ts +11 -0
  205. package/lib/locale/sr-Cyrl.js +11 -0
  206. package/lib/locale/sr-Cyrl.js.map +1 -1
  207. package/lib/locale/sr-Latn.d.ts +11 -0
  208. package/lib/locale/sr-Latn.js +11 -0
  209. package/lib/locale/sr-Latn.js.map +1 -1
  210. package/lib/locale/sv.d.ts +11 -0
  211. package/lib/locale/sv.js +11 -0
  212. package/lib/locale/sv.js.map +1 -1
  213. package/lib/locale/th.d.ts +11 -0
  214. package/lib/locale/th.js +11 -0
  215. package/lib/locale/th.js.map +1 -1
  216. package/lib/locale/tr.d.ts +11 -0
  217. package/lib/locale/tr.js +11 -0
  218. package/lib/locale/tr.js.map +1 -1
  219. package/lib/locale/uk.d.ts +11 -0
  220. package/lib/locale/uk.js +11 -0
  221. package/lib/locale/uk.js.map +1 -1
  222. package/lib/locale/vi.d.ts +11 -0
  223. package/lib/locale/vi.js +11 -0
  224. package/lib/locale/vi.js.map +1 -1
  225. package/lib/locale/zh-Hans.d.ts +11 -0
  226. package/lib/locale/zh-Hans.js +11 -0
  227. package/lib/locale/zh-Hans.js.map +1 -1
  228. package/lib/locale/zh-Hant.d.ts +11 -0
  229. package/lib/locale/zh-Hant.js +11 -0
  230. package/lib/locale/zh-Hant.js.map +1 -1
  231. package/lib/util/index.d.ts +1 -0
  232. package/lib/util/index.js +1 -0
  233. package/lib/util/index.js.map +1 -1
  234. package/lib/util/timeUtils.d.ts +1 -0
  235. package/lib/util/timeUtils.js +4 -0
  236. package/lib/util/timeUtils.js.map +1 -0
  237. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","isInteger","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n min,\n max,\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (max.value - min.value) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {\n value = value - (steps % 1) * _step\n } else {\n value = value + (direction * _step * multipliers.value[multiplier])\n }\n } else if (e.key === home) {\n value = min.value\n } else if (e.key === end) {\n value = max.value\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ min.value }\n aria-valuemax={ max.value }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n textColorClasses.value,\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","noKeyboard","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","isInteger","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n noKeyboard: Boolean,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n min,\n max,\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (props.noKeyboard) return\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (max.value - min.value) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {\n value = value - (steps % 1) * _step\n } else {\n value = value + (direction * _step * multipliers.value[multiplier])\n }\n } else if (e.key === home) {\n value = min.value\n } else if (e.key === end) {\n value = max.value\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ min.value }\n aria-valuemax={ max.value }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n textColorClasses.value,\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,7 @@ type SliderProvide = {
15
15
  min: Ref<number>;
16
16
  max: Ref<number>;
17
17
  mousePressed: Ref<boolean>;
18
+ noKeyboard: Ref<boolean>;
18
19
  numTicks: Ref<number>;
19
20
  onSliderMousedown: (e: MouseEvent) => void;
20
21
  onSliderTouchstart: (e: TouchEvent) => void;
@@ -66,6 +67,7 @@ export declare const makeSliderProps: <Defaults extends {
66
67
  trackSize?: unknown;
67
68
  direction?: unknown;
68
69
  reverse?: unknown;
70
+ noKeyboard?: unknown;
69
71
  } = {}>(defaults?: Defaults | undefined) => {
70
72
  ripple: unknown extends Defaults["ripple"] ? {
71
73
  type: BooleanConstructor;
@@ -255,6 +257,10 @@ export declare const makeSliderProps: <Defaults extends {
255
257
  type: PropType<unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]>;
256
258
  default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"];
257
259
  };
260
+ noKeyboard: unknown extends Defaults["noKeyboard"] ? BooleanConstructor : {
261
+ type: PropType<unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"]>;
262
+ default: unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"];
263
+ };
258
264
  };
259
265
  type SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>;
260
266
  type SliderData = {
@@ -72,6 +72,7 @@ export const makeSliderProps = propsFactory({
72
72
  validator: v => ['vertical', 'horizontal'].includes(v)
73
73
  },
74
74
  reverse: Boolean,
75
+ noKeyboard: Boolean,
75
76
  ...makeRoundedProps(),
76
77
  ...makeElevationProps({
77
78
  elevation: 2
@@ -275,6 +276,7 @@ export const useSlider = _ref => {
275
276
  min,
276
277
  max,
277
278
  mousePressed,
279
+ noKeyboard: toRef(() => props.noKeyboard),
278
280
  numTicks,
279
281
  onSliderMousedown,
280
282
  onSliderTouchstart,
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n let newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n if (clamped > newValue && newValue + step.value > max.value) {\n newValue = max.value\n }\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","noKeyboard","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n noKeyboard: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n noKeyboard: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n let newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n if (clamped > newValue && newValue + step.value > max.value) {\n newValue = max.value\n }\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n noKeyboard: toRef(() => props.noKeyboard),\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ export const VTextField = genericComponent()({
77
77
  if (!isFocused.value) focus();
78
78
  nextTick(() => {
79
79
  if (inputRef.value !== document.activeElement) {
80
- nextTick(() => inputRef.value?.focus());
80
+ inputRef.value?.focus();
81
81
  }
82
82
  });
83
83
  }
@@ -180,7 +180,7 @@ export const VTextField = genericComponent()({
180
180
  "placeholder": props.placeholder,
181
181
  "size": 1,
182
182
  "type": props.type,
183
- "onFocus": onFocus,
183
+ "onFocus": focus,
184
184
  "onBlur": blur
185
185
  }, slotProps, inputAttrs), null), [[vIntersect, {
186
186
  handler: onIntersect
@@ -1 +1 @@
1
- {"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","isActive","active","onFocus","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_createElementVNode","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n nextTick(() => inputRef.value?.focus())\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role={ props.role }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","isActive","active","onFocus","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_createElementVNode","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role={ props.role }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ focus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
@@ -55,6 +55,7 @@ export declare const makeVTreeviewProps: <Defaults extends {
55
55
  falseIcon?: unknown;
56
56
  trueIcon?: unknown;
57
57
  indeterminateIcon?: unknown;
58
+ fluid?: unknown;
58
59
  hideActions?: unknown;
59
60
  loadingIcon?: unknown;
60
61
  selectedColor?: unknown;
@@ -64,7 +65,6 @@ export declare const makeVTreeviewProps: <Defaults extends {
64
65
  filterKeys?: unknown;
65
66
  filterMode?: unknown;
66
67
  noFilter?: unknown;
67
- fluid?: unknown;
68
68
  openAll?: unknown;
69
69
  indentLines?: unknown;
70
70
  search?: unknown;
@@ -441,6 +441,10 @@ export declare const makeVTreeviewProps: <Defaults extends {
441
441
  type: PropType<unknown extends Defaults["indeterminateIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["indeterminateIcon"]>;
442
442
  default: unknown extends Defaults["indeterminateIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["indeterminateIcon"];
443
443
  };
444
+ fluid: unknown extends Defaults["fluid"] ? BooleanConstructor : {
445
+ type: PropType<unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"]>;
446
+ default: unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"];
447
+ };
444
448
  hideActions: unknown extends Defaults["hideActions"] ? BooleanConstructor : {
445
449
  type: PropType<unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"]>;
446
450
  default: unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"];
@@ -495,10 +499,6 @@ export declare const makeVTreeviewProps: <Defaults extends {
495
499
  type: PropType<unknown extends Defaults["noFilter"] ? boolean : boolean | Defaults["noFilter"]>;
496
500
  default: unknown extends Defaults["noFilter"] ? boolean : boolean | Defaults["noFilter"];
497
501
  };
498
- fluid: unknown extends Defaults["fluid"] ? BooleanConstructor : {
499
- type: PropType<unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"]>;
500
- default: unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"];
501
- };
502
502
  openAll: unknown extends Defaults["openAll"] ? BooleanConstructor : {
503
503
  type: PropType<unknown extends Defaults["openAll"] ? boolean : boolean | Defaults["openAll"]>;
504
504
  default: unknown extends Defaults["openAll"] ? boolean : boolean | Defaults["openAll"];
@@ -1097,6 +1097,7 @@ export declare const VTreeview: {
1097
1097
  type: PropType<import("../../composables/icons.js").IconValue>;
1098
1098
  default: string;
1099
1099
  };
1100
+ fluid: BooleanConstructor;
1100
1101
  hideActions: BooleanConstructor;
1101
1102
  loadingIcon: {
1102
1103
  type: StringConstructor;
@@ -1115,7 +1116,6 @@ export declare const VTreeview: {
1115
1116
  default: string;
1116
1117
  };
1117
1118
  noFilter: BooleanConstructor;
1118
- fluid: BooleanConstructor;
1119
1119
  openAll: BooleanConstructor;
1120
1120
  indentLines: PropType<boolean | IndentLinesVariant>;
1121
1121
  search: StringConstructor;
@@ -1242,6 +1242,7 @@ export declare const VTreeview: {
1242
1242
  type: PropType<import("../../composables/icons.js").IconValue>;
1243
1243
  default: string;
1244
1244
  };
1245
+ fluid: BooleanConstructor;
1245
1246
  hideActions: BooleanConstructor;
1246
1247
  loadingIcon: {
1247
1248
  type: StringConstructor;
@@ -1260,7 +1261,6 @@ export declare const VTreeview: {
1260
1261
  default: string;
1261
1262
  };
1262
1263
  noFilter: BooleanConstructor;
1263
- fluid: BooleanConstructor;
1264
1264
  openAll: BooleanConstructor;
1265
1265
  indentLines: PropType<boolean | IndentLinesVariant>;
1266
1266
  search: StringConstructor;
@@ -17,7 +17,6 @@ function flatten(items) {
17
17
  return flat;
18
18
  }
19
19
  export const makeVTreeviewProps = propsFactory({
20
- fluid: Boolean,
21
20
  openAll: Boolean,
22
21
  indentLines: [Boolean, String],
23
22
  search: String,
@@ -1 +1 @@
1
- {"version":3,"file":"VTreeview.js","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRaw","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","fluid","Boolean","openAll","indentLines","String","search","filterKeys","collapseIcon","expandIcon","slim","modelValue","Array","VTreeview","name","props","emits","val","value","setup","_ref","slots","emit","activeColor","baseColor","color","activated","_selected","selected","get","set","vListRef","opened","flatItems","filteredItems","visibleIds","getPath","Set","flatMap","itemVal","returnObject","raw","getChildren","map","id","arr","queue","slice","child","shift","ids","i","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","indentLinesVariant","_createVNode","_mergeProps","class","style","$event","default"],"sources":["../../../src/components/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRaw, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTreeviewSymbol } from './shared'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, IndentLinesVariant } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n fluid: Boolean,\n openAll: Boolean,\n indentLines: [Boolean, String] as PropType<boolean | IndentLinesVariant>,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...omit(makeVTreeviewChildrenProps(), [\n 'index',\n 'path',\n 'indentLinesVariant',\n 'parentIndentLines',\n 'isLastGroup',\n ]),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['nav', 'openStrategy']),\n\n modelValue: Array,\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'update:modelValue': (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, emit }) {\n const { items } = useListItems(props)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const activated = useProxiedModel(props, 'activated')\n const _selected = useProxiedModel(props, 'selected')\n\n const selected = computed({\n get: () => props.modelValue ?? _selected.value,\n set (val) {\n _selected.value = val\n emit('update:modelValue', val)\n },\n })\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) return null\n const getPath = vListRef.value?.getPath\n if (!getPath) return null\n return new Set(filteredItems.value.flatMap(item => {\n const itemVal = props.returnObject ? item.raw : item.props.value\n return [\n ...getPath(itemVal),\n ...getChildren(itemVal),\n ].map(toRaw)\n }))\n })\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (items: InternalListItem<any>[]) {\n let ids: any[] = []\n\n for (const i of items) {\n if (!i.children) continue\n\n ids.push(props.returnObject ? toRaw(i.raw) : i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(() => props.collapseIcon),\n expandIcon: toRef(() => props.expandIcon),\n },\n VTreeviewItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n variant: toRef(() => props.variant),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n const indentLinesVariant = typeof props.indentLines === 'boolean' ? 'default' : props.indentLines\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n {\n 'v-treeview--fluid': props.fluid,\n },\n props.class,\n ]}\n openStrategy=\"multiple\"\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n density={ props.density }\n returnObject={ props.returnObject }\n items={ items.value }\n parentIndentLines={ props.indentLines ? [] : undefined }\n indentLinesVariant={ indentLinesVariant }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTreeview.js","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRaw","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","openAll","Boolean","indentLines","String","search","filterKeys","collapseIcon","expandIcon","slim","modelValue","Array","VTreeview","name","props","emits","val","value","setup","_ref","slots","emit","activeColor","baseColor","color","activated","_selected","selected","get","set","vListRef","opened","flatItems","filteredItems","visibleIds","getPath","Set","flatMap","itemVal","returnObject","raw","getChildren","map","id","arr","queue","slice","child","shift","ids","i","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","indentLinesVariant","_createVNode","_mergeProps","fluid","class","style","$event","default"],"sources":["../../../src/components/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRaw, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTreeviewSymbol } from './shared'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, IndentLinesVariant } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n openAll: Boolean,\n indentLines: [Boolean, String] as PropType<boolean | IndentLinesVariant>,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...omit(makeVTreeviewChildrenProps(), [\n 'index',\n 'path',\n 'indentLinesVariant',\n 'parentIndentLines',\n 'isLastGroup',\n ]),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['nav', 'openStrategy']),\n\n modelValue: Array,\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'update:modelValue': (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, emit }) {\n const { items } = useListItems(props)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const activated = useProxiedModel(props, 'activated')\n const _selected = useProxiedModel(props, 'selected')\n\n const selected = computed({\n get: () => props.modelValue ?? _selected.value,\n set (val) {\n _selected.value = val\n emit('update:modelValue', val)\n },\n })\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) return null\n const getPath = vListRef.value?.getPath\n if (!getPath) return null\n return new Set(filteredItems.value.flatMap(item => {\n const itemVal = props.returnObject ? item.raw : item.props.value\n return [\n ...getPath(itemVal),\n ...getChildren(itemVal),\n ].map(toRaw)\n }))\n })\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (items: InternalListItem<any>[]) {\n let ids: any[] = []\n\n for (const i of items) {\n if (!i.children) continue\n\n ids.push(props.returnObject ? toRaw(i.raw) : i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(() => props.collapseIcon),\n expandIcon: toRef(() => props.expandIcon),\n },\n VTreeviewItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n variant: toRef(() => props.variant),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n const indentLinesVariant = typeof props.indentLines === 'boolean' ? 'default' : props.indentLines\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n {\n 'v-treeview--fluid': props.fluid,\n },\n props.class,\n ]}\n openStrategy=\"multiple\"\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n density={ props.density }\n returnObject={ props.returnObject }\n items={ items.value }\n parentIndentLines={ props.indentLines ? [] : undefined }\n indentLinesVariant={ indentLinesVariant }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
@@ -26,6 +26,7 @@ export type VTreeviewChildrenSlots<T> = {
26
26
  export declare const makeVTreeviewChildrenProps: <Defaults extends {
27
27
  density?: unknown;
28
28
  hideActions?: unknown;
29
+ fluid?: unknown;
29
30
  disabled?: unknown;
30
31
  loadChildren?: unknown;
31
32
  loadingIcon?: unknown;
@@ -62,6 +63,10 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
62
63
  type: PropType<unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"]>;
63
64
  default: unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"];
64
65
  };
66
+ fluid: unknown extends Defaults["fluid"] ? BooleanConstructor : {
67
+ type: PropType<unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"]>;
68
+ default: unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"];
69
+ };
65
70
  disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
66
71
  type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
67
72
  default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
@@ -174,6 +179,7 @@ export declare const VTreeviewChildren: {
174
179
  indeterminateIcon: IconValue;
175
180
  activatable: boolean;
176
181
  selectable: boolean;
182
+ fluid: boolean;
177
183
  hideActions: boolean;
178
184
  loadingIcon: string;
179
185
  } & {
@@ -197,6 +203,7 @@ export declare const VTreeviewChildren: {
197
203
  indeterminateIcon: IconValue;
198
204
  activatable: boolean;
199
205
  selectable: boolean;
206
+ fluid: boolean;
200
207
  hideActions: boolean;
201
208
  loadingIcon: string;
202
209
  }, true, {}, import("vue").SlotsType<Partial<{
@@ -245,6 +252,7 @@ export declare const VTreeviewChildren: {
245
252
  indeterminateIcon: IconValue;
246
253
  activatable: boolean;
247
254
  selectable: boolean;
255
+ fluid: boolean;
248
256
  hideActions: boolean;
249
257
  loadingIcon: string;
250
258
  } & {
@@ -268,6 +276,7 @@ export declare const VTreeviewChildren: {
268
276
  indeterminateIcon: IconValue;
269
277
  activatable: boolean;
270
278
  selectable: boolean;
279
+ fluid: boolean;
271
280
  hideActions: boolean;
272
281
  loadingIcon: string;
273
282
  }>;
@@ -284,6 +293,7 @@ export declare const VTreeviewChildren: {
284
293
  indeterminateIcon: IconValue;
285
294
  activatable: boolean;
286
295
  selectable: boolean;
296
+ fluid: boolean;
287
297
  hideActions: boolean;
288
298
  loadingIcon: string;
289
299
  } & {
@@ -307,6 +317,7 @@ export declare const VTreeviewChildren: {
307
317
  indeterminateIcon: IconValue;
308
318
  activatable: boolean;
309
319
  selectable: boolean;
320
+ fluid: boolean;
310
321
  hideActions: boolean;
311
322
  loadingIcon: string;
312
323
  }, {}, string, import("vue").SlotsType<Partial<{
@@ -347,6 +358,7 @@ export declare const VTreeviewChildren: {
347
358
  validator: (v: any) => boolean;
348
359
  };
349
360
  hideActions: BooleanConstructor;
361
+ fluid: BooleanConstructor;
350
362
  disabled: BooleanConstructor;
351
363
  loadChildren: PropType<(item: unknown) => Promise<void>>;
352
364
  loadingIcon: {
@@ -385,6 +397,7 @@ export declare const VTreeviewChildren: {
385
397
  validator: (v: any) => boolean;
386
398
  };
387
399
  hideActions: BooleanConstructor;
400
+ fluid: BooleanConstructor;
388
401
  disabled: BooleanConstructor;
389
402
  loadChildren: PropType<(item: unknown) => Promise<void>>;
390
403
  loadingIcon: {
@@ -10,6 +10,7 @@ import { IconValue } from "../../composables/icons.js"; // Utilities
10
10
  import { computed, reactive, ref, toRaw } from 'vue';
11
11
  import { genericComponent, getIndentLines, pick, propsFactory, renderSlot } from "../../util/index.js"; // Types
12
12
  export const makeVTreeviewChildrenProps = propsFactory({
13
+ fluid: Boolean,
13
14
  disabled: Boolean,
14
15
  loadChildren: Function,
15
16
  loadingIcon: {
@@ -91,7 +92,7 @@ export const VTreeviewChildren = genericComponent()({
91
92
  depth,
92
93
  isLast,
93
94
  isLastGroup: props.isLastGroup,
94
- leafLinks: !props.hideActions,
95
+ leafLinks: !props.hideActions && !props.fluid,
95
96
  separateRoots: props.separateRoots,
96
97
  parentIndentLines: props.parentIndentLines,
97
98
  variant: props.indentLinesVariant