diff --git a/packages/design-system/docs/components/tokens/_HighlightedText.vue b/packages/design-system/docs/components/tokens/_HighlightedText.vue index a7323611075..70308dbf2b9 100644 --- a/packages/design-system/docs/components/tokens/_HighlightedText.vue +++ b/packages/design-system/docs/components/tokens/_HighlightedText.vue @@ -2,7 +2,8 @@ diff --git a/packages/design-system/src/components/OcDrop/OcDrop.vue b/packages/design-system/src/components/OcDrop/OcDrop.vue index 47c77a7975f..fed9b038403 100644 --- a/packages/design-system/src/components/OcDrop/OcDrop.vue +++ b/packages/design-system/src/components/OcDrop/OcDrop.vue @@ -144,7 +144,7 @@ export default defineComponent({ this.tippy.setProps({ trigger: this.triggerMapping }) } }, - beforeDestroy() { + beforeUnmount() { destroy(this.tippy) }, mounted() { diff --git a/packages/design-system/src/components/OcSelect/OcSelect.vue b/packages/design-system/src/components/OcSelect/OcSelect.vue index 85509720aca..0605fb29543 100644 --- a/packages/design-system/src/components/OcSelect/OcSelect.vue +++ b/packages/design-system/src/components/OcSelect/OcSelect.vue @@ -16,7 +16,7 @@ -
No options available.
+ diff --git a/packages/design-system/src/components/OcTable/OcTable.vue b/packages/design-system/src/components/OcTable/OcTable.vue index 67565c0c33a..74b1e9c0f38 100644 --- a/packages/design-system/src/components/OcTable/OcTable.vue +++ b/packages/design-system/src/components/OcTable/OcTable.vue @@ -53,7 +53,7 @@ @contextmenu=" $emit(constants.EVENT_TROW_CONTEXTMENU, $refs[`row-${trIndex}`][0], $event, item) " - @hook:mounted="$emit(constants.EVENT_TROW_MOUNTED, item, $refs[`row-${trIndex}`][0])" + @vue:mounted="$emit(constants.EVENT_TROW_MOUNTED, item, $refs[`row-${trIndex}`][0])" @dragstart="dragStart(item, $event)" @drop="dropRowEvent(itemDomSelector(item), $event)" @dragenter.prevent="dropRowStyling(itemDomSelector(item), false, $event)" @@ -251,7 +251,13 @@ export default defineComponent({ default: false } }, - emits: [EVENT_THEAD_CLICKED, EVENT_TROW_CLICKED, EVENT_TROW_MOUNTED, EVENT_TROW_CONTEXTMENU], + emits: [ + EVENT_ITEM_DROPPED, + EVENT_THEAD_CLICKED, + EVENT_TROW_CLICKED, + EVENT_TROW_MOUNTED, + EVENT_TROW_CONTEXTMENU + ], data() { return { constants: { diff --git a/packages/design-system/src/components/OcTextInput/OcTextInput.vue b/packages/design-system/src/components/OcTextInput/OcTextInput.vue index b99f6adf8f5..666c024db80 100644 --- a/packages/design-system/src/components/OcTextInput/OcTextInput.vue +++ b/packages/design-system/src/components/OcTextInput/OcTextInput.vue @@ -15,7 +15,6 @@ :type="type" :value="displayValue" :disabled="disabled" - v-on="listeners" @change="onChange($event.target.value)" @input="onInput($event.target.value)" @focus="onFocus($event.target)" @@ -185,12 +184,6 @@ export default { !!this.descriptionMessage ) }, - listeners() { - // Exclude listeners for events which are handled via methods in this component - // eslint-disable-next-line no-unused-vars - const { change, input, focus, ...listeners } = this.$listeners - return listeners - }, messageId() { return `${this.id}-message` }, @@ -203,7 +196,11 @@ export default { if (this.defaultValue) { additionalAttrs['placeholder'] = this.defaultValue } - return { ...this.$attrs, ...additionalAttrs } + // Exclude listeners for events which are handled via methods in this component + // eslint-disable-next-line no-unused-vars + const { change, input, focus, ...attrs } = this.$attrs + + return { ...attrs, ...additionalAttrs } }, ariaInvalid() { return (!!this.errorMessage).toString() diff --git a/packages/design-system/src/directives/OcTooltip.js b/packages/design-system/src/directives/OcTooltip.ts similarity index 88% rename from packages/design-system/src/directives/OcTooltip.js rename to packages/design-system/src/directives/OcTooltip.ts index 05392aefb73..ddce940f63a 100644 --- a/packages/design-system/src/directives/OcTooltip.js +++ b/packages/design-system/src/directives/OcTooltip.ts @@ -47,7 +47,7 @@ export const destroy = (_tippy) => { } } -const initOrUpdate = (el, { value = {} }, { elm }) => { +const initOrUpdate = (el, { value = {} }: any, { elm }) => { if (Object.prototype.toString.call(value) !== '[object Object]') { value = { content: value } } @@ -82,7 +82,7 @@ const initOrUpdate = (el, { value = {} }, { elm }) => { export default { name: 'OcTooltip', - bind: initOrUpdate, - componentUpdated: initOrUpdate, - unbind: (el, binding, { elm }) => destroy(elm.tooltip) + beforeMount: initOrUpdate, + updated: initOrUpdate, + unmounted: (el, binding, { elm }) => destroy(elm.tooltip) } diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js index 4c8269b1d24..53889ee8060 100644 --- a/packages/eslint-config/index.js +++ b/packages/eslint-config/index.js @@ -4,7 +4,11 @@ module.exports = { es6: true, amd: true }, - extends: ['plugin:vue/recommended', 'plugin:prettier-vue/recommended', 'plugin:jest/recommended'], + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:prettier-vue/recommended', + 'plugin:jest/recommended' + ], parser: 'vue-eslint-parser', parserOptions: { parser: { @@ -25,7 +29,10 @@ module.exports = { 'node/no-callback-literal': 'off', 'unused-imports/no-unused-imports': 'error', 'nonblock-statement-body-position': ['error', 'below'], - curly: 'error' + curly: 'error', + + // Vue 3 rules: (need to be fixed, but can be done incrementally) + 'vue/no-deprecated-events-api': 'warn' }, globals: { require: false, diff --git a/packages/web-app-admin-settings/src/components/Spaces/SpacesList.vue b/packages/web-app-admin-settings/src/components/Spaces/SpacesList.vue index 743972c93f5..48aed6a0b9b 100644 --- a/packages/web-app-admin-settings/src/components/Spaces/SpacesList.vue +++ b/packages/web-app-admin-settings/src/components/Spaces/SpacesList.vue @@ -40,7 +40,7 @@ :label="getSelectSpaceLabel(item)" hide-label @input="$emit('toggleSelectSpace', item)" - @click.native.stop + @click.stop />