@carbon/vue 3.0.9 → 3.0.11
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/README.md +1 -1
- package/dist/carbon-vue-3.common.js +19642 -19310
- package/dist/carbon-vue-3.common.js.map +1 -1
- package/dist/carbon-vue-3.css +1 -1
- package/dist/carbon-vue-3.umd.js +19721 -19389
- package/dist/carbon-vue-3.umd.js.map +1 -1
- package/dist/carbon-vue-3.umd.min.js +3 -3
- package/dist/carbon-vue-3.umd.min.js.map +1 -1
- package/package.json +11 -43
- package/src/components/CvAccordion/CvAccordionItem.vue +1 -1
- package/src/components/CvButton/CvButton.stories.js +1 -1
- package/src/components/CvButton/CvButton.vue +2 -2
- package/src/components/CvButton/CvIconButton.stories.js +14 -17
- package/src/components/CvButton/CvIconButton.vue +8 -7
- package/src/components/CvCheckbox/CvCheckbox.vue +4 -3
- package/src/components/CvCodeSnippet/CvCodeSnippet.vue +5 -5
- package/src/components/CvCodeSnippet/_CviCodeSnippetInline.vue +2 -2
- package/src/components/CvCodeSnippet/_CviCodeSnippetMultiline.vue +6 -6
- package/src/components/CvCodeSnippet/_CviCodeSnippetOneline.vue +3 -3
- package/src/components/CvComboBox/CvComboBox.vue +9 -9
- package/src/components/CvContentSwitcher/CvContentSwitcher.vue +1 -1
- package/src/components/CvContentSwitcher/CvContentSwitcherButton.vue +1 -1
- package/src/components/CvCopyButton/CvCopyButton.vue +1 -1
- package/src/components/CvCopyButton/_CviCopyButton.vue +2 -2
- package/src/components/CvDataTable/CvDataTable.vue +29 -27
- package/src/components/CvDataTable/CvDataTableHeading.vue +9 -9
- package/src/components/CvDataTable/CvDataTableRow.vue +6 -6
- package/src/components/CvDataTable/CvDataTableSkeleton.vue +3 -3
- package/src/components/CvDataTable/_CvDataTableRowInner.vue +9 -9
- package/src/components/CvDatePicker/CvDatePicker.vue +10 -10
- package/src/components/CvDatePicker/CvDatePickerSkeleton.vue +3 -3
- package/src/components/CvDropdown/CvDropdown.stories.mdx +7 -66
- package/src/components/CvDropdown/CvDropdown.vue +13 -26
- package/src/components/CvDropdown/CvDropdownItem.vue +2 -2
- package/src/components/CvFileUploader/CvFileUploader.stories.mdx +79 -14
- package/src/components/CvFileUploader/CvFileUploader.vue +7 -7
- package/src/components/CvFileUploader/CvFileUploaderItem.vue +9 -8
- package/src/components/CvForm/CvFormGroup.vue +2 -2
- package/src/components/CvGrid/CvColumn.vue +5 -0
- package/src/components/CvLink/CvLink.vue +7 -2
- package/src/components/CvLoading/CvLoading.stories.js +1 -1
- package/src/components/CvLoading/CvLoading.vue +2 -2
- package/src/components/CvModal/CvModal.vue +19 -19
- package/src/components/CvMultiSelect/CvMultiSelect.stories.mdx +8 -18
- package/src/components/CvMultiSelect/CvMultiSelect.vue +17 -22
- package/src/components/CvNotification/CvToastNotification.stories.js +12 -15
- package/src/components/CvNotification/CvToastNotification.vue +1 -1
- package/src/components/CvNumberInput/CvNumberInput.vue +3 -6
- package/src/components/CvOverflowMenu/CvOverflowMenu.vue +11 -10
- package/src/components/CvOverflowMenu/CvOverflowMenuItem.vue +1 -1
- package/src/components/CvPagination/CvPagination.vue +11 -15
- package/src/components/CvProgress/CvProgress.stories.mdx +23 -1
- package/src/components/CvProgress/CvProgress.vue +1 -1
- package/src/components/CvProgress/CvProgressSkeleton.vue +37 -0
- package/src/components/CvProgress/CvProgressStep.vue +6 -6
- package/src/components/CvProgress/index.js +3 -1
- package/src/components/CvRadioButton/CvRadioButton.vue +3 -3
- package/src/components/CvSearch/CvSearch.stories.mdx +4 -13
- package/src/components/CvSearch/CvSearch.vue +17 -28
- package/src/components/CvSelect/CvSelect.vue +1 -1
- package/src/components/CvSlider/CvSlider.vue +7 -7
- package/src/components/CvSlider/__tests__/__snapshots__/CvSlider.spec.js.snap +1 -1
- package/src/components/CvStructuredList/CvStructuredListItem.vue +3 -3
- package/src/components/CvStructuredList/CvStructuredListItemSelectable.vue +1 -1
- package/src/components/CvStructuredList/__tests__/__snapshots__/CvStructuredListItem.spec.js.snap +3 -3
- package/src/components/CvSvg/__tests__/_TestIcon.vue +2 -2
- package/src/components/CvTabs/CvTab.vue +1 -1
- package/src/components/CvTabs/CvTabs.vue +13 -13
- package/src/components/CvTabs/__tests__/__snapshots__/CvTabs.spec.js.snap +6 -6
- package/src/components/CvTag/CvTag.stories.js +1 -1
- package/src/components/CvTag/CvTag.vue +1 -1
- package/src/components/CvTextArea/CvTextArea.vue +6 -6
- package/src/components/CvTextInput/CvTextInput.stories.js +28 -16
- package/src/components/CvTextInput/CvTextInput.vue +37 -7
- package/src/components/CvTextInput/CvTextInputSkeleton.vue +17 -0
- package/src/components/CvTextInput/index.js +2 -1
- package/src/components/CvTile/CvTile.vue +3 -3
- package/src/components/CvTile/CvTileExpandable.vue +7 -7
- package/src/components/CvTile/CvTileSelectable.vue +2 -2
- package/src/components/CvTimePicker/CvTimePicker.vue +1 -1
- package/src/components/CvTooltip/CvDefinitionTooltip.vue +2 -2
- package/src/components/CvTooltip/CvInteractiveTooltip.vue +7 -7
- package/src/components/CvTooltip/__tests__/__snapshots__/CvTooltip.spec.js.snap +14 -14
- package/src/components/CvUIShell/CvHeader.vue +1 -1
- package/src/components/CvUIShell/CvHeaderGlobalAction.vue +7 -7
- package/src/components/CvUIShell/CvHeaderMenu.vue +3 -3
- package/src/components/CvUIShell/CvHeaderMenuButton.vue +2 -2
- package/src/components/CvUIShell/CvHeaderMenuItem.vue +2 -2
- package/src/components/CvUIShell/CvHeaderName.vue +1 -1
- package/src/components/CvUIShell/CvHeaderNav.vue +1 -1
- package/src/components/CvUIShell/CvHeaderPanel.vue +3 -2
- package/src/components/CvUIShell/CvSideNav.vue +5 -4
- package/src/components/CvUIShell/CvSideNavItems.vue +1 -1
- package/src/components/CvUIShell/CvSideNavLink.vue +1 -1
- package/src/components/CvUIShell/_CvSideNavFooter.vue +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :style="tableStyle" class="cv-data-table"
|
|
2
|
+
<div :id="uid" :style="tableStyle" class="cv-data-table">
|
|
3
3
|
<div
|
|
4
4
|
:class="[
|
|
5
5
|
`${carbonPrefix}--data-table-container`,
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
]"
|
|
11
11
|
>
|
|
12
12
|
<div v-if="hasTableHeader" :class="`${carbonPrefix}--data-table-header`">
|
|
13
|
-
<h4 :class="`${carbonPrefix}--data-table-header__title`"
|
|
13
|
+
<h4 v-if="title" :class="`${carbonPrefix}--data-table-header__title`">
|
|
14
14
|
{{ title }}
|
|
15
15
|
</h4>
|
|
16
16
|
<p
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
</div>
|
|
23
23
|
<section v-if="hasToolbar" :class="`${carbonPrefix}--table-toolbar`">
|
|
24
24
|
<div
|
|
25
|
-
:aria-hidden="!batchActive"
|
|
26
25
|
v-show="hasBatchActions"
|
|
26
|
+
:aria-hidden="`${!batchActive}`"
|
|
27
27
|
:class="[
|
|
28
28
|
`${carbonPrefix}--batch-actions`,
|
|
29
29
|
{ [`${carbonPrefix}--batch-actions--active`]: batchActive },
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<span data-items-selected>
|
|
45
45
|
<slot
|
|
46
46
|
name="items-selected"
|
|
47
|
-
|
|
47
|
+
:scope="{ count: dataRowsSelected.length }"
|
|
48
48
|
>{{ dataRowsSelected.length }} items selected</slot
|
|
49
49
|
>
|
|
50
50
|
</span>
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
<div :class="`${carbonPrefix}--toolbar-content`">
|
|
55
55
|
<div
|
|
56
56
|
v-if="onSearch"
|
|
57
|
+
ref="searchContainer"
|
|
57
58
|
:aria-labelledby="`${uid}-search`"
|
|
58
59
|
:class="[
|
|
59
60
|
`${carbonPrefix}--search `,
|
|
@@ -67,9 +68,8 @@
|
|
|
67
68
|
},
|
|
68
69
|
]"
|
|
69
70
|
role="search"
|
|
70
|
-
ref="searchContainer"
|
|
71
71
|
>
|
|
72
|
-
<div :class="`${carbonPrefix}--search-magnifier`"
|
|
72
|
+
<div ref="magnifier" :class="`${carbonPrefix}--search-magnifier`">
|
|
73
73
|
<Search16 :class="`${carbonPrefix}--search-magnifier-icon`" />
|
|
74
74
|
</div>
|
|
75
75
|
<label
|
|
@@ -79,14 +79,14 @@
|
|
|
79
79
|
>{{ searchLabel }}</label
|
|
80
80
|
>
|
|
81
81
|
<input
|
|
82
|
+
:id="`searchbox-${uid}`"
|
|
83
|
+
ref="search"
|
|
84
|
+
v-model="searchValue"
|
|
82
85
|
:class="`${carbonPrefix}--search-input`"
|
|
83
86
|
type="text"
|
|
84
|
-
:id="`searchbox-${uid}`"
|
|
85
87
|
role="searchbox"
|
|
86
88
|
:placeholder="searchPlaceholder"
|
|
87
89
|
:aria-labelledby="`searchbox-${uid}`"
|
|
88
|
-
ref="search"
|
|
89
|
-
v-model="searchValue"
|
|
90
90
|
@input="onInternalSearch"
|
|
91
91
|
@click="checkSearchExpand(true)"
|
|
92
92
|
@keydown.esc.prevent="checkSearchExpand(false)"
|
|
@@ -103,8 +103,8 @@
|
|
|
103
103
|
]"
|
|
104
104
|
:title="searchClearLabel"
|
|
105
105
|
:aria-label="searchClearLabel"
|
|
106
|
-
@click="onClearClick"
|
|
107
106
|
type="button"
|
|
107
|
+
@click="onClearClick"
|
|
108
108
|
>
|
|
109
109
|
<Close16 />
|
|
110
110
|
</button>
|
|
@@ -141,11 +141,11 @@
|
|
|
141
141
|
<button
|
|
142
142
|
v-if="hasExpandAll"
|
|
143
143
|
:class="`${carbonPrefix}--table-expand__button`"
|
|
144
|
-
@click="toggleExpandAll"
|
|
145
144
|
type="button"
|
|
146
145
|
:aria-label="
|
|
147
146
|
dataExpandAll ? collapseAllAriaLabel : expandAllAriaLabel
|
|
148
147
|
"
|
|
148
|
+
@click="toggleExpandAll"
|
|
149
149
|
>
|
|
150
150
|
<ChevronRight16
|
|
151
151
|
:class="`${carbonPrefix}--table-expand__svg`"
|
|
@@ -158,12 +158,12 @@
|
|
|
158
158
|
:class="`${carbonPrefix}--table-column-checkbox`"
|
|
159
159
|
>
|
|
160
160
|
<cv-checkbox
|
|
161
|
+
v-model="headingChecked"
|
|
161
162
|
:form-item="false"
|
|
162
163
|
value="headingCheck"
|
|
163
|
-
v-model="headingChecked"
|
|
164
|
-
@change="onHeadingCheckChange"
|
|
165
164
|
:label="selectAllAriaLabel"
|
|
166
|
-
|
|
165
|
+
hide-label
|
|
166
|
+
@change="onHeadingCheckChange"
|
|
167
167
|
/>
|
|
168
168
|
</th>
|
|
169
169
|
<slot name="headings">
|
|
@@ -186,8 +186,8 @@
|
|
|
186
186
|
<cv-data-table-row
|
|
187
187
|
v-for="(row, rowIndex) in data"
|
|
188
188
|
:key="`row:${rowIndex}`"
|
|
189
|
-
:value="`${rowIndex}`"
|
|
190
189
|
ref="dataRows"
|
|
190
|
+
:value="`${rowIndex}`"
|
|
191
191
|
:overflow-menu="overflowMenu"
|
|
192
192
|
>
|
|
193
193
|
<cv-data-table-cell
|
|
@@ -212,12 +212,12 @@
|
|
|
212
212
|
:number-of-items="internalNumberOfItems"
|
|
213
213
|
@change="$emit('pagination', $event)"
|
|
214
214
|
>
|
|
215
|
-
<template
|
|
216
|
-
<slot name="range-text"
|
|
215
|
+
<template #range-text="{ scope }">
|
|
216
|
+
<slot name="range-text" :scope="scope" />
|
|
217
217
|
</template>
|
|
218
218
|
|
|
219
|
-
<template
|
|
220
|
-
<slot name="of-n-pages"
|
|
219
|
+
<template #of-n-pages="{ scope }">
|
|
220
|
+
<slot name="of-n-pages" :scope="scope"></slot>
|
|
221
221
|
</template>
|
|
222
222
|
</cv-pagination>
|
|
223
223
|
</div>
|
|
@@ -316,7 +316,7 @@ const props = defineProps({
|
|
|
316
316
|
* can be sorted
|
|
317
317
|
*/
|
|
318
318
|
sortable: { type: Boolean, default: false },
|
|
319
|
-
title: String,
|
|
319
|
+
title: { type: String, default: undefined },
|
|
320
320
|
/**
|
|
321
321
|
* An array containing a list of columns
|
|
322
322
|
* - Columns can be string labels or objects
|
|
@@ -326,11 +326,11 @@ const props = defineProps({
|
|
|
326
326
|
* - Optionally a dataStyle object to be applied to the data in the column.
|
|
327
327
|
* - Optionally a sortable property - if any column sets this to true then only columns with sortable set to true are sortable. NOTE: table sortable property not required.
|
|
328
328
|
*/
|
|
329
|
-
columns: Array,
|
|
329
|
+
columns: { type: Array, default: () => [] },
|
|
330
330
|
/**
|
|
331
331
|
* Two-dimensional array of strings.
|
|
332
332
|
*/
|
|
333
|
-
data: Array,
|
|
333
|
+
data: { type: Array, default: () => [] },
|
|
334
334
|
/**
|
|
335
335
|
* the table striped
|
|
336
336
|
*/
|
|
@@ -351,7 +351,7 @@ const props = defineProps({
|
|
|
351
351
|
* Use a width of 'auto' instead of 100%
|
|
352
352
|
*/
|
|
353
353
|
staticWidth: { type: Boolean, default: false },
|
|
354
|
-
onSearch: { type: Function },
|
|
354
|
+
onSearch: { type: Function, default: undefined },
|
|
355
355
|
...propsCvId,
|
|
356
356
|
});
|
|
357
357
|
const uid = useCvId(props, true);
|
|
@@ -554,7 +554,8 @@ const clearSearchVisible = ref(false);
|
|
|
554
554
|
function onClearClick() {
|
|
555
555
|
searchValue.value = '';
|
|
556
556
|
clearSearchVisible.value = false;
|
|
557
|
-
|
|
557
|
+
// eslint-disable-next-line vue/require-explicit-emits
|
|
558
|
+
emit('search', searchValue.value); // see comment above in defineEmits
|
|
558
559
|
nextTick(() => {
|
|
559
560
|
search.value?.focus();
|
|
560
561
|
});
|
|
@@ -608,22 +609,23 @@ function onMenuItemClick(val) {
|
|
|
608
609
|
}
|
|
609
610
|
function onInternalSearch() {
|
|
610
611
|
clearSearchVisible.value = searchValue.value.length > 0;
|
|
612
|
+
// eslint-disable-next-line vue/require-explicit-emits
|
|
611
613
|
emit('search', searchValue.value);
|
|
612
614
|
}
|
|
613
615
|
function onSort(payload) {
|
|
614
|
-
const { heading,
|
|
616
|
+
const { heading, value } = payload;
|
|
615
617
|
const headings = store.headings(uid);
|
|
616
618
|
let index;
|
|
617
619
|
for (let colIndex in headings) {
|
|
618
620
|
const column = headings[colIndex];
|
|
619
621
|
if (column.id === heading.id) {
|
|
620
|
-
store.updateHeading(uid, { ...column, order:
|
|
622
|
+
store.updateHeading(uid, { ...column, order: value });
|
|
621
623
|
index = colIndex;
|
|
622
624
|
} else {
|
|
623
625
|
store.updateHeading(uid, { ...column, order: 'none' });
|
|
624
626
|
}
|
|
625
627
|
}
|
|
626
|
-
emit('sort', { index, order:
|
|
628
|
+
emit('sort', { index, order: value, name: heading.name });
|
|
627
629
|
}
|
|
628
630
|
|
|
629
631
|
// are all rows expanded
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<th
|
|
3
|
-
:aria-sort="internalOrder"
|
|
4
|
-
:style="skeleton && headingStyle"
|
|
5
3
|
:id="cvId"
|
|
6
4
|
ref="el"
|
|
5
|
+
:aria-sort="internalOrder"
|
|
6
|
+
:style="skeleton && headingStyle"
|
|
7
7
|
>
|
|
8
8
|
<button
|
|
9
|
-
type="button"
|
|
10
9
|
v-if="sortable"
|
|
10
|
+
type="button"
|
|
11
11
|
:class="[
|
|
12
12
|
`${carbonPrefix}--table-sort`,
|
|
13
13
|
{
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
internalOrder === 'ascending',
|
|
18
18
|
},
|
|
19
19
|
]"
|
|
20
|
-
@click="onSortClick"
|
|
21
20
|
:style="headingStyle"
|
|
21
|
+
@click="onSortClick"
|
|
22
22
|
>
|
|
23
23
|
<component
|
|
24
24
|
:is="headingLabelTag"
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
<Arrows16 :class="`${carbonPrefix}--table-sort__icon-unsorted`" />
|
|
31
31
|
</button>
|
|
32
32
|
<component
|
|
33
|
-
v-else
|
|
34
33
|
:is="headingLabelTag"
|
|
34
|
+
v-else
|
|
35
35
|
:class="`${carbonPrefix}--table-header-label`"
|
|
36
36
|
:style="headingStyle"
|
|
37
37
|
>
|
|
@@ -56,13 +56,13 @@ const nextOrder = {
|
|
|
56
56
|
none: 'ascending',
|
|
57
57
|
};
|
|
58
58
|
const props = defineProps({
|
|
59
|
-
dataStyle: Object,
|
|
60
|
-
heading: String,
|
|
61
|
-
name: String,
|
|
59
|
+
dataStyle: { type: Object, default: undefined },
|
|
60
|
+
heading: { type: String, default: undefined },
|
|
61
|
+
name: { type: String, default: undefined },
|
|
62
62
|
sortable: Boolean,
|
|
63
63
|
order: { type: String, default: 'none' },
|
|
64
64
|
skeleton: Boolean,
|
|
65
|
-
headingStyle: Object,
|
|
65
|
+
headingStyle: { type: Object, default: undefined },
|
|
66
66
|
...propsCvId,
|
|
67
67
|
});
|
|
68
68
|
const cvId = useCvId(props, true);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<tbody
|
|
3
3
|
v-if="dataSomeExpandingRows"
|
|
4
|
-
class="cv-data-table-row cv-data-table-row--expandable"
|
|
5
4
|
:id="cvId"
|
|
5
|
+
class="cv-data-table-row cv-data-table-row--expandable"
|
|
6
6
|
>
|
|
7
7
|
<cv-data-table-row-inner
|
|
8
8
|
ref="row"
|
|
9
|
-
:
|
|
9
|
+
:row-id="cvId"
|
|
10
10
|
v-bind="$attrs"
|
|
11
11
|
:expanding-row="dataExpandable"
|
|
12
|
+
:expanded="dataExpanded"
|
|
12
13
|
@expanded-change="onExpandedChange"
|
|
13
14
|
@checked-change="onCheckedChange"
|
|
14
|
-
:expanded="dataExpanded"
|
|
15
15
|
>
|
|
16
16
|
<slot />
|
|
17
17
|
</cv-data-table-row-inner>
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
</tbody>
|
|
30
30
|
<cv-data-table-row-inner
|
|
31
31
|
v-else
|
|
32
|
-
ref="row"
|
|
33
32
|
v-bind="$attrs"
|
|
34
|
-
class="cv-data-table-row"
|
|
35
33
|
:id="cvId"
|
|
36
|
-
|
|
34
|
+
ref="row"
|
|
35
|
+
class="cv-data-table-row"
|
|
36
|
+
:row-id="cvId"
|
|
37
37
|
@checked-change="onCheckedChange"
|
|
38
38
|
>
|
|
39
39
|
<slot />
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<cv-data-table skeleton :data="data" :columns="cols" v-bind="$attrs">
|
|
3
|
-
<template v-if="hasHelperText"
|
|
3
|
+
<template v-if="hasHelperText" #helper-text>
|
|
4
4
|
<slot name="helper-text" />
|
|
5
5
|
</template>
|
|
6
6
|
|
|
7
|
-
<template v-if="hasBatchActions"
|
|
7
|
+
<template v-if="hasBatchActions" #batch-actions>
|
|
8
8
|
<slot name="batch-actions" />
|
|
9
9
|
</template>
|
|
10
10
|
|
|
11
|
-
<template v-if="hasActions"
|
|
11
|
+
<template v-if="hasActions" #actions>
|
|
12
12
|
<slot name="actions" />
|
|
13
13
|
</template>
|
|
14
14
|
</cv-data-table>
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
<button
|
|
16
16
|
v-if="expandingRow"
|
|
17
17
|
:class="`${carbonPrefix}--table-expand__button`"
|
|
18
|
-
@click="toggleExpand"
|
|
19
18
|
type="button"
|
|
20
19
|
:aria-label="dataExpanded ? ariaLabelCollapseRow : ariaLabelExpandRow"
|
|
20
|
+
@click="toggleExpand"
|
|
21
21
|
>
|
|
22
22
|
<ChevronRight16 :class="`${carbonPrefix}--table-expand__svg`" />
|
|
23
23
|
</button>
|
|
@@ -28,16 +28,16 @@
|
|
|
28
28
|
:class="`${carbonPrefix}--table-column-checkbox`"
|
|
29
29
|
>
|
|
30
30
|
<cv-checkbox
|
|
31
|
+
ref="rowChecked"
|
|
32
|
+
v-model="dataChecked"
|
|
31
33
|
:form-item="false"
|
|
32
34
|
:value="value"
|
|
33
35
|
:inline="true"
|
|
34
|
-
v-model="dataChecked"
|
|
35
|
-
@change="onChange"
|
|
36
|
-
ref="rowChecked"
|
|
37
36
|
:label="
|
|
38
37
|
ariaLabelForBatchCheckbox || `Select row ${value} for batch action`
|
|
39
38
|
"
|
|
40
|
-
|
|
39
|
+
hide-label
|
|
40
|
+
@change="onChange"
|
|
41
41
|
/>
|
|
42
42
|
</td>
|
|
43
43
|
<slot />
|
|
@@ -71,15 +71,15 @@ import store from './cvDataTableStore';
|
|
|
71
71
|
import { getBus } from '../../global/component-utils/event-bus';
|
|
72
72
|
|
|
73
73
|
const props = defineProps({
|
|
74
|
-
ariaLabelForBatchCheckbox: String,
|
|
74
|
+
ariaLabelForBatchCheckbox: { type: String, default: undefined },
|
|
75
75
|
checked: Boolean,
|
|
76
76
|
expanded: Boolean,
|
|
77
77
|
expandingRow: Boolean,
|
|
78
78
|
ariaLabelExpandRow: { type: String, default: 'Expand current row' },
|
|
79
79
|
ariaLabelCollapseRow: { type: String, default: 'Collapse current row' },
|
|
80
|
-
overflowMenu: Array,
|
|
81
|
-
value: String,
|
|
82
|
-
rowId: String,
|
|
80
|
+
overflowMenu: { type: Array, default: () => [] },
|
|
81
|
+
value: { type: String, default: undefined },
|
|
82
|
+
rowId: { type: String, default: undefined },
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
const dataSomeExpandingRows = computed(() => {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<cv-wrapper
|
|
3
|
+
:id="cvId"
|
|
3
4
|
:tag-type="formItem ? 'div' : ''"
|
|
4
5
|
:class="`cv-date-picker ${carbonPrefix}--form-item`"
|
|
5
|
-
:id="cvId"
|
|
6
6
|
>
|
|
7
7
|
<div
|
|
8
|
+
:id="formItem ? undefined : cvId"
|
|
9
|
+
ref="dateWrapper"
|
|
8
10
|
:data-date-picker="['single', 'range'].includes(getKind)"
|
|
9
11
|
:data-date-picker-type="getKind"
|
|
10
12
|
:class="[
|
|
@@ -15,8 +17,6 @@
|
|
|
15
17
|
'cv-date-picker': !formItem,
|
|
16
18
|
},
|
|
17
19
|
]"
|
|
18
|
-
ref="dateWrapper"
|
|
19
|
-
:id="formItem ? undefined : cvId"
|
|
20
20
|
>
|
|
21
21
|
<div
|
|
22
22
|
:class="{
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
</label>
|
|
37
37
|
<div :class="`${carbonPrefix}--date-picker-input__wrapper`">
|
|
38
38
|
<input
|
|
39
|
+
:id="`${cvId}-input-1`"
|
|
39
40
|
ref="date"
|
|
40
41
|
type="text"
|
|
41
42
|
data-date-picker-input
|
|
@@ -43,7 +44,6 @@
|
|
|
43
44
|
:data-invalid="isInvalid || null"
|
|
44
45
|
:disabled="disabled"
|
|
45
46
|
:data-date-picker-input-from="getKind === 'range'"
|
|
46
|
-
:id="`${cvId}-input-1`"
|
|
47
47
|
:class="`${carbonPrefix}--date-picker__input`"
|
|
48
48
|
:pattern="pattern"
|
|
49
49
|
:placeholder="placeholder"
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
/>
|
|
58
58
|
</div>
|
|
59
59
|
|
|
60
|
-
<div :class="`${carbonPrefix}--form-requirement`"
|
|
60
|
+
<div v-if="isInvalid" :class="`${carbonPrefix}--form-requirement`">
|
|
61
61
|
<slot name="invalid-message">{{ invalidMessage }}</slot>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
@click="calendar.open()"
|
|
83
83
|
>
|
|
84
84
|
<input
|
|
85
|
+
:id="`${cvId}-input-2`"
|
|
85
86
|
ref="todate"
|
|
86
87
|
type="text"
|
|
87
88
|
data-date-picker-input
|
|
@@ -89,7 +90,6 @@
|
|
|
89
90
|
:data-date-picker-input-to="kind === 'range'"
|
|
90
91
|
:data-invalid="isInvalid || null"
|
|
91
92
|
:disabled="disabled"
|
|
92
|
-
:id="`${cvId}-input-2`"
|
|
93
93
|
:class="`${carbonPrefix}--date-picker__input`"
|
|
94
94
|
:pattern="pattern"
|
|
95
95
|
:placeholder="placeholder"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
data-date-picker-icon
|
|
101
101
|
/>
|
|
102
102
|
</div>
|
|
103
|
-
<div :class="`${carbonPrefix}--form-requirement`"
|
|
103
|
+
<div v-if="isInvalid" :class="`${carbonPrefix}--form-requirement`">
|
|
104
104
|
<span id="invalid-message-placeholder"></span>
|
|
105
105
|
</div>
|
|
106
106
|
</div>
|
|
@@ -142,12 +142,12 @@ const isLight = useIsLight(props);
|
|
|
142
142
|
let calendar;
|
|
143
143
|
|
|
144
144
|
const props = defineProps({
|
|
145
|
-
modelValue: [String, Object, Array, Date],
|
|
145
|
+
modelValue: { type: [String, Object, Array, Date], default: undefined },
|
|
146
146
|
dateLabel: { type: String, default: undefined },
|
|
147
147
|
dateEndLabel: { type: String, default: 'End date' },
|
|
148
148
|
invalid: { type: Boolean, default: false },
|
|
149
149
|
disabled: { type: Boolean, default: false },
|
|
150
|
-
invalidMessage: { type: String },
|
|
150
|
+
invalidMessage: { type: String, default: undefined },
|
|
151
151
|
pattern: { type: String, default: '\\d{1,2}/\\d{1,2}/\\d{4}' },
|
|
152
152
|
placeholder: { type: String, default: 'mm/dd/yyyy' },
|
|
153
153
|
calOptions: {
|
|
@@ -164,7 +164,7 @@ const props = defineProps({
|
|
|
164
164
|
default: 'simple',
|
|
165
165
|
validator: val => ['short', 'simple', 'single', 'range'].includes(val),
|
|
166
166
|
},
|
|
167
|
-
value: [String, Object, Array, Date],
|
|
167
|
+
value: { type: [String, Object, Array, Date], default: undefined },
|
|
168
168
|
...propsCvId,
|
|
169
169
|
...propsCvTheme,
|
|
170
170
|
});
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<cv-wrapper
|
|
3
|
+
:id="cvId"
|
|
3
4
|
:tag-type="formItem ? 'div' : ''"
|
|
4
5
|
:class="`cv-date-picker ${carbonPrefix}--form-item`"
|
|
5
|
-
:id="cvId"
|
|
6
6
|
>
|
|
7
7
|
<div
|
|
8
|
+
:id="formItem ? undefined : cvId"
|
|
9
|
+
ref="dateWrapper"
|
|
8
10
|
:data-date-picker="['single', 'range'].includes(getKind)"
|
|
9
11
|
:data-date-picker-type="getKind"
|
|
10
12
|
:class="[
|
|
@@ -14,8 +16,6 @@
|
|
|
14
16
|
'cv-date-picker': !formItem,
|
|
15
17
|
},
|
|
16
18
|
]"
|
|
17
|
-
ref="dateWrapper"
|
|
18
|
-
:id="formItem ? undefined : cvId"
|
|
19
19
|
>
|
|
20
20
|
<div
|
|
21
21
|
class="inputWrapper"
|
|
@@ -49,7 +49,7 @@ const defaultTemplate = `
|
|
|
49
49
|
<cv-dropdown
|
|
50
50
|
:light="light"
|
|
51
51
|
:placeholder="placeholder"
|
|
52
|
-
:
|
|
52
|
+
:modelValue="modelValue"
|
|
53
53
|
:up="up"
|
|
54
54
|
:inline="inline"
|
|
55
55
|
:helper-text="helperText"
|
|
@@ -71,7 +71,7 @@ const defaultTemplate = `
|
|
|
71
71
|
const slotsTemplate = `
|
|
72
72
|
<div :style="{width: '300px'}">
|
|
73
73
|
<cv-dropdown
|
|
74
|
-
v-model
|
|
74
|
+
v-model="myValue"
|
|
75
75
|
:light="light"
|
|
76
76
|
:placeholder="placeholder"
|
|
77
77
|
:up="up"
|
|
@@ -101,7 +101,7 @@ const itemsTemplate = `
|
|
|
101
101
|
<cv-dropdown
|
|
102
102
|
:light="light"
|
|
103
103
|
:placeholder="placeholder"
|
|
104
|
-
:
|
|
104
|
+
:modelValue="modelValue"
|
|
105
105
|
:up="up"
|
|
106
106
|
:inline="inline"
|
|
107
107
|
:helper-text="helperText"
|
|
@@ -119,7 +119,7 @@ const itemsTemplate = `
|
|
|
119
119
|
const vmodelTemplate = `
|
|
120
120
|
<div :style="{width: '300px'}">
|
|
121
121
|
<cv-dropdown
|
|
122
|
-
v-model
|
|
122
|
+
v-model="myValue"
|
|
123
123
|
:label="label"
|
|
124
124
|
:placeholder="placeholder"
|
|
125
125
|
@change="onChange">
|
|
@@ -151,10 +151,7 @@ Notes:
|
|
|
151
151
|
|
|
152
152
|
- You can place a Dropdown inline with other content by using the inline variant
|
|
153
153
|
Migration notes:
|
|
154
|
-
|
|
155
|
-
- The `v-model` is different in Vue 3 than Vue 2. You can still specify the `v-model=something` to control the visibility but
|
|
156
|
-
if you specify it like this you will see a deprecation message in the log. Please use `v-model:value=something` instead.
|
|
157
|
-
- Add the `size` option to match Carbon React
|
|
154
|
+
- Added the `size` option to match Carbon React
|
|
158
155
|
- Added the `warningMessage` option to match Carbon React
|
|
159
156
|
|
|
160
157
|
<Canvas>
|
|
@@ -168,21 +165,16 @@ Notes:
|
|
|
168
165
|
'template',
|
|
169
166
|
'change',
|
|
170
167
|
'update:modelValue',
|
|
171
|
-
'update:value',
|
|
172
168
|
'helper-text',
|
|
173
169
|
'invalid-message',
|
|
174
170
|
'warning-message',
|
|
175
171
|
'internal-caption',
|
|
176
|
-
'modelValue',
|
|
177
172
|
],
|
|
178
173
|
},
|
|
179
174
|
docs: { source: { code: defaultTemplate } },
|
|
180
175
|
}}
|
|
181
176
|
args={{
|
|
182
177
|
template: defaultTemplate,
|
|
183
|
-
props: {
|
|
184
|
-
modelValue: undefined,
|
|
185
|
-
},
|
|
186
178
|
label: 'Characters',
|
|
187
179
|
placeholder: 'Choose an ally',
|
|
188
180
|
helperText: 'May the force be with you',
|
|
@@ -273,7 +265,6 @@ Notes:
|
|
|
273
265
|
'template',
|
|
274
266
|
'change',
|
|
275
267
|
'update:modelValue',
|
|
276
|
-
'update:value',
|
|
277
268
|
'helper-text',
|
|
278
269
|
'invalid-message',
|
|
279
270
|
'warning-message',
|
|
@@ -316,32 +307,7 @@ Notes:
|
|
|
316
307
|
name="v-model"
|
|
317
308
|
parameters={{
|
|
318
309
|
controls: {
|
|
319
|
-
|
|
320
|
-
'props',
|
|
321
|
-
'default',
|
|
322
|
-
'template',
|
|
323
|
-
'change',
|
|
324
|
-
'update:modelValue',
|
|
325
|
-
'update:value',
|
|
326
|
-
'helper-text',
|
|
327
|
-
'invalid-message',
|
|
328
|
-
'warning-message',
|
|
329
|
-
'internal-caption',
|
|
330
|
-
'modelValue',
|
|
331
|
-
'ariaLabel',
|
|
332
|
-
'disabled',
|
|
333
|
-
'formItem',
|
|
334
|
-
'helperText',
|
|
335
|
-
'hideSelected',
|
|
336
|
-
'inline',
|
|
337
|
-
'invalidMessage',
|
|
338
|
-
'items',
|
|
339
|
-
'label',
|
|
340
|
-
'placeholder',
|
|
341
|
-
'size',
|
|
342
|
-
'up',
|
|
343
|
-
'value',
|
|
344
|
-
'warningMessage',
|
|
310
|
+
include: [
|
|
345
311
|
],
|
|
346
312
|
},
|
|
347
313
|
docs: { source: { code: vmodelTemplate } },
|
|
@@ -367,32 +333,7 @@ Notes:
|
|
|
367
333
|
name="skeleton"
|
|
368
334
|
parameters={{
|
|
369
335
|
controls: {
|
|
370
|
-
|
|
371
|
-
'props',
|
|
372
|
-
'default',
|
|
373
|
-
'template',
|
|
374
|
-
'change',
|
|
375
|
-
'update:modelValue',
|
|
376
|
-
'update:value',
|
|
377
|
-
'helper-text',
|
|
378
|
-
'invalid-message',
|
|
379
|
-
'warning-message',
|
|
380
|
-
'internal-caption',
|
|
381
|
-
'modelValue',
|
|
382
|
-
'ariaLabel',
|
|
383
|
-
'disabled',
|
|
384
|
-
'formItem',
|
|
385
|
-
'helperText',
|
|
386
|
-
'hideSelected',
|
|
387
|
-
'invalidMessage',
|
|
388
|
-
'items',
|
|
389
|
-
'label',
|
|
390
|
-
'placeholder',
|
|
391
|
-
'size',
|
|
392
|
-
'up',
|
|
393
|
-
'value',
|
|
394
|
-
'warningMessage',
|
|
395
|
-
'inline',
|
|
336
|
+
include: [
|
|
396
337
|
],
|
|
397
338
|
},
|
|
398
339
|
docs: { source: { code: skeletonTemplate } },
|