@vuetify/nightly 3.9.2-master.2025-07-27 → 3.9.2-master.2025-07-29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -3
- package/dist/json/attributes.json +4468 -4468
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +140 -140
- package/dist/json/web-types.json +8333 -8333
- package/dist/vuetify-labs.cjs +48 -15
- package/dist/vuetify-labs.css +4607 -4612
- package/dist/vuetify-labs.d.ts +51 -51
- package/dist/vuetify-labs.esm.js +48 -15
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +48 -15
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +48 -15
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3424 -3429
- package/dist/vuetify.d.ts +51 -51
- package/dist/vuetify.esm.js +48 -15
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +48 -15
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +192 -191
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerControls.js +8 -1
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +11 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.js +3 -0
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VList/VListChildren.js +3 -4
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +1 -1
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +9 -14
- package/lib/components/VSlider/VSliderThumb.js +13 -7
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +9 -14
- package/lib/components/VSlider/slider.d.ts +1 -0
- package/lib/components/VSlider/slider.js +2 -0
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/directives/ripple/index.js +2 -2
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +51 -51
- package/lib/framework.js +1 -1
- package/lib/locale/af.d.ts +7 -0
- package/lib/locale/af.js +7 -0
- package/lib/locale/af.js.map +1 -1
- package/lib/locale/ar.d.ts +7 -0
- package/lib/locale/ar.js +13 -6
- package/lib/locale/ar.js.map +1 -1
- package/lib/locale/az.d.ts +7 -0
- package/lib/locale/az.js +7 -0
- package/lib/locale/az.js.map +1 -1
- package/lib/locale/bg.d.ts +7 -0
- package/lib/locale/bg.js +7 -0
- package/lib/locale/bg.js.map +1 -1
- package/lib/locale/ca.d.ts +7 -0
- package/lib/locale/ca.js +7 -0
- package/lib/locale/ca.js.map +1 -1
- package/lib/locale/ckb.d.ts +7 -0
- package/lib/locale/ckb.js +7 -0
- package/lib/locale/ckb.js.map +1 -1
- package/lib/locale/cs.d.ts +7 -0
- package/lib/locale/cs.js +7 -0
- package/lib/locale/cs.js.map +1 -1
- package/lib/locale/da.d.ts +7 -0
- package/lib/locale/da.js +7 -0
- package/lib/locale/da.js.map +1 -1
- package/lib/locale/de.d.ts +7 -0
- package/lib/locale/de.js +7 -0
- package/lib/locale/de.js.map +1 -1
- package/lib/locale/el.d.ts +7 -0
- package/lib/locale/el.js +7 -0
- package/lib/locale/el.js.map +1 -1
- package/lib/locale/en.d.ts +7 -0
- package/lib/locale/en.js +8 -0
- package/lib/locale/en.js.map +1 -1
- package/lib/locale/es.d.ts +7 -0
- package/lib/locale/es.js +7 -0
- package/lib/locale/es.js.map +1 -1
- package/lib/locale/et.d.ts +7 -0
- package/lib/locale/et.js +7 -0
- package/lib/locale/et.js.map +1 -1
- package/lib/locale/fa.d.ts +7 -0
- package/lib/locale/fa.js +7 -0
- package/lib/locale/fa.js.map +1 -1
- package/lib/locale/fi.d.ts +7 -0
- package/lib/locale/fi.js +7 -0
- package/lib/locale/fi.js.map +1 -1
- package/lib/locale/fr.d.ts +7 -0
- package/lib/locale/fr.js +7 -0
- package/lib/locale/fr.js.map +1 -1
- package/lib/locale/he.d.ts +7 -0
- package/lib/locale/he.js +7 -0
- package/lib/locale/he.js.map +1 -1
- package/lib/locale/hr.d.ts +7 -0
- package/lib/locale/hr.js +7 -0
- package/lib/locale/hr.js.map +1 -1
- package/lib/locale/hu.d.ts +7 -0
- package/lib/locale/hu.js +7 -0
- package/lib/locale/hu.js.map +1 -1
- package/lib/locale/id.d.ts +7 -0
- package/lib/locale/id.js +7 -0
- package/lib/locale/id.js.map +1 -1
- package/lib/locale/it.d.ts +7 -0
- package/lib/locale/it.js +7 -0
- package/lib/locale/it.js.map +1 -1
- package/lib/locale/ja.d.ts +7 -0
- package/lib/locale/ja.js +7 -0
- package/lib/locale/ja.js.map +1 -1
- package/lib/locale/km.d.ts +7 -0
- package/lib/locale/km.js +7 -0
- package/lib/locale/km.js.map +1 -1
- package/lib/locale/ko.d.ts +7 -0
- package/lib/locale/ko.js +7 -0
- package/lib/locale/ko.js.map +1 -1
- package/lib/locale/lt.d.ts +7 -0
- package/lib/locale/lt.js +7 -0
- package/lib/locale/lt.js.map +1 -1
- package/lib/locale/lv.d.ts +7 -0
- package/lib/locale/lv.js +7 -0
- package/lib/locale/lv.js.map +1 -1
- package/lib/locale/nl.d.ts +7 -0
- package/lib/locale/nl.js +7 -0
- package/lib/locale/nl.js.map +1 -1
- package/lib/locale/no.d.ts +7 -0
- package/lib/locale/no.js +7 -0
- package/lib/locale/no.js.map +1 -1
- package/lib/locale/pl.d.ts +7 -0
- package/lib/locale/pl.js +7 -0
- package/lib/locale/pl.js.map +1 -1
- package/lib/locale/pt.d.ts +7 -0
- package/lib/locale/pt.js +7 -0
- package/lib/locale/pt.js.map +1 -1
- package/lib/locale/ro.d.ts +7 -0
- package/lib/locale/ro.js +7 -0
- package/lib/locale/ro.js.map +1 -1
- package/lib/locale/ru.d.ts +7 -0
- package/lib/locale/ru.js +7 -0
- package/lib/locale/ru.js.map +1 -1
- package/lib/locale/sk.d.ts +7 -0
- package/lib/locale/sk.js +7 -0
- package/lib/locale/sk.js.map +1 -1
- package/lib/locale/sl.d.ts +7 -0
- package/lib/locale/sl.js +7 -0
- package/lib/locale/sl.js.map +1 -1
- package/lib/locale/sr-Cyrl.d.ts +7 -0
- package/lib/locale/sr-Cyrl.js +7 -0
- package/lib/locale/sr-Cyrl.js.map +1 -1
- package/lib/locale/sr-Latn.d.ts +7 -0
- package/lib/locale/sr-Latn.js +7 -0
- package/lib/locale/sr-Latn.js.map +1 -1
- package/lib/locale/sv.d.ts +7 -0
- package/lib/locale/sv.js +7 -0
- package/lib/locale/sv.js.map +1 -1
- package/lib/locale/th.d.ts +7 -0
- package/lib/locale/th.js +7 -0
- package/lib/locale/th.js.map +1 -1
- package/lib/locale/tr.d.ts +7 -0
- package/lib/locale/tr.js +7 -0
- package/lib/locale/tr.js.map +1 -1
- package/lib/locale/uk.d.ts +7 -0
- package/lib/locale/uk.js +7 -0
- package/lib/locale/uk.js.map +1 -1
- package/lib/locale/vi.d.ts +7 -0
- package/lib/locale/vi.js +7 -0
- package/lib/locale/vi.js.map +1 -1
- package/lib/locale/zh-Hans.d.ts +7 -0
- package/lib/locale/zh-Hans.js +7 -0
- package/lib/locale/zh-Hans.js.map +1 -1
- package/lib/locale/zh-Hant.d.ts +7 -0
- package/lib/locale/zh-Hant.js +7 -0
- package/lib/locale/zh-Hant.js.map +1 -1
- package/package.json +1 -1
@@ -1,11 +1,11 @@
|
|
1
|
-
import { normalizeClass as _normalizeClass,
|
1
|
+
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VSliderThumb.css";
|
4
4
|
|
5
5
|
// Components
|
6
6
|
import { VSliderSymbol } from "./slider.js";
|
7
7
|
import { VScaleTransition } from "../transitions/index.js"; // Composables
|
8
|
-
import { useTextColor } from "../../composables/color.js";
|
8
|
+
import { useBackgroundColor, useTextColor } from "../../composables/color.js";
|
9
9
|
import { makeComponentProps } from "../../composables/component.js";
|
10
10
|
import { useElevation } from "../../composables/elevation.js";
|
11
11
|
import { useRtl } from "../../composables/locale.js"; // Directives
|
@@ -62,6 +62,7 @@ export const VSliderThumb = genericComponent()({
|
|
62
62
|
min,
|
63
63
|
max,
|
64
64
|
thumbColor,
|
65
|
+
thumbLabelColor,
|
65
66
|
step,
|
66
67
|
disabled,
|
67
68
|
thumbSize,
|
@@ -83,6 +84,10 @@ export const VSliderThumb = genericComponent()({
|
|
83
84
|
textColorClasses,
|
84
85
|
textColorStyles
|
85
86
|
} = useTextColor(thumbColor);
|
87
|
+
const {
|
88
|
+
backgroundColorClasses,
|
89
|
+
backgroundColorStyles
|
90
|
+
} = useBackgroundColor(thumbLabelColor);
|
86
91
|
const {
|
87
92
|
pageup,
|
88
93
|
pagedown,
|
@@ -148,9 +153,7 @@ export const VSliderThumb = genericComponent()({
|
|
148
153
|
"onKeydown": !readonly.value ? onKeydown : undefined
|
149
154
|
}, [_createElementVNode("div", {
|
150
155
|
"class": _normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
|
151
|
-
"style":
|
152
|
-
...textColorStyles.value
|
153
|
-
}
|
156
|
+
"style": _normalizeStyle(textColorStyles.value)
|
154
157
|
}, null), _withDirectives(_createElementVNode("div", {
|
155
158
|
"class": _normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
|
156
159
|
"style": _normalizeStyle(textColorStyles.value)
|
@@ -163,10 +166,13 @@ export const VSliderThumb = genericComponent()({
|
|
163
166
|
default: () => [_withDirectives(_createElementVNode("div", {
|
164
167
|
"class": "v-slider-thumb__label-container"
|
165
168
|
}, [_createElementVNode("div", {
|
166
|
-
"class": _normalizeClass(['v-slider-thumb__label',
|
169
|
+
"class": _normalizeClass(['v-slider-thumb__label', backgroundColorClasses.value]),
|
170
|
+
"style": _normalizeStyle(backgroundColorStyles.value)
|
167
171
|
}, [_createElementVNode("div", null, [slots['thumb-label']?.({
|
168
172
|
modelValue: props.modelValue
|
169
|
-
}) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])
|
173
|
+
}) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)]), _createElementVNode("div", {
|
174
|
+
"class": "v-slider-thumb__label-wedge"
|
175
|
+
}, null)])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
|
170
176
|
})]);
|
171
177
|
});
|
172
178
|
return {};
|
@@ -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","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":[]}
|
1
|
+
{"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useBackgroundColor","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","thumbLabelColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","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 { useBackgroundColor, 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 thumbLabelColor,\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 const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(thumbLabelColor)\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={ textColorStyles.value }\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 backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n <div class=\"v-slider-thumb__label-wedge\" />\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa;AAAA,SACbC,gBAAgB,mCAEzB;AAAA,SACSC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB;AAAA,SAClBC,YAAY;AAAA,SACZC,MAAM,uCAEf;AAAA,OACOC,OAAO,0CAEd;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,+BAE5E;AAQA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,OAAO,EAAEC,OAAO;EAChBC,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACHH,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAE;IACVJ,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDG,QAAQ,EAAE;IACRL,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDI,MAAM,EAAE;IACNN,IAAI,EAAE,CAACF,OAAO,EAAES,MAAM,CAA8C;IACpEC,OAAO,EAAE;EACX,CAAC;EACDC,IAAI,EAAEC,MAAM;EACZC,UAAU,EAAEb,OAAO;EAEnB,GAAGb,kBAAkB,CAAC;AACxB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAM2B,YAAY,GAAGpB,gBAAgB,CAAoB,CAAC,CAAC;EAChEiB,IAAI,EAAE,cAAc;EAEpBI,UAAU,EAAE;IAAEzB;EAAQ,CAAC;EAEvB0B,KAAK,EAAElB,qBAAqB,CAAC,CAAC;EAE9BmB,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAS,IAAK;EACtC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAMG,MAAM,GAAG/B,MAAM,CAACT,aAAa,CAAC;IACpC,MAAM;MAAEyC,KAAK;MAAEC;IAAW,CAAC,GAAGpC,MAAM,CAAC,CAAC;IACtC,IAAI,CAACkC,MAAM,EAAE,MAAM,IAAIG,KAAK,CAAC,yEAAyE,CAAC;IAEvG,MAAM;MACJrB,GAAG;MACHJ,GAAG;MACH0B,UAAU;MACVC,eAAe;MACfC,IAAI;MACJC,QAAQ;MACRC,SAAS;MACTC,UAAU;MACVC,SAAS;MACTC,UAAU;MACVC,QAAQ;MACRC,QAAQ;MACRC,SAAS;MACTC,YAAY;MACZC,QAAQ;MACRC;IACF,CAAC,GAAGjB,MAAM;IAEV,MAAMkB,cAAc,GAAGlD,QAAQ,CAAC,MAAM,CAACuC,QAAQ,CAACY,KAAK,GAAGL,SAAS,CAACK,KAAK,GAAGC,SAAS,CAAC;IACpF,MAAM;MAAEC;IAAiB,CAAC,GAAGxD,YAAY,CAACqD,cAAc,CAAC;IACzD,MAAM;MAAEI,gBAAgB;MAAEC;IAAgB,CAAC,GAAG5D,YAAY,CAACyC,UAAU,CAAC;IACtE,MAAM;MAAEoB,sBAAsB;MAAEC;IAAsB,CAAC,GAAG/D,kBAAkB,CAAC2C,eAAe,CAAC;IAE7F,MAAM;MAAEqB,MAAM;MAAEC,QAAQ;MAAEC,GAAG;MAAEC,IAAI;MAAEC,IAAI;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAG,CAAC,GAAG7D,SAAS;IACxE,MAAM8D,YAAY,GAAG,CAACR,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC;IAEzE,MAAME,WAAW,GAAGnE,QAAQ,CAAC,MAAM;MACjC,IAAIsC,IAAI,CAACa,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,SAASiB,YAAYA,CAAEC,CAAgB,EAAElB,KAAa,EAAE;MACtD,IAAI1B,KAAK,CAACH,UAAU,EAAE;MACtB,IAAI,CAAC4C,YAAY,CAACI,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;MAEnCF,CAAC,CAACG,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGnC,IAAI,CAACa,KAAK,IAAI,GAAG;MAC/B,MAAMuB,KAAK,GAAG,CAAChE,GAAG,CAACyC,KAAK,GAAGrC,GAAG,CAACqC,KAAK,IAAIsB,KAAK;MAC7C,IAAI,CAACX,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC,CAACK,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;QAC3C,MAAMI,QAAQ,GAAG/B,QAAQ,CAACO,KAAK,GAC3B,CAAClB,KAAK,CAACkB,KAAK,GAAGW,IAAI,GAAGC,KAAK,EAAEpB,UAAU,CAACQ,KAAK,GAAGa,IAAI,GAAGC,EAAE,CAAC,GAC1DhB,YAAY,CAACE,KAAK,KAAKlB,KAAK,CAACkB,KAAK,GAAG,CAACW,IAAI,EAAEG,EAAE,CAAC,GAAG,CAACF,KAAK,EAAEE,EAAE,CAAC;QACjE,MAAMvB,SAAS,GAAGiC,QAAQ,CAACL,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,MAAMK,UAAU,GAAGP,CAAC,CAACQ,QAAQ,GAAG,CAAC,GAAIR,CAAC,CAACS,OAAO,GAAG,CAAC,GAAG,CAAE;QAEvD,IAAIpC,SAAS,KAAK,CAAC,CAAC,IAAIS,KAAK,KAAKzC,GAAG,CAACyC,KAAK,IAAI,CAACyB,UAAU,IAAI,CAAChE,MAAM,CAACmE,SAAS,CAACL,KAAK,CAAC,EAAE;UACtFvB,KAAK,GAAGA,KAAK,GAAIuB,KAAK,GAAG,CAAC,GAAID,KAAK;QACrC,CAAC,MAAM;UACLtB,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG+B,KAAK,GAAGN,WAAW,CAAChB,KAAK,CAACyB,UAAU,CAAE;QACrE;MACF,CAAC,MAAM,IAAIP,CAAC,CAACE,GAAG,KAAKV,IAAI,EAAE;QACzBV,KAAK,GAAGrC,GAAG,CAACqC,KAAK;MACnB,CAAC,MAAM,IAAIkB,CAAC,CAACE,GAAG,KAAKX,GAAG,EAAE;QACxBT,KAAK,GAAGzC,GAAG,CAACyC,KAAK;MACnB,CAAC,MAAM;QACL,MAAMT,SAAS,GAAG2B,CAAC,CAACE,GAAG,KAAKZ,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7CR,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG+B,KAAK,IAAIC,KAAK,GAAG,GAAG,GAAGA,KAAK,GAAG,EAAE,GAAG,EAAE,CAAE;MACvE;MAEA,OAAOM,IAAI,CAACtE,GAAG,CAACe,KAAK,CAACX,GAAG,EAAEkE,IAAI,CAAClE,GAAG,CAACW,KAAK,CAACf,GAAG,EAAEyC,KAAK,CAAC,CAAC;IACxD;IAEA,SAAS8B,SAASA,CAAEZ,CAAgB,EAAE;MACpC,MAAMa,QAAQ,GAAGd,YAAY,CAACC,CAAC,EAAE5C,KAAK,CAACV,UAAU,CAAC;MAElDmE,QAAQ,IAAI,IAAI,IAAInD,IAAI,CAAC,mBAAmB,EAAEmD,QAAQ,CAAC;IACzD;IAEA5E,SAAS,CAAC,MAAM;MACd,MAAM6E,kBAAkB,GAAGjF,aAAa,CAAC+C,YAAY,CAACE,KAAK,GAAG,GAAG,GAAG1B,KAAK,CAACT,QAAQ,GAAGS,KAAK,CAACT,QAAQ,EAAE,GAAG,CAAC;MAEzG,OAAAoE,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL,gBAAgB,EAChB;UACE,yBAAyB,EAAE5D,KAAK,CAACjB,OAAO;UACxC,yBAAyB,EAAEiB,KAAK,CAACjB,OAAO,IAAIuC,YAAY,CAACI;QAC3D,CAAC,EACD1B,KAAK,CAAC6D,KAAK,EACXpD,UAAU,CAACiB,KAAK,CACjB;QAAA,SAAAoC,eAAA,CACM,CACL;UACE,2BAA2B,EAAEJ,kBAAkB;UAC/C,uBAAuB,EAAEjF,aAAa,CAACsC,SAAS,CAACW,KAAK;QACxD,CAAC,EACD1B,KAAK,CAAC+D,KAAK,CACZ;QAAA;QAAA,YAEUjD,QAAQ,CAACY,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QAAA,cACrB1B,KAAK,CAACL,IAAI;QAAA,iBACPN,GAAG,CAACqC,KAAK;QAAA,iBACTzC,GAAG,CAACyC,KAAK;QAAA,iBACT1B,KAAK,CAACV,UAAU;QAAA,iBAChB,CAAC,CAAC8B,QAAQ,CAACM,KAAK;QAAA,oBACbT,SAAS,CAACS,KAAK;QAAA,aACtB,CAACN,QAAQ,CAACM,KAAK,GAAG8B,SAAS,GAAG7B;MAAS,IAAAgC,mBAAA;QAAA,SAAAC,eAAA,CAG1C,CACL,yBAAyB,EACzB/B,gBAAgB,CAACH,KAAK,EACtBE,gBAAgB,CAACF,KAAK,CACvB;QAAA,SAAAoC,eAAA,CACOhC,eAAe,CAACJ,KAAK;MAAA,UAAAsC,eAAA,CAAAL,mBAAA;QAAA,SAAAC,eAAA,CAGtB,CACL,wBAAwB,EACxB/B,gBAAgB,CAACH,KAAK,CACvB;QAAA,SAAAoC,eAAA,CACOhC,eAAe,CAACJ,KAAK;MAAA,YAAApD,OAAA,EAClB0B,KAAK,CAACR,MAAM,EAAE,IAAI;QAAAyE,MAAA;QAAAC,MAAA;MAAA,MAAAC,YAAA,CAAAnG,gBAAA;QAAA;MAAA;QAAA0B,OAAA,EAAAA,CAAA,MAAAsE,eAAA,CAAAL,mBAAA;UAAA;QAAA,IAAAA,mBAAA;UAAA,SAAAC,eAAA,CAQlB,CACL,uBAAuB,EACvB7B,sBAAsB,CAACL,KAAK,CAC7B;UAAA,SAAAoC,eAAA,CACO9B,qBAAqB,CAACN,KAAK;QAAA,IAAAiC,mBAAA,eAG/BtD,KAAK,CAAC,aAAa,CAAC,GAAG;UAAEf,UAAU,EAAEU,KAAK,CAACV;QAAW,CAAC,CAAC,IAAIU,KAAK,CAACV,UAAU,CAAC8E,OAAO,CAACvD,IAAI,CAACa,KAAK,GAAGH,QAAQ,CAACG,KAAK,GAAG,CAAC,CAAC,IAAAiC,mBAAA;UAAA;QAAA,gBAAAU,MAAA,EAVjHrD,UAAU,CAACU,KAAK,IAAI1B,KAAK,CAACjB,OAAO,IAAKiC,UAAU,CAACU,KAAK,KAAK,QAAQ;MAAA;IAkBvF,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
@@ -18,8 +18,8 @@
|
|
18
18
|
background: rgba(var(--v-theme-surface-variant), .7)
|
19
19
|
color: rgb(var(--v-theme-on-surface-variant))
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
> .v-slider-thumb__label-wedge
|
22
|
+
background: inherit
|
23
23
|
|
24
24
|
// Block
|
25
25
|
.v-slider-thumb
|
@@ -78,10 +78,9 @@
|
|
78
78
|
user-select: none
|
79
79
|
transition: $slider-thumb-label-transition
|
80
80
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
height: 0
|
81
|
+
> .v-slider-thumb__label-wedge
|
82
|
+
width: $slider-thumb-label-wedge-size * 2
|
83
|
+
height: $slider-thumb-label-wedge-size * 2
|
85
84
|
position: absolute
|
86
85
|
|
87
86
|
.v-slider-thumb__ripple
|
@@ -111,10 +110,8 @@
|
|
111
110
|
@include tools.rtl()
|
112
111
|
transform: translateX(50%)
|
113
112
|
|
114
|
-
|
115
|
-
|
116
|
-
border-right: $slider-thumb-label-wedge-size solid transparent
|
117
|
-
border-top: $slider-thumb-label-wedge-size solid currentColor
|
113
|
+
> .v-slider-thumb__label-wedge
|
114
|
+
clip-path: polygon(50% 100%, 0 50%, 100% 50%)
|
118
115
|
bottom: -$slider-thumb-label-wedge-size
|
119
116
|
|
120
117
|
// Vertical
|
@@ -130,10 +127,8 @@
|
|
130
127
|
top: math.div($slider-thumb-label-height, -2)
|
131
128
|
left: $slider-thumb-label-offset
|
132
129
|
|
133
|
-
|
134
|
-
|
135
|
-
border-top: $slider-thumb-label-wedge-size solid transparent
|
136
|
-
border-bottom: $slider-thumb-label-wedge-size solid transparent
|
130
|
+
> .v-slider-thumb__label-wedge
|
131
|
+
clip-path: polygon(0 50%, 50% 0, 50% 100%)
|
137
132
|
left: -$slider-thumb-label-wedge-size
|
138
133
|
|
139
134
|
// Modifiers
|
@@ -30,6 +30,7 @@ type SliderProvide = {
|
|
30
30
|
step: Ref<number>;
|
31
31
|
thumbSize: Ref<number>;
|
32
32
|
thumbColor: Ref<string | undefined>;
|
33
|
+
thumbLabelColor: Ref<string | undefined>;
|
33
34
|
trackColor: Ref<string | undefined>;
|
34
35
|
trackFillColor: Ref<string | undefined>;
|
35
36
|
trackSize: Ref<number>;
|
@@ -134,6 +134,7 @@ export const useSlider = _ref => {
|
|
134
134
|
const numTicks = computed(() => (max.value - min.value) / step.value);
|
135
135
|
const disabled = toRef(() => props.disabled);
|
136
136
|
const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
|
137
|
+
const thumbLabelColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor);
|
137
138
|
const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
|
138
139
|
const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
|
139
140
|
const mousePressed = shallowRef(false);
|
@@ -291,6 +292,7 @@ export const useSlider = _ref => {
|
|
291
292
|
step,
|
292
293
|
thumbSize,
|
293
294
|
thumbColor,
|
295
|
+
thumbLabelColor,
|
294
296
|
thumbLabel: toRef(() => props.thumbLabel),
|
295
297
|
ticks: toRef(() => props.ticks),
|
296
298
|
tickSize,
|
@@ -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","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":[]}
|
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","thumbLabelColor","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 thumbLabelColor: 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 thumbLabelColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor)\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 thumbLabelColor,\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":[]}
|
@@ -95,8 +95,8 @@ const ripples = {
|
|
95
95
|
if (!el?._ripple?.enabled) return;
|
96
96
|
const ripples = el.getElementsByClassName('v-ripple__animation');
|
97
97
|
if (ripples.length === 0) return;
|
98
|
-
const animation = ripples
|
99
|
-
if (animation
|
98
|
+
const animation = Array.from(ripples).findLast(ripple => !ripple.dataset.isHiding);
|
99
|
+
if (!animation) return;else animation.dataset.isHiding = 'true';
|
100
100
|
const diff = performance.now() - Number(animation.dataset.activated);
|
101
101
|
const delay = Math.max(250 - diff, 0);
|
102
102
|
setTimeout(() => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["isObject","stopSymbol","Symbol","DELAY_RIPPLE","transform","el","value","style","webkitTransform","isTouchEvent","e","constructor","name","isKeyboardEvent","calculate","arguments","length","undefined","localX","localY","offset","getBoundingClientRect","target","touches","clientX","left","clientY","top","radius","scale","_ripple","circle","clientWidth","center","Math","sqrt","clientHeight","centerX","centerY","x","y","ripples","show","enabled","container","document","createElement","animation","appendChild","className","class","size","width","height","computed","window","getComputedStyle","position","dataset","previousPosition","classList","add","activated","String","performance","now","requestAnimationFrame","remove","hide","getElementsByClassName","isHiding","diff","Number","delay","max","setTimeout","parentNode","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleStop","rippleHide","clearTimeout","type","rippleCancelShow","keyboardRipple","keyboardRippleShow","keys","includes","key","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","bindingValue","allowedKeys","keyDownHandler","stop","addEventListener","passive","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple"],"sources":["../../../src/directives/ripple/index.ts"],"sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | {\n class?: string\n keys?: string[]\n }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n })\n })\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any) {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent, keys: string[]) {\n if (!keyboardRipple && keys.includes(e.key)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n\n const bindingValue = isObject(value) ? value : {}\n if (bindingValue.class) {\n el._ripple.class = bindingValue.class\n }\n\n const allowedKeys = bindingValue.keys ?? ['Enter', 'Space']\n el._ripple.keyDownHandler = (e: KeyboardEvent) => keyboardRippleShow(e, allowedKeys)\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys))\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n if (el._ripple?.keyDownHandler) {\n el.removeEventListener('keydown', el._ripple.keyDownHandler)\n }\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n removeListeners(el)\n delete el._ripple\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["isObject","stopSymbol","Symbol","DELAY_RIPPLE","transform","el","value","style","webkitTransform","isTouchEvent","e","constructor","name","isKeyboardEvent","calculate","arguments","length","undefined","localX","localY","offset","getBoundingClientRect","target","touches","clientX","left","clientY","top","radius","scale","_ripple","circle","clientWidth","center","Math","sqrt","clientHeight","centerX","centerY","x","y","ripples","show","enabled","container","document","createElement","animation","appendChild","className","class","size","width","height","computed","window","getComputedStyle","position","dataset","previousPosition","classList","add","activated","String","performance","now","requestAnimationFrame","remove","hide","getElementsByClassName","Array","from","findLast","ripple","isHiding","diff","Number","delay","max","setTimeout","parentNode","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleStop","rippleHide","clearTimeout","type","rippleCancelShow","keyboardRipple","keyboardRippleShow","keys","includes","key","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","bindingValue","allowedKeys","keyDownHandler","stop","addEventListener","passive","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple"],"sources":["../../../src/directives/ripple/index.ts"],"sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | {\n class?: string\n keys?: string[]\n }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n })\n })\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = Array.from(ripples).findLast(ripple => !ripple.dataset.isHiding)\n\n if (!animation) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any) {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent, keys: string[]) {\n if (!keyboardRipple && keys.includes(e.key)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n\n const bindingValue = isObject(value) ? value : {}\n if (bindingValue.class) {\n el._ripple.class = bindingValue.class\n }\n\n const allowedKeys = bindingValue.keys ?? ['Enter', 'Space']\n el._ripple.keyDownHandler = (e: KeyboardEvent) => keyboardRippleShow(e, allowedKeys)\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys))\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n if (el._ripple?.keyDownHandler) {\n el.removeEventListener('keydown', el._ripple.keyDownHandler)\n }\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n removeListeners(el)\n delete el._ripple\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.9.2-master.2025-07-
|
19
|
+
export const version = "3.9.2-master.2025-07-29";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|