Skip to content

Commit 0e3ff59

Browse files
committed
implement addClassStyleAttrs on roots
1 parent 68def3d commit 0e3ff59

File tree

14 files changed

+59
-38
lines changed

14 files changed

+59
-38
lines changed

packages/dialtone-vue3/common/utils/index.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export const returnFirstEl = (el) => {
222222
}
223223
};
224224

225-
/*
225+
/**
226226
Only will apply changes if the config option configVue2StyleClassAttrs is set to true. It is false by default.
227227
228228
Removes the class and style attributes from the $attrs. This is useful for vue 2 to vue 3 migration
@@ -242,6 +242,19 @@ export function removeClassStyleAttrs (attrs) {
242242
return Object.fromEntries(listeners);
243243
}
244244

245+
/**
246+
This should be applied to the root element on components using inheritAttrs: false.
247+
This will add the class and style attributes back to the root element if configVue2StyleClassAttrs
248+
is enabled.
249+
*/
250+
export function addClassStyleAttrs (attrs) {
251+
if (!configVue2StyleClassAttrs) return {};
252+
return {
253+
class: attrs.class,
254+
style: attrs.style,
255+
};
256+
}
257+
245258
/*
246259
* Set's a global timer to debounce the execution of a function.
247260
* @param { object } func - the function that is going to be called after timeout
@@ -497,6 +510,7 @@ export default {
497510
kebabCaseToPascalCase,
498511
extractVueListeners,
499512
removeClassStyleAttrs,
513+
addClassStyleAttrs,
500514
returnFirstEl,
501515
debounce,
502516
isOutOfViewPort,

packages/dialtone-vue3/components/breadcrumbs/breadcrumb_item.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
<li
33
data-qa="dt-breadcrumb-item"
44
:class="[
5-
$attrs.class,
65
'd-breadcrumbs__item',
76
{ [BREADCRUMB_ITEM_SELECTED_MODIFIER]: selected },
87
]"
9-
:style="$attrs.style"
8+
v-bind="addClassStyleAttrs($attrs)"
109
>
1110
<dt-link
1211
:kind="linkKind"
@@ -25,7 +24,7 @@
2524

2625
<script>
2726
import { BREADCRUMB_ITEM_SELECTED_MODIFIER } from './breadcrumbs_constants';
28-
import { removeClassStyleAttrs } from '@/common/utils';
27+
import { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';
2928
import { DtLink } from '../link';
3029
import { MUTED } from '../link/link_constants';
3130
@@ -87,6 +86,7 @@ export default {
8786
8887
methods: {
8988
removeClassStyleAttrs,
89+
addClassStyleAttrs,
9090
},
9191
};
9292
</script>

packages/dialtone-vue3/components/checkbox/checkbox.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<div
3-
:class="$attrs.class"
4-
:style="$attrs.style"
3+
v-bind="addClassStyleAttrs($attrs)"
54
>
65
<label>
76
<div :class="['d-checkbox-group', { 'd-checkbox-group--disabled': internalDisabled }]">
@@ -62,7 +61,7 @@ import {
6261
GroupableMixin,
6362
MessagesMixin,
6463
} from '@/common/mixins/input';
65-
import { removeClassStyleAttrs } from '@/common/utils';
64+
import { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';
6665
import { CHECKBOX_INPUT_VALIDATION_CLASSES } from './checkbox_constants';
6766
import { DtValidationMessages } from '../validation_messages';
6867
@@ -161,6 +160,7 @@ export default {
161160
162161
methods: {
163162
removeClassStyleAttrs,
163+
addClassStyleAttrs,
164164
165165
emitValue (target) {
166166
let { value, checked } = target;

packages/dialtone-vue3/components/input/input.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<template>
22
<div
33
ref="container"
4-
:class="[$attrs.class, 'd-input__root', { 'd-input--hidden': hidden }]"
5-
:style="$attrs.style"
4+
:class="['d-input__root', { 'd-input--hidden': hidden }]"
5+
v-bind="addClassStyleAttrs($attrs)"
66
data-qa="dt-input"
77
>
88
<label
@@ -133,6 +133,7 @@ import {
133133
getValidationState,
134134
hasSlotContent,
135135
removeClassStyleAttrs,
136+
addClassStyleAttrs,
136137
} from '@/common/utils';
137138
import { DtValidationMessages } from '@/components/validation_messages';
138139
import { MessagesMixin } from '@/common/mixins/input';
@@ -534,6 +535,7 @@ export default {
534535
535536
methods: {
536537
removeClassStyleAttrs,
538+
addClassStyleAttrs,
537539
inputClasses () {
538540
return [
539541
'd-input__input',

packages/dialtone-vue3/components/radio/radio.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<div
3-
:class="$attrs.class"
4-
:style="$attrs.style"
3+
v-bind="addClassStyleAttrs($attrs)"
54
>
65
<label>
76
<div :class="['d-radio-group', { 'd-radio-group--disabled': internalDisabled }]">
@@ -60,7 +59,7 @@ import {
6059
} from '@/common/mixins/input';
6160
import { RADIO_INPUT_VALIDATION_CLASSES } from './radio_constants';
6261
import { DtValidationMessages } from '../validation_messages';
63-
import { hasSlotContent, removeClassStyleAttrs } from '@/common/utils';
62+
import { hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';
6463
6564
/**
6665
* Radios are control elements that allow the user to make a single selection.
@@ -173,6 +172,7 @@ export default {
173172
174173
methods: {
175174
removeClassStyleAttrs,
175+
addClassStyleAttrs,
176176
emitValue (value) {
177177
if (value !== this.radioGroupValue) {
178178
// update provided value if injected

packages/dialtone-vue3/components/select_menu/select_menu.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<div
3-
:class="$attrs.class"
4-
:style="$attrs.style"
3+
v-bind="addClassStyleAttrs($attrs)"
54
>
65
<label>
76
<div
@@ -92,6 +91,7 @@ import {
9291
getValidationState,
9392
hasSlotContent,
9493
removeClassStyleAttrs,
94+
addClassStyleAttrs,
9595
} from '@/common/utils';
9696
import { MessagesMixin } from '@/common/mixins/input';
9797
import { optionsValidator } from './select_menu_validators.js';
@@ -303,6 +303,7 @@ export default {
303303
304304
methods: {
305305
removeClassStyleAttrs,
306+
addClassStyleAttrs,
306307
emitValue (value, event) {
307308
this.$emit('input', value, event);
308309
this.$emit('change', value, event);

packages/dialtone-vue3/components/toggle/toggle.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<template>
22
<div
33
class="d-toggle-wrapper"
4-
:class="$attrs.class"
5-
:style="$attrs.style"
4+
v-bind="addClassStyleAttrs($attrs)"
65
>
76
<label
87
v-if="hasSlotContent($slots.default)"
@@ -34,7 +33,7 @@
3433

3534
<script>
3635
import { warn } from 'vue';
37-
import { getUniqueString, hasSlotContent, removeClassStyleAttrs } from '@/common/utils';
36+
import { getUniqueString, hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';
3837
import { TOGGLE_CHECKED_VALUES, TOGGLE_SIZE_MODIFIERS } from '@/components/toggle/toggle_constants';
3938
4039
/**
@@ -187,6 +186,7 @@ export default {
187186
},
188187
189188
methods: {
189+
addClassStyleAttrs,
190190
toggleCheckedValue () {
191191
this.$emit('change', !this.internalChecked);
192192

packages/dialtone-vue3/recipes/buttons/callbar_button/callbar_button.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
<dt-tooltip
33
:id="id"
44
:inverted="invertedTooltip"
5-
:class="$attrs.class"
6-
:style="$attrs.style"
5+
v-bind="addClassStyleAttrs($attrs)"
76
:delay="tooltipDelay"
87
:show="showTooltip"
98
:offset="[0, 24]"
@@ -41,7 +40,7 @@
4140
import { CALLBAR_BUTTON_VALID_WIDTH_SIZE } from './callbar_button_constants';
4241
import { DtButton } from '@/components/button';
4342
import { DtTooltip } from '@/components/tooltip';
44-
import utils, { extractVueListeners, removeClassStyleAttrs } from '@/common/utils';
43+
import utils, { extractVueListeners, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';
4544
4645
export default {
4746
compatConfig: { MODE: 3 },
@@ -244,6 +243,7 @@ export default {
244243
245244
methods: {
246245
removeClassStyleAttrs,
246+
addClassStyleAttrs,
247247
},
248248
};
249249
</script>

packages/dialtone-vue3/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div
3-
:class="['dt-recipe--callbar-button-with-dropdown', $attrs.class]"
4-
:style="$attrs.style"
3+
class="dt-recipe--callbar-button-with-dropdown"
4+
v-bind="addClassStyleAttrs($attrs)"
55
>
66
<dt-recipe-callbar-button
77
:active="active"
@@ -72,7 +72,7 @@ import { DtButton } from '@/components/button';
7272
import { DtDropdown } from '@/components/dropdown';
7373
import { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';
7474
import { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';
75-
import utils, { warnIfUnmounted, removeClassStyleAttrs, returnFirstEl } from '@/common/utils';
75+
import utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';
7676
7777
export default {
7878
name: 'DtRecipeCallbarButtonWithDropdown',
@@ -317,6 +317,7 @@ export default {
317317
318318
methods: {
319319
removeClassStyleAttrs,
320+
addClassStyleAttrs,
320321
arrowClick (ev) {
321322
this.$emit('arrow-click', ev);
322323
return this.toggleOpen();

packages/dialtone-vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div
3-
:class="['d-recipe-callbar-button-with-popover', $attrs.class]"
4-
:style="$attrs.style"
3+
class="d-recipe-callbar-button-with-popover"
4+
v-bind="addClassStyleAttrs($attrs)"
55
>
66
<dt-recipe-callbar-button
77
:aria-label="ariaLabel"
@@ -80,7 +80,7 @@ import { DtButton } from '@/components/button';
8080
import { DtPopover } from '@/components/popover';
8181
import { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';
8282
import { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';
83-
import utils, { warnIfUnmounted, removeClassStyleAttrs, returnFirstEl } from '@/common/utils';
83+
import utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';
8484
8585
export default {
8686
compatConfig: { MODE: 3 },
@@ -361,6 +361,7 @@ export default {
361361
362362
methods: {
363363
removeClassStyleAttrs,
364+
addClassStyleAttrs,
364365
arrowClick (ev) {
365366
this.$emit('arrow-click', ev);
366367
return this.toggleOpen();

0 commit comments

Comments
 (0)