@dimailn/vuetify 2.7.2-alpha33 → 2.7.2-alpha35

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.
@@ -17,6 +17,9 @@ export default mixins(BaseSlideGroup, SSRBootable, Themeable
17
17
  };
18
18
  },
19
19
 
20
+ props: {
21
+ allowDeselect: Boolean
22
+ },
20
23
  computed: {
21
24
  classes() {
22
25
  return { ...BaseSlideGroup.computed.classes.call(this),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTabs/VTabsBar.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,QAAyB,KAAzB,C,CACA;;AACA,SAAS,cAAT,QAA+B,4BAA/B,C,CAKA;;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,WAAP,MAAwB,2BAAxB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AAOA,eAAe,MAAM,CACnB,cADmB,EAEnB,WAFmB,EAGnB;AACA;AAJmB,CAAN,CAKb,MALa,CAKN;AACP,EAAA,IAAI,EAAE,YADC;;AAGP,EAAA,OAAO,GAAA;AACL,WAAO;AACL,MAAA,OAAO,EAAE;AADJ,KAAP;AAGD,GAPM;;AASP,EAAA,QAAQ,EAAE;AACR,IAAA,OAAO,GAAA;AACL,aAAO,EACL,GAAG,cAAc,CAAC,QAAf,CAAwB,OAAxB,CAAgC,IAAhC,CAAqC,IAArC,CADE;AAEL,sBAAc,IAFT;AAGL,iCAAyB,KAAK,QAHzB;AAIL;AACA,mCAA2B,KAAK,UAL3B;AAML,WAAG,KAAK;AANH,OAAP;AAQD;;AAVO,GATH;AAsBP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE,YADF;AAEL,IAAA,aAAa,EAAE,YAFV;AAGL,IAAA,MAAM,EAAE;AAHH,GAtBA;AA4BP,EAAA,OAAO,EAAE;AACP,IAAA,UAAU,GAAA;AACR,UAAI,CAAC,KAAK,QAAV,EAAoB;AAEpB,WAAK,KAAL,CAAW,aAAX;AACD,KALM;;AAMP,IAAA,UAAU,GAAA;AACR,YAAM,MAAM,GAAG,cAAc,CAAC,OAAf,CAAuB,UAAvB,CAAkC,IAAlC,CAAuC,IAAvC,CAAf;AAEA,MAAA,MAAM,CAAC,KAAP,CAAa,KAAb,IAAsB,sBAAtB;AAEA,aAAO,MAAP;AACD,KAZM;;AAaP,IAAA,aAAa,CACX,GADW,EAEX,MAFW,EAEoB;AAE/B;AACA,UAAI,KAAK,SAAT,EAAoB;AAEpB,YAAM,KAAK,GAAI,KAAK,KAApB;AACA,YAAM,OAAO,GAAG,GAAG,CAAC,IAApB;AACA,YAAM,OAAO,GAAG,MAAM,CAAC,IAAvB;AAEA,UAAI,MAAM,GAAG,KAAb;AACA,UAAI,MAAM,GAAG,KAAb;;AAEA,WAAK,MAAM,IAAX,IAAmB,KAAnB,EAA0B;AACxB,YAAI,IAAI,CAAC,EAAL,KAAY,OAAhB,EAAyB,MAAM,GAAG,IAAT,CAAzB,KACK,IAAI,IAAI,CAAC,EAAL,KAAY,OAAhB,EAAyB,MAAM,GAAG,IAAT;AAE9B,YAAI,MAAM,IAAI,MAAd,EAAsB;AACvB,OAjB8B,CAmB/B;AACA;AACA;;;AACA,UAAI,CAAC,MAAD,IAAW,MAAf,EAAuB,KAAK,aAAL,GAAqB,SAArB;AACxB;;AAtCM,GA5BF;;AAqEP,EAAA,MAAM,GAAA;AACJ,UAAM,MAAM,GAAG,cAAc,CAAC,MAAf,CAAsB,IAAtB,CAA2B,IAA3B,EAAiC,CAAjC,CAAf;AAEA,IAAA,MAAM,CAAC,IAAP,GAAc,SAAd;AAEA,WAAO,MAAP;AACD;;AA3EM,CALM,CAAf","sourcesContent":["import { h, VNode } from 'vue'\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { RouteLocationNormalized } from 'vue-router'\n\ntype VTabInstance = InstanceType<typeof VTab>\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.methods.genContent.call(this)\n\n render.props.class += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (\n val: RouteLocationNormalized,\n oldVal: RouteLocationNormalized\n ) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = (this.items as unknown) as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (): VNode {\n const render = BaseSlideGroup.render.call(this, h)\n\n render.role = 'tablist'\n\n return render\n },\n})\n"],"sourceRoot":"","file":"VTabsBar.js"}
1
+ {"version":3,"sources":["../../../src/components/VTabs/VTabsBar.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,QAAyB,KAAzB,C,CACA;;AACA,SAAS,cAAT,QAA+B,4BAA/B,C,CAKA;;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,WAAP,MAAwB,2BAAxB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AAOA,eAAe,MAAM,CACnB,cADmB,EAEnB,WAFmB,EAGnB;AACA;AAJmB,CAAN,CAKb,MALa,CAKN;AACP,EAAA,IAAI,EAAE,YADC;;AAGP,EAAA,OAAO,GAAA;AACL,WAAO;AACL,MAAA,OAAO,EAAE;AADJ,KAAP;AAGD,GAPM;;AASP,EAAA,KAAK,EAAE;AACL,IAAA,aAAa,EAAE;AADV,GATA;AAaP,EAAA,QAAQ,EAAE;AACR,IAAA,OAAO,GAAA;AACL,aAAO,EACL,GAAG,cAAc,CAAC,QAAf,CAAwB,OAAxB,CAAgC,IAAhC,CAAqC,IAArC,CADE;AAEL,sBAAc,IAFT;AAGL,iCAAyB,KAAK,QAHzB;AAIL;AACA,mCAA2B,KAAK,UAL3B;AAML,WAAG,KAAK;AANH,OAAP;AAQD;;AAVO,GAbH;AA0BP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE,YADF;AAEL,IAAA,aAAa,EAAE,YAFV;AAGL,IAAA,MAAM,EAAE;AAHH,GA1BA;AAgCP,EAAA,OAAO,EAAE;AACP,IAAA,UAAU,GAAA;AACR,UAAI,CAAC,KAAK,QAAV,EAAoB;AAEpB,WAAK,KAAL,CAAW,aAAX;AACD,KALM;;AAMP,IAAA,UAAU,GAAA;AACR,YAAM,MAAM,GAAG,cAAc,CAAC,OAAf,CAAuB,UAAvB,CAAkC,IAAlC,CAAuC,IAAvC,CAAf;AAEA,MAAA,MAAM,CAAC,KAAP,CAAa,KAAb,IAAsB,sBAAtB;AAEA,aAAO,MAAP;AACD,KAZM;;AAaP,IAAA,aAAa,CACX,GADW,EAEX,MAFW,EAEoB;AAE/B;AACA,UAAI,KAAK,SAAT,EAAoB;AAEpB,YAAM,KAAK,GAAI,KAAK,KAApB;AACA,YAAM,OAAO,GAAG,GAAG,CAAC,IAApB;AACA,YAAM,OAAO,GAAG,MAAM,CAAC,IAAvB;AAEA,UAAI,MAAM,GAAG,KAAb;AACA,UAAI,MAAM,GAAG,KAAb;;AAEA,WAAK,MAAM,IAAX,IAAmB,KAAnB,EAA0B;AACxB,YAAI,IAAI,CAAC,EAAL,KAAY,OAAhB,EAAyB,MAAM,GAAG,IAAT,CAAzB,KACK,IAAI,IAAI,CAAC,EAAL,KAAY,OAAhB,EAAyB,MAAM,GAAG,IAAT;AAE9B,YAAI,MAAM,IAAI,MAAd,EAAsB;AACvB,OAjB8B,CAmB/B;AACA;AACA;;;AACA,UAAI,CAAC,MAAD,IAAW,MAAf,EAAuB,KAAK,aAAL,GAAqB,SAArB;AACxB;;AAtCM,GAhCF;;AAyEP,EAAA,MAAM,GAAA;AACJ,UAAM,MAAM,GAAG,cAAc,CAAC,MAAf,CAAsB,IAAtB,CAA2B,IAA3B,EAAiC,CAAjC,CAAf;AAEA,IAAA,MAAM,CAAC,IAAP,GAAc,SAAd;AAEA,WAAO,MAAP;AACD;;AA/EM,CALM,CAAf","sourcesContent":["import { h, VNode } from 'vue'\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { RouteLocationNormalized } from 'vue-router'\n\ntype VTabInstance = InstanceType<typeof VTab>\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n props: {\n allowDeselect: Boolean,\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.methods.genContent.call(this)\n\n render.props.class += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (\n val: RouteLocationNormalized,\n oldVal: RouteLocationNormalized\n ) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = (this.items as unknown) as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (): VNode {\n const render = BaseSlideGroup.render.call(this, h)\n\n render.role = 'tablist'\n\n return render\n },\n})\n"],"sourceRoot":"","file":"VTabsBar.js"}
@@ -57,7 +57,7 @@ export default baseMixins.extend({
57
57
  default: 'text'
58
58
  }
59
59
  },
60
- emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear'],
60
+ emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear', 'click'],
61
61
  data: () => ({
62
62
  badInput: false,
63
63
  labelWidth: 0,
@@ -328,7 +328,7 @@ export default baseMixins.extend({
328
328
  genLabel() {
329
329
  if (!this.showLabel) return null;
330
330
  const data = {
331
- ref: "label",
331
+ ref: 'label',
332
332
  absolute: true,
333
333
  color: this.validationState,
334
334
  dark: this.dark,
@@ -413,7 +413,8 @@ export default baseMixins.extend({
413
413
  e && this.$nextTick(() => this.$emit('blur', e));
414
414
  },
415
415
 
416
- onClick() {
416
+ onClick(e) {
417
+ this.$emit('click', e);
417
418
  if (this.isFocused || this.isDisabled || !this.$refs.input) return;
418
419
  this.$refs.input.focus();
419
420
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTextField/VTextField.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\nimport { withDirectives, h } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-text-field',\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear'],\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('update:modelValue', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n this.$emit('click:clear')\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner']() as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n h('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$slots.counter?.({ props }) ?? h(VCounter, props)\n },\n genControl () {\n return VInput.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return h('fieldset', {\n 'aria-hidden': true\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n ref: \"label\",\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue\n }\n\n return h(VLabel, data, () => getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = h('span', {\n innerHTML: '&#8203;',\n class: 'notranslate',\n })\n\n return h('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n const node = h('input', {\n style: {},\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n onBlur: this.onBlur,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onKeydown: this.onKeyDown,\n ...listeners,\n ref: 'input'\n })\n\n return withDirectives(node, [\n [\n resize,\n this.onResize,\n '',\n { quiet: true }\n ]\n ])\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return h('div', {\n class: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return h('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('update:modelValue', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs?.label?.$el\n ? Math.min(this.$refs?.label?.$el.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('update:modelValue', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n"],"sourceRoot":"","file":"VTextField.js"}
1
+ {"version":3,"sources":["../../../src/components/VTextField/VTextField.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\nimport { withDirectives, h } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-text-field',\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear', 'click'],\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('update:modelValue', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n this.$emit('click:clear')\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner']() as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n h('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$slots.counter?.({ props }) ?? h(VCounter, props)\n },\n genControl () {\n return VInput.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return h('fieldset', {\n 'aria-hidden': true,\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n ref: 'label',\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n }\n\n return h(VLabel, data, () => getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = h('span', {\n innerHTML: '&#8203;',\n class: 'notranslate',\n })\n\n return h('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n const node = h('input', {\n style: {},\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n onBlur: this.onBlur,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onKeydown: this.onKeyDown,\n ...listeners,\n ref: 'input',\n })\n\n return withDirectives(node, [\n [\n resize,\n this.onResize,\n '',\n { quiet: true },\n ],\n ])\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return h('div', {\n class: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return h('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('update:modelValue', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs?.label?.$el\n ? Math.min(this.$refs?.label?.$el.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('update:modelValue', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n"],"sourceRoot":"","file":"VTextField.js"}
package/lib/framework.js CHANGED
@@ -46,7 +46,7 @@ export default class Vuetify {
46
46
  }
47
47
  Vuetify.install = install;
48
48
  Vuetify.installed = false;
49
- Vuetify.version = "2.7.2-alpha33";
49
+ Vuetify.version = "2.7.2-alpha35";
50
50
  Vuetify.config = {
51
51
  silent: false
52
52
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dimailn/vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "2.7.2-alpha33",
4
+ "version": "2.7.2-alpha35",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -37,6 +37,10 @@ export const BaseItemGroup = mixins(
37
37
  type: String,
38
38
  default: 'v-item--active',
39
39
  },
40
+ allowDeselect: {
41
+ type: Boolean,
42
+ default: true,
43
+ },
40
44
  mandatory: Boolean,
41
45
  max: {
42
46
  type: [Number, String],
@@ -254,6 +258,7 @@ export const BaseItemGroup = mixins(
254
258
  const isSame = this.valueComparator(this.internalValue, value)
255
259
 
256
260
  if (this.mandatory && isSame) return
261
+ if (!this.allowDeselect && isSame) return
257
262
 
258
263
  this.internalValue = isSame ? undefined : value
259
264
  },
@@ -45,6 +45,10 @@ export default baseMixins.extend({
45
45
  default: '',
46
46
  },
47
47
  alignWithTitle: Boolean,
48
+ allowDeselect: {
49
+ type: Boolean,
50
+ default: false,
51
+ },
48
52
  backgroundColor: String,
49
53
  centerActive: Boolean,
50
54
  centered: Boolean,
@@ -216,6 +220,7 @@ export default baseMixins.extend({
216
220
  height: convertToUnit(this.height),
217
221
  },
218
222
  activeClass: this.activeClass,
223
+ allowDeselect: this.allowDeselect,
219
224
  centerActive: this.centerActive,
220
225
  dark: this.dark,
221
226
  light: this.light,
@@ -31,6 +31,10 @@ export default mixins(
31
31
  }
32
32
  },
33
33
 
34
+ props: {
35
+ allowDeselect: Boolean,
36
+ },
37
+
34
38
  computed: {
35
39
  classes () {
36
40
  return {
@@ -250,4 +250,69 @@ describe('VTabs.ts', () => {
250
250
  const emitted = wrapper.emitted('update:modelValue')
251
251
  expect(emitted).toBeFalsy() // Не должно быть эмиттов при инициализации
252
252
  })
253
+
254
+ it('should not close active tab when clicked (allowDeselect=false)', async () => {
255
+ const wrapper = mountFunction({
256
+ props: {
257
+ modelValue: 'first',
258
+ allowDeselect: false, // Запрещаем deselect
259
+ },
260
+ slots: {
261
+ default: () => [h('div', [
262
+ h(VTab, { tabValue: 'first' }, () => 'First Tab'),
263
+ h(VTab, { tabValue: 'second' }, () => 'Second Tab'),
264
+ ])],
265
+ },
266
+ })
267
+
268
+ await wrapper.vm.$nextTick()
269
+
270
+ // Проверяем, что первая вкладка активна
271
+ expect(wrapper.vm.internalValue).toBe('first')
272
+
273
+ // Кликаем по активной вкладке (первой)
274
+ const tabs = wrapper.findAllComponents({ name: 'v-tab' })
275
+ const firstTab = tabs[0] // Первая вкладка должна быть активной
276
+ await firstTab.trigger('click')
277
+
278
+ // Проверяем, что значение не изменилось (вкладка осталась активной)
279
+ expect(wrapper.vm.internalValue).toBe('first')
280
+
281
+ // Проверяем, что не было эмиттов update:modelValue
282
+ const emitted = wrapper.emitted('update:modelValue')
283
+ expect(emitted).toBeFalsy()
284
+ })
285
+
286
+ it('should not close active tab when clicked (mandatory=true)', async () => {
287
+ // Тест для проверки, что при mandatory=true активная вкладка не закрывается
288
+ const wrapper = mountFunction({
289
+ props: {
290
+ modelValue: 'first',
291
+ optional: false, // mandatory=true
292
+ },
293
+ slots: {
294
+ default: () => [h('div', [
295
+ h(VTab, { tabValue: 'first' }, () => 'First Tab'),
296
+ h(VTab, { tabValue: 'second' }, () => 'Second Tab'),
297
+ ])],
298
+ },
299
+ })
300
+
301
+ await wrapper.vm.$nextTick()
302
+
303
+ // Проверяем, что первая вкладка активна
304
+ expect(wrapper.vm.internalValue).toBe('first')
305
+
306
+ // Кликаем по активной вкладке (первой)
307
+ const tabs = wrapper.findAllComponents({ name: 'v-tab' })
308
+ const firstTab = tabs[0] // Первая вкладка должна быть активной
309
+ await firstTab.trigger('click')
310
+
311
+ // Проверяем, что значение не изменилось (вкладка осталась активной)
312
+ expect(wrapper.vm.internalValue).toBe('first')
313
+
314
+ // Проверяем, что не было эмиттов update:modelValue
315
+ const emitted = wrapper.emitted('update:modelValue')
316
+ expect(emitted).toBeFalsy()
317
+ })
253
318
  })
@@ -85,7 +85,7 @@ export default baseMixins.extend({
85
85
  },
86
86
  },
87
87
 
88
- emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear'],
88
+ emits: ['update:modelValue', 'blur', 'focus', 'keydown', 'click:clear', 'click'],
89
89
 
90
90
  data: () => ({
91
91
  badInput: false,
@@ -346,14 +346,14 @@ export default baseMixins.extend({
346
346
  if (!this.outlined) return null
347
347
 
348
348
  return h('fieldset', {
349
- 'aria-hidden': true
349
+ 'aria-hidden': true,
350
350
  }, [this.genLegend()])
351
351
  },
352
352
  genLabel () {
353
353
  if (!this.showLabel) return null
354
354
 
355
355
  const data = {
356
- ref: "label",
356
+ ref: 'label',
357
357
  absolute: true,
358
358
  color: this.validationState,
359
359
  dark: this.dark,
@@ -363,7 +363,7 @@ export default baseMixins.extend({
363
363
  left: this.labelPosition.left,
364
364
  light: this.light,
365
365
  right: this.labelPosition.right,
366
- value: this.labelValue
366
+ value: this.labelValue,
367
367
  }
368
368
 
369
369
  return h(VLabel, data, () => getSlot(this, 'label') || this.label)
@@ -401,7 +401,7 @@ export default baseMixins.extend({
401
401
  onFocus: this.onFocus,
402
402
  onKeydown: this.onKeyDown,
403
403
  ...listeners,
404
- ref: 'input'
404
+ ref: 'input',
405
405
  })
406
406
 
407
407
  return withDirectives(node, [
@@ -409,8 +409,8 @@ export default baseMixins.extend({
409
409
  resize,
410
410
  this.onResize,
411
411
  '',
412
- { quiet: true }
413
- ]
412
+ { quiet: true },
413
+ ],
414
414
  ])
415
415
  },
416
416
  genMessages () {
@@ -446,7 +446,8 @@ export default baseMixins.extend({
446
446
  this.isFocused = false
447
447
  e && this.$nextTick(() => this.$emit('blur', e))
448
448
  },
449
- onClick () {
449
+ onClick (e: MouseEvent) {
450
+ this.$emit('click', e)
450
451
  if (this.isFocused || this.isDisabled || !this.$refs.input) return
451
452
 
452
453
  this.$refs.input.focus()