@dimailn/vuetify 2.7.2-alpha24 → 2.7.2-alpha25
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/dist/vuetify.js +241 -230
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VBtn/VBtn.js +16 -16
- package/es5/components/VBtn/VBtn.js.map +1 -1
- package/es5/components/VColorPicker/VColorPicker.js +18 -31
- package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
- package/es5/components/VColorPicker/VColorPickerCanvas.js +45 -46
- package/es5/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
- package/es5/components/VColorPicker/VColorPickerEdit.js +27 -26
- package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
- package/es5/components/VColorPicker/VColorPickerPreview.js +41 -30
- package/es5/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/es5/components/VColorPicker/VColorPickerSwatches.js +13 -10
- package/es5/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/es5/components/VDataTable/VDataTable.js +7 -11
- package/es5/components/VDataTable/VDataTable.js.map +1 -1
- package/es5/components/VInput/VInput.js +20 -6
- package/es5/components/VInput/VInput.js.map +1 -1
- package/es5/components/VSlider/VSlider.js +23 -18
- package/es5/components/VSlider/VSlider.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +3 -7
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/framework.js +1 -1
- package/lib/components/VBtn/VBtn.js +18 -19
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +29 -37
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.js +41 -43
- package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.js +25 -31
- package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +45 -32
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.js +15 -9
- package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +3 -4
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VInput/VInput.js +12 -4
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VSlider/VSlider.js +26 -21
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +6 -9
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/framework.js +1 -1
- package/package.json +1 -1
- package/src/components/VBtn/VBtn.ts +18 -16
- package/src/components/VBtn/__tests__/VBtn.spec.ts +257 -242
- package/src/components/VBtn/__tests__/__snapshots__/VBtn.spec.ts.snap +13 -73
- package/src/components/VColorPicker/VColorPicker.ts +32 -35
- package/src/components/VColorPicker/VColorPickerCanvas.ts +44 -37
- package/src/components/VColorPicker/VColorPickerEdit.ts +37 -35
- package/src/components/VColorPicker/VColorPickerPreview.ts +48 -28
- package/src/components/VColorPicker/VColorPickerSwatches.ts +23 -12
- package/src/components/VColorPicker/__tests__/VColorPicker.spec.ts +47 -47
- package/src/components/VColorPicker/__tests__/VColorPickerCanvas.spec.ts +15 -13
- package/src/components/VColorPicker/__tests__/VColorPickerEdit.spec.ts +52 -50
- package/src/components/VColorPicker/__tests__/VColorPickerPreview.spec.ts +101 -30
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +200 -157
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +28 -11
- package/src/components/VDataTable/VDataTable.ts +3 -3
- package/src/components/VInput/VInput.ts +8 -2
- package/src/components/VInput/__tests__/VInput.spec.ts +170 -234
- package/src/components/VInput/__tests__/__snapshots__/VInput.spec.ts.snap +50 -101
- package/src/components/VSkeletonLoader/__tests__/VSkeletonLoader.spec.ts +22 -15
- package/src/components/VSkeletonLoader/__tests__/__snapshots__/VSkeletonLoader.spec.ts.snap +60 -60
- package/src/components/VSlider/VSlider.ts +43 -27
- package/src/components/VSlider/__tests__/VSlider.spec.ts +188 -286
- package/src/components/VSlider/__tests__/__snapshots__/VSlider.spec.ts.snap +157 -246
- package/src/components/VTabs/__tests__/VTab.spec.ts +3 -3
- package/src/components/VTabs/__tests__/VTabsBar.spec.ts +2 -2
- package/src/components/VTooltip/VTooltip.ts +20 -20
- package/src/components/VTooltip/__tests__/VTooltip.spec.ts +60 -75
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n\n if('$_emitChangeEvent' in this) {\n this.$emit('change', val)\n }\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n return h('div', this.setTextColor(this.validationState, {\n class: {'v-input': true, ...this.classes},\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n normalizeClasses,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n\n if('$_emitChangeEvent' in this) {\n this.$emit('change', val)\n }\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n const { class: additionalClasses, ...restAttrs } = this.$attrs as Record<string, any>\n\n return h('div', this.setTextColor(this.validationState, {\n class: { 'v-input': true, ...this.classes, ...normalizeClasses(additionalClasses) },\n ...restAttrs,\n }), {\n default: () => this.genContent(),\n })\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
|
|
@@ -58,7 +58,7 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
58
58
|
type: [Boolean, String],
|
|
59
59
|
default: undefined,
|
|
60
60
|
validator: function validator(v) {
|
|
61
|
-
return typeof v === 'boolean' || v === 'always';
|
|
61
|
+
return typeof v === 'boolean' || v === 'always' || v === undefined;
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
thumbSize: {
|
|
@@ -87,6 +87,7 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
87
87
|
modelValue: [Number, String],
|
|
88
88
|
vertical: Boolean
|
|
89
89
|
},
|
|
90
|
+
emits: ['update:modelValue', 'start', 'end', 'mouseup', 'change', 'focus', 'blur'],
|
|
90
91
|
data: function data() {
|
|
91
92
|
return {
|
|
92
93
|
app: null,
|
|
@@ -112,11 +113,14 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
112
113
|
return this.lazyValue;
|
|
113
114
|
},
|
|
114
115
|
set: function set(val) {
|
|
116
|
+
var originalVal = val;
|
|
115
117
|
val = isNaN(val) ? this.minValue : val; // Round value to ensure the
|
|
116
118
|
// entire slider range can
|
|
117
119
|
// be selected with step
|
|
118
120
|
|
|
119
|
-
var value = this.roundValue(
|
|
121
|
+
var value = this.roundValue(val); // Then clamp to min/max
|
|
122
|
+
|
|
123
|
+
value = Math.min(Math.max(value, this.minValue), this.maxValue);
|
|
120
124
|
if (value === this.lazyValue) return;
|
|
121
125
|
this.lazyValue = value;
|
|
122
126
|
this.$emit('update:modelValue', value);
|
|
@@ -132,7 +136,8 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
132
136
|
return parseFloat(this.max);
|
|
133
137
|
},
|
|
134
138
|
stepNumeric: function stepNumeric() {
|
|
135
|
-
|
|
139
|
+
var step = parseFloat(this.step);
|
|
140
|
+
return step > 0 ? step : 0;
|
|
136
141
|
},
|
|
137
142
|
inputWidth: function inputWidth() {
|
|
138
143
|
var inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100;
|
|
@@ -190,14 +195,21 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
190
195
|
watch: {
|
|
191
196
|
min: function min(val) {
|
|
192
197
|
var parsed = parseFloat(val);
|
|
193
|
-
|
|
198
|
+
|
|
199
|
+
if (parsed > this.internalValue) {
|
|
200
|
+
this.$emit('update:modelValue', parsed);
|
|
201
|
+
}
|
|
194
202
|
},
|
|
195
203
|
max: function max(val) {
|
|
196
204
|
var parsed = parseFloat(val);
|
|
197
|
-
|
|
205
|
+
|
|
206
|
+
if (parsed < this.internalValue) {
|
|
207
|
+
this.$emit('update:modelValue', parsed);
|
|
208
|
+
}
|
|
198
209
|
},
|
|
199
210
|
modelValue: {
|
|
200
211
|
handler: function handler(v) {
|
|
212
|
+
// Use the setter to ensure proper rounding and validation
|
|
201
213
|
this.internalValue = v;
|
|
202
214
|
},
|
|
203
215
|
immediate: true
|
|
@@ -216,7 +228,7 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
216
228
|
return children;
|
|
217
229
|
},
|
|
218
230
|
genSlider: function genSlider() {
|
|
219
|
-
return (0, _vue.h)('div', {
|
|
231
|
+
return (0, _vue.withDirectives)((0, _vue.h)('div', {
|
|
220
232
|
class: _objectSpread({
|
|
221
233
|
'v-slider': true,
|
|
222
234
|
'v-slider--horizontal': !this.vertical,
|
|
@@ -226,14 +238,10 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
226
238
|
'v-slider--disabled': this.isDisabled,
|
|
227
239
|
'v-slider--readonly': this.isReadonly
|
|
228
240
|
}, this.themeClasses),
|
|
229
|
-
directives: [{
|
|
230
|
-
name: 'click-outside',
|
|
231
|
-
value: this.onBlur
|
|
232
|
-
}],
|
|
233
241
|
onClick: this.onSliderClick,
|
|
234
242
|
onMousedown: this.onSliderMouseDown,
|
|
235
243
|
onTouchstart: this.onSliderMouseDown
|
|
236
|
-
}, this.genChildren());
|
|
244
|
+
}, this.genChildren()), [[_clickOutside.default, this.onBlur]]);
|
|
237
245
|
},
|
|
238
246
|
genChildren: function genChildren() {
|
|
239
247
|
return [this.genInput(), this.genTrackContainer(), this.genSteps(), this.genThumbContainer(this.internalValue, this.inputWidth, this.isActive, this.isFocused, this.onFocus, this.onBlur)];
|
|
@@ -336,12 +344,8 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
336
344
|
var transform = this.vertical ? "translateY(20%) translateY(".concat(Number(this.thumbSize) / 3 - 1, "px) translateX(55%) rotate(135deg)") : "translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)";
|
|
337
345
|
return (0, _vue.h)(_transitions.VScaleTransition, {
|
|
338
346
|
origin: 'bottom center'
|
|
339
|
-
}, [(0, _vue.h)('div', {
|
|
340
|
-
class: 'v-slider__thumb-label-container'
|
|
341
|
-
directives: [{
|
|
342
|
-
name: 'show',
|
|
343
|
-
value: this.isFocused || this.isActive || this.thumbLabel === 'always'
|
|
344
|
-
}]
|
|
347
|
+
}, [(0, _vue.withDirectives)((0, _vue.h)('div', {
|
|
348
|
+
class: 'v-slider__thumb-label-container'
|
|
345
349
|
}, [(0, _vue.h)('div', this.setBackgroundColor(this.computedThumbColor, {
|
|
346
350
|
class: 'v-slider__thumb-label',
|
|
347
351
|
style: {
|
|
@@ -349,7 +353,7 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
349
353
|
width: size,
|
|
350
354
|
transform: transform
|
|
351
355
|
}
|
|
352
|
-
}), [(0, _vue.h)('div', content)])])]);
|
|
356
|
+
}), [(0, _vue.h)('div', content)])]), [[_vue.vShow, this.isFocused || this.isActive || this.thumbLabel === 'always']])]);
|
|
353
357
|
},
|
|
354
358
|
genThumb: function genThumb() {
|
|
355
359
|
return (0, _vue.h)('div', this.setBackgroundColor(this.computedThumbColor, {
|
|
@@ -442,6 +446,7 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
|
|
|
442
446
|
thumb.focus();
|
|
443
447
|
this.onMouseMove(e);
|
|
444
448
|
this.$emit('update:modelValue', this.internalValue);
|
|
449
|
+
this.$emit('change', this.internalValue);
|
|
445
450
|
},
|
|
446
451
|
onBlur: function onBlur(e) {
|
|
447
452
|
this.isFocused = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType, h } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\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: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n modelValue: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('update:modelValue', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$slots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('update:modelValue', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('update:modelValue', parsed)\n },\n modelValue: {\n handler (v: number) {\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return h('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n onClick: this.onSliderClick,\n onMousedown: this.onSliderMouseDown,\n onTouchstart: this.onSliderMouseDown,\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return h('input', {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n h('div', this.setBackgroundColor(this.computedTrackColor, {\n class: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n h('div', this.setBackgroundColor(this.computedTrackFillColor, {\n class: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return h('div', {\n class: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(h('div', {\n class: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return h('span', {\n key: index,\n class: ['v-slider__tick', {\n 'v-slider__tick--filled': filled,\n }],\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return h('div', {\n class: ['v-slider__ticks-container', {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n }],\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return h('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n class: ['v-slider__thumb-container', {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n }],\n style: this.getThumbContainerStyles(valueWidth),\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n onFocus: onFocus,\n onBlur: onBlur,\n onKeydown: this.onKeyDown,\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$slots['thumb-label']\n ? this.$slots['thumb-label']!({ value })\n : [h('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return h(VScaleTransition, {\n origin: 'bottom center',\n }, [\n h('div', {\n class: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n h('div', this.setBackgroundColor(this.computedThumbColor, {\n class: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [h('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return h('div', this.setBackgroundColor(this.computedThumbColor, {\n class: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('update:modelValue', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('update:modelValue', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('update:modelValue', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { defineComponent, VNode, PropType, h, getCurrentInstance, withDirectives, vShow } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\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: 1,\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' || v === undefined,\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n modelValue: [Number, String],\n vertical: Boolean,\n },\n\n emits: [\n 'update:modelValue',\n 'start',\n 'end',\n 'mouseup',\n 'change',\n 'focus',\n 'blur',\n ],\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n const originalVal = val\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n let value = this.roundValue(val)\n // Then clamp to min/max\n value = Math.min(Math.max(value, this.minValue), this.maxValue)\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('update:modelValue', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n const step = parseFloat(this.step)\n return step > 0 ? step : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$slots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n if (parsed > this.internalValue) {\n this.$emit('update:modelValue', parsed)\n }\n },\n max (val) {\n const parsed = parseFloat(val)\n if (parsed < this.internalValue) {\n this.$emit('update:modelValue', parsed)\n }\n },\n modelValue: {\n handler (v: number) {\n // Use the setter to ensure proper rounding and validation\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNode[] {\n const children: VNode[] = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return withDirectives(h('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n onClick: this.onSliderClick,\n onMousedown: this.onSliderMouseDown,\n onTouchstart: this.onSliderMouseDown,\n }, this.genChildren()), [\n [ClickOutside, this.onBlur],\n ])\n },\n genChildren (): VNode[] {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return h('input', {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n h('div', this.setBackgroundColor(this.computedTrackColor, {\n class: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n h('div', this.setBackgroundColor(this.computedTrackFillColor, {\n class: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return h('div', {\n class: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(h('div', {\n class: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return h('span', {\n key: index,\n class: ['v-slider__tick', {\n 'v-slider__tick--filled': filled,\n }],\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return h('div', {\n class: ['v-slider__ticks-container', {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n }],\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return h('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n class: ['v-slider__thumb-container', {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n }],\n style: this.getThumbContainerStyles(valueWidth),\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n onFocus,\n onBlur,\n onKeydown: this.onKeyDown,\n }), children)\n },\n genThumbLabelContent (value: number | string): any {\n return this.$slots['thumb-label']\n ? this.$slots['thumb-label']!({ value })\n : [h('span', [String(value)])]\n },\n genThumbLabel (content: any): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return h(VScaleTransition, {\n origin: 'bottom center',\n }, [\n withDirectives(h('div', {\n class: 'v-slider__thumb-label-container',\n }, [\n h('div', this.setBackgroundColor(this.computedThumbColor, {\n class: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [h('div', content)]),\n ]), [\n [vShow, this.isFocused || this.isActive || this.thumbLabel === 'always'],\n ]),\n ])\n },\n genThumb (): VNode {\n return h('div', this.setBackgroundColor(this.computedThumbColor, {\n class: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('update:modelValue', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('update:modelValue', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('update:modelValue', this.internalValue)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
|
|
@@ -132,7 +132,7 @@ var _default = (0, _mixins.default)(_colorable.default, _delayable.default, _dep
|
|
|
132
132
|
var _this = this;
|
|
133
133
|
|
|
134
134
|
this.$nextTick(function () {
|
|
135
|
-
_this.
|
|
135
|
+
_this.modelValue && _this.callActivate();
|
|
136
136
|
});
|
|
137
137
|
},
|
|
138
138
|
mounted: function mounted() {
|
|
@@ -196,16 +196,12 @@ var _default = (0, _mixins.default)(_colorable.default, _delayable.default, _dep
|
|
|
196
196
|
genContent: function genContent() {
|
|
197
197
|
var _ref;
|
|
198
198
|
|
|
199
|
-
return (0, _vue.h)('div', this.setBackgroundColor(this.color, {
|
|
199
|
+
return (0, _vue.withDirectives)((0, _vue.h)('div', this.setBackgroundColor(this.color, {
|
|
200
200
|
class: ['v-tooltip__content', (_ref = {}, _defineProperty(_ref, this.contentClass, true), _defineProperty(_ref, "menuable__content__active", this.isActive), _defineProperty(_ref, 'v-tooltip__content--fixed', this.activatorFixed), _ref)],
|
|
201
201
|
style: this.styles,
|
|
202
202
|
attrs: this.getScopeIdAttrs(),
|
|
203
|
-
directives: [{
|
|
204
|
-
name: 'show',
|
|
205
|
-
value: this.isContentActive
|
|
206
|
-
}],
|
|
207
203
|
ref: 'content'
|
|
208
|
-
}), this.getContentSlot());
|
|
204
|
+
}), this.getContentSlot()), [[_vue.vShow, this.isContentActive]]);
|
|
209
205
|
}
|
|
210
206
|
},
|
|
211
207
|
render: function render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VTooltip/VTooltip.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition} from 'vue'\nimport './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n openOnFocus: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n if (this.attach === false) top += this.pageYOffset\n\n return `${this.calcYOverflow(top)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '<template #activator=\"data\"><v-btn v-on=\"data.on>'`, this)\n }\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(this.startTransition)\n },\n deactivate () {\n this.runDelay('close')\n },\n genActivatorListeners () {\n const listeners = Activatable.methods.genActivatorListeners.call(this)\n\n if (this.openOnFocus) {\n listeners.focus = (e: Event) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.blur = (e: Event) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n }\n\n listeners.keydown = (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.esc) {\n this.getActivator(e)\n this.runDelay('close')\n }\n }\n\n return listeners\n },\n genActivatorAttributes () {\n return {\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genTransition () {\n const content = this.genContent()\n\n if (!this.computedTransition) return content\n\n return h(Transition, {\n name: this.computedTransition,\n }, [content])\n },\n genContent () {\n return h(\n 'div',\n this.setBackgroundColor(this.color, {\n class: ['v-tooltip__content', {\n [this.contentClass]: true,\n menuable__content__active: this.isActive,\n 'v-tooltip__content--fixed': this.activatorFixed,\n }],\n style: this.styles,\n attrs: this.getScopeIdAttrs(),\n directives: [{\n name: 'show',\n value: this.isContentActive,\n }],\n ref: 'content',\n }),\n this.getContentSlot()\n )\n },\n },\n\n render (): VNode {\n return h(this.tag, {\n class: ['v-tooltip', this.classes],\n }, [\n this.showLazyContent(() => [this.genTransition()]),\n this.genActivator(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VTooltip.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VTooltip/VTooltip.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, Transition, vShow, withDirectives, VNode } from 'vue'\nimport './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n openOnFocus: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n if (this.attach === false) top += this.pageYOffset\n\n return `${this.calcYOverflow(top)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.modelValue && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '<template #activator=\"data\"><v-btn v-on=\"data.on>'`, this)\n }\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(this.startTransition)\n },\n deactivate () {\n this.runDelay('close')\n },\n genActivatorListeners () {\n const listeners = Activatable.methods.genActivatorListeners.call(this)\n\n if (this.openOnFocus) {\n listeners.focus = (e: Event) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.blur = (e: Event) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n }\n\n listeners.keydown = (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.esc) {\n this.getActivator(e)\n this.runDelay('close')\n }\n }\n\n return listeners\n },\n genActivatorAttributes () {\n return {\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genTransition () {\n const content = this.genContent()\n\n if (!this.computedTransition) return content\n\n return h(Transition, {\n name: this.computedTransition,\n }, [content])\n },\n genContent () {\n return withDirectives(\n h(\n 'div',\n this.setBackgroundColor(this.color, {\n class: ['v-tooltip__content', {\n [this.contentClass]: true,\n menuable__content__active: this.isActive,\n 'v-tooltip__content--fixed': this.activatorFixed,\n }],\n style: this.styles,\n attrs: this.getScopeIdAttrs(),\n ref: 'content',\n }),\n this.getContentSlot()\n ),\n [\n [vShow, this.isContentActive]\n ]\n )\n },\n },\n\n render (): VNode {\n return h(this.tag, {\n class: ['v-tooltip', this.classes],\n }, [\n this.showLazyContent(() => [this.genTransition()]),\n this.genActivator(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VTooltip.js"}
|
package/es5/framework.js
CHANGED
|
@@ -79,7 +79,7 @@ var Vuetify = /*#__PURE__*/function () {
|
|
|
79
79
|
exports.default = Vuetify;
|
|
80
80
|
Vuetify.install = _install.install;
|
|
81
81
|
Vuetify.installed = false;
|
|
82
|
-
Vuetify.version = "2.7.2-
|
|
82
|
+
Vuetify.version = "2.7.2-alpha25";
|
|
83
83
|
Vuetify.config = {
|
|
84
84
|
silent: false
|
|
85
85
|
};
|
|
@@ -7,24 +7,20 @@ import VProgressCircular from '../VProgressCircular'; // Mixins
|
|
|
7
7
|
|
|
8
8
|
import { factory as GroupableFactory } from '../../mixins/groupable';
|
|
9
9
|
import { factory as ToggleableFactory } from '../../mixins/toggleable';
|
|
10
|
-
import Elevatable from '../../mixins/elevatable';
|
|
11
10
|
import Positionable from '../../mixins/positionable';
|
|
12
11
|
import Routable from '../../mixins/routable';
|
|
13
12
|
import Sizeable from '../../mixins/sizeable'; // Utilities
|
|
14
13
|
|
|
15
14
|
import mixins from '../../util/mixins';
|
|
16
15
|
import { breaking } from '../../util/console';
|
|
17
|
-
import { getSlot } from '../../util/helpers';
|
|
18
|
-
import mergeData from '../../util/mergeData'; // Types
|
|
16
|
+
import { getSlot } from '../../util/helpers'; // Types
|
|
19
17
|
|
|
20
|
-
import { withDirectives } from 'vue';
|
|
21
|
-
import { h } from 'vue';
|
|
18
|
+
import { withDirectives, h } from 'vue';
|
|
22
19
|
const baseMixins = mixins(VSheet, Routable, Positionable, Sizeable, GroupableFactory('btnToggle'), ToggleableFactory('inputValue')
|
|
23
20
|
/* @vue/component */
|
|
24
21
|
);
|
|
25
22
|
export default baseMixins.extend({
|
|
26
23
|
name: 'v-btn',
|
|
27
|
-
inheritAttrs: false,
|
|
28
24
|
props: {
|
|
29
25
|
activeClass: {
|
|
30
26
|
type: String
|
|
@@ -87,7 +83,7 @@ export default baseMixins.extend({
|
|
|
87
83
|
|
|
88
84
|
computedElevation() {
|
|
89
85
|
if (this.disabled) return undefined;
|
|
90
|
-
return
|
|
86
|
+
return this.elevation;
|
|
91
87
|
},
|
|
92
88
|
|
|
93
89
|
computedRipple() {
|
|
@@ -161,22 +157,25 @@ export default baseMixins.extend({
|
|
|
161
157
|
data: linkData,
|
|
162
158
|
directives
|
|
163
159
|
} = this.generateRouteLink();
|
|
164
|
-
const setColor = this.hasBg ? this.setBackgroundColor : this.setTextColor;
|
|
165
|
-
|
|
160
|
+
const setColor = this.hasBg ? this.setBackgroundColor : this.setTextColor; // Merge component classes with routable classes
|
|
161
|
+
|
|
162
|
+
const mergedClasses = { ...this.classes,
|
|
163
|
+
...linkData.class
|
|
164
|
+
};
|
|
166
165
|
|
|
167
166
|
if (tag === 'button') {
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
linkData.type = this.type;
|
|
168
|
+
linkData.disabled = this.disabled;
|
|
170
169
|
}
|
|
171
170
|
|
|
172
|
-
|
|
173
|
-
data = { ...
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return withDirectives(h(tag,
|
|
171
|
+
linkData.value = ['string', 'number'].includes(typeof this.value) ? this.value : JSON.stringify(this.value);
|
|
172
|
+
const data = { ...linkData,
|
|
173
|
+
class: mergedClasses,
|
|
174
|
+
style: this.styles
|
|
175
|
+
}; // Apply color styling but preserve Vue's automatic attribute inheritance
|
|
176
|
+
|
|
177
|
+
const finalData = this.disabled ? data : setColor(this.color, data);
|
|
178
|
+
return withDirectives(h(tag, finalData, children), directives);
|
|
180
179
|
}
|
|
181
180
|
|
|
182
181
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VBtn/VBtn.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, withDirectives } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\nimport {h} from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend({\n name: 'v-btn',\n inheritAttrs: false,\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType<any>,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return h('span', {\n class: 'v-btn__content',\n }, getSlot(this))\n },\n genLoader (): VNode {\n return h('span', {\n class: 'v-btn__loader',\n }, getSlot(this, 'loader') || [h(VProgressCircular, {\n indeterminate: true,\n size: 23,\n width: 2\n })])\n },\n },\n\n render (): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data: linkData, directives } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n let data = {}\n\n if (tag === 'button') {\n data.type = this.type\n data.disabled = this.disabled\n }\n data.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n data = {\n ...data,\n ...linkData\n }\n\n data = mergeData(data, { class: this.$attrs.class })\n\n return withDirectives(\n h(tag, this.disabled ? data : setColor(this.color, data), children),\n directives\n )\n },\n})\n"],"sourceRoot":"","file":"VBtn.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VBtn/VBtn.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, withDirectives, h } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend({\n name: 'v-btn',\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType<any>,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return this.elevation\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return h('span', {\n class: 'v-btn__content',\n }, getSlot(this))\n },\n genLoader (): VNode {\n return h('span', {\n class: 'v-btn__loader',\n }, getSlot(this, 'loader') || [h(VProgressCircular, {\n indeterminate: true,\n size: 23,\n width: 2,\n })])\n },\n },\n\n render (): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data: linkData, directives } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n // Merge component classes with routable classes\n const mergedClasses = {\n ...this.classes,\n ...linkData.class,\n }\n\n if (tag === 'button') {\n linkData.type = this.type\n linkData.disabled = this.disabled\n }\n linkData.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n const data = {\n ...linkData,\n class: mergedClasses,\n style: this.styles,\n }\n\n // Apply color styling but preserve Vue's automatic attribute inheritance\n const finalData = this.disabled ? data : setColor(this.color, data)\n\n return withDirectives(\n h(tag, finalData, children),\n directives\n )\n },\n})\n"],"sourceRoot":"","file":"VBtn.js"}
|