diff --git a/packages/vuetify/src/components/VDialog/VDialog.ts b/packages/vuetify/src/components/VDialog/VDialog.ts index 1e4bcb5b3d9..75be3e9873a 100644 --- a/packages/vuetify/src/components/VDialog/VDialog.ts +++ b/packages/vuetify/src/components/VDialog/VDialog.ts @@ -17,7 +17,7 @@ import Toggleable from '../../mixins/toggleable' import ClickOutside from '../../directives/click-outside' // Helpers -import mixins, { ExtractVue } from '../../util/mixins' +import mixins from '../../util/mixins' import { removed } from '../../util/console' import { convertToUnit, @@ -37,15 +37,8 @@ const baseMixins = mixins( Toggleable ) -interface options extends ExtractVue { - $refs: { - dialog: HTMLElement - content: HTMLElement - } -} - /* @vue/component */ -export default baseMixins.extend().extend({ +export default baseMixins.extend({ name: 'v-dialog', directives: { ClickOutside }, @@ -188,9 +181,9 @@ export default baseMixins.extend().extend({ // Double nextTick to wait for lazy content to be generated this.$nextTick(() => { this.$nextTick(() => { - if (!this.$refs.dialog.contains(document.activeElement)) { + if (!this.$refs.dialog?.contains(document.activeElement)) { this.previousActiveElement = document.activeElement as HTMLElement - this.$refs.dialog.focus() + this.$refs.dialog?.focus() } this.bind() }) @@ -232,6 +225,7 @@ export default baseMixins.extend().extend({ if ( !!target && + this.$refs.dialog && // It isn't the document or the dialog body ![document, this.$refs.dialog].includes(target) && // It isn't inside the dialog body diff --git a/packages/vuetify/src/mixins/dependent/index.ts b/packages/vuetify/src/mixins/dependent/index.ts index 2e9c6d9c488..89f1ca27e9c 100644 --- a/packages/vuetify/src/mixins/dependent/index.ts +++ b/packages/vuetify/src/mixins/dependent/index.ts @@ -3,10 +3,10 @@ import Vue from 'vue' import mixins from '../../util/mixins' import { VOverlay } from '../../components/VOverlay' -interface options extends Vue { +interface options { $el: HTMLElement $refs: { - content: HTMLElement + content?: HTMLElement } overlay?: InstanceType } @@ -31,7 +31,7 @@ function searchChildren (children: Vue[]): DependentInstance[] { } /* @vue/component */ -export default mixins().extend({ +export default mixins().extend({ name: 'dependent', data () { diff --git a/packages/vuetify/src/mixins/detachable/index.ts b/packages/vuetify/src/mixins/detachable/index.ts index 151145488fb..9f64fbce908 100644 --- a/packages/vuetify/src/mixins/detachable/index.ts +++ b/packages/vuetify/src/mixins/detachable/index.ts @@ -7,13 +7,13 @@ import mixins, { ExtractVue } from '../../util/mixins' import { consoleWarn } from '../../util/console' // Types -import Vue, { PropOptions } from 'vue' +import { PropOptions } from 'vue' import { VNode } from 'vue/types' -interface options extends Vue { +interface options { $el: HTMLElement $refs: { - content: HTMLElement + content?: HTMLElement } }