@gitlab/ui 105.7.0 → 106.0.0
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/CHANGELOG.md +13 -0
- package/dist/components/base/button_group/button_group.js +10 -4
- package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +7 -10
- package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -2
- package/package.json +1 -1
- package/src/components/base/button_group/button_group.md +19 -3
- package/src/components/base/button_group/button_group.vue +11 -6
- package/src/components/dashboards/dashboard_panel/dashboard_panel.vue +5 -5
- package/src/vendor/bootstrap-vue/src/constants/components.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/button-group/button-group.js +0 -44
- package/dist/vendor/bootstrap-vue/src/components/button-group/index.js +0 -1
- package/src/vendor/bootstrap-vue/src/components/button-group/README.md +0 -107
- package/src/vendor/bootstrap-vue/src/components/button-group/button-group.js +0 -42
- package/src/vendor/bootstrap-vue/src/components/button-group/button-group.spec.js +0 -98
- package/src/vendor/bootstrap-vue/src/components/button-group/index.js +0 -3
- package/src/vendor/bootstrap-vue/src/components/button-group/package.json +0 -29
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# [106.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v105.7.0...v106.0.0) (2024-12-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **GlButtonGroup:** migrate GlButtonGroup ([e1f4927](https://gitlab.com/gitlab-org/gitlab-ui/commit/e1f4927497af1c5e16debfb8a3a668f3c064d5c5))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* **GlButtonGroup:** this removes the `size`, `tag`, and `ariaRole`
|
|
12
|
+
props from GlButtonGroup.
|
|
13
|
+
|
|
1
14
|
# [105.7.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v105.6.0...v105.7.0) (2024-12-19)
|
|
2
15
|
|
|
3
16
|
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { BButtonGroup } from '../../../vendor/bootstrap-vue/src/components/button-group/button-group';
|
|
2
1
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
3
2
|
|
|
4
3
|
var script = {
|
|
5
4
|
name: 'GlButtonGroup',
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
props: {
|
|
6
|
+
/**
|
|
7
|
+
* When set, rendered the button group in vertical mode.
|
|
8
|
+
*/
|
|
9
|
+
vertical: {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
required: false,
|
|
12
|
+
default: false
|
|
13
|
+
}
|
|
8
14
|
}
|
|
9
15
|
};
|
|
10
16
|
|
|
@@ -12,7 +18,7 @@ var script = {
|
|
|
12
18
|
const __vue_script__ = script;
|
|
13
19
|
|
|
14
20
|
/* template */
|
|
15
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('
|
|
21
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g({class:!_vm.vertical ? 'btn-group' : 'btn-group-vertical',attrs:{"role":"group"}},_vm.$listeners),[_vm._t("default")],2)};
|
|
16
22
|
var __vue_staticRenderFns__ = [];
|
|
17
23
|
|
|
18
24
|
/* style */
|
|
@@ -94,28 +94,25 @@ var script = {
|
|
|
94
94
|
return `${this.containerClass} ${this.borderClass}`;
|
|
95
95
|
},
|
|
96
96
|
hasTitleIcon() {
|
|
97
|
-
|
|
98
|
-
return ((_this$titleIcon = this.titleIcon) === null || _this$titleIcon === void 0 ? void 0 : _this$titleIcon.length) > 0;
|
|
97
|
+
return Boolean(this.titleIcon);
|
|
99
98
|
},
|
|
100
99
|
hasTitle() {
|
|
101
|
-
|
|
102
|
-
return ((_this$title = this.title) === null || _this$title === void 0 ? void 0 : _this$title.length) > 0;
|
|
100
|
+
return Boolean(this.title);
|
|
103
101
|
},
|
|
104
102
|
hasTitlePopover() {
|
|
105
|
-
var _this$titlePopover
|
|
106
|
-
return ((_this$titlePopover = this.titlePopover) === null || _this$titlePopover === void 0 ? void 0 :
|
|
103
|
+
var _this$titlePopover;
|
|
104
|
+
return Boolean((_this$titlePopover = this.titlePopover) === null || _this$titlePopover === void 0 ? void 0 : _this$titlePopover.description);
|
|
107
105
|
},
|
|
108
106
|
hasTitlePopoverLink() {
|
|
109
|
-
var _this$titlePopover2
|
|
110
|
-
return ((_this$titlePopover2 = this.titlePopover) === null || _this$titlePopover2 === void 0 ? void 0 :
|
|
107
|
+
var _this$titlePopover2;
|
|
108
|
+
return Boolean((_this$titlePopover2 = this.titlePopover) === null || _this$titlePopover2 === void 0 ? void 0 : _this$titlePopover2.descriptionLink);
|
|
111
109
|
},
|
|
112
110
|
shouldShowActions() {
|
|
113
111
|
var _this$actions;
|
|
114
112
|
return ((_this$actions = this.actions) === null || _this$actions === void 0 ? void 0 : _this$actions.length) > 0;
|
|
115
113
|
},
|
|
116
114
|
isLoadingDelayed() {
|
|
117
|
-
|
|
118
|
-
return this.loadingDelayed && ((_this$loadingDelayedT = this.loadingDelayedText) === null || _this$loadingDelayedT === void 0 ? void 0 : _this$loadingDelayedT.length) > 0;
|
|
115
|
+
return this.loadingDelayed && Boolean(this.loadingDelayedText);
|
|
119
116
|
}
|
|
120
117
|
}
|
|
121
118
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Component names
|
|
2
2
|
const NAME_BUTTON = 'BButton';
|
|
3
3
|
const NAME_BUTTON_CLOSE = 'BButtonClose';
|
|
4
|
-
const NAME_BUTTON_GROUP = 'BButtonGroup';
|
|
5
4
|
const NAME_COL = 'BCol';
|
|
6
5
|
const NAME_COLLAPSE = 'BCollapse';
|
|
7
6
|
const NAME_DROPDOWN = 'BDropdown';
|
|
@@ -68,4 +67,4 @@ const NAME_TRANSITION = 'BVTransition';
|
|
|
68
67
|
const NAME_TRANSPORTER = 'BVTransporter';
|
|
69
68
|
const NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';
|
|
70
69
|
|
|
71
|
-
export { NAME_BUTTON, NAME_BUTTON_CLOSE,
|
|
70
|
+
export { NAME_BUTTON, NAME_BUTTON_CLOSE, NAME_COL, NAME_COLLAPSE, NAME_COLLAPSE_HELPER, NAME_DROPDOWN, NAME_DROPDOWN_DIVIDER, NAME_DROPDOWN_FORM, NAME_DROPDOWN_GROUP, NAME_DROPDOWN_HEADER, NAME_DROPDOWN_ITEM, NAME_DROPDOWN_ITEM_BUTTON, NAME_DROPDOWN_TEXT, NAME_FORM, NAME_FORM_BUTTON_LABEL_CONTROL, NAME_FORM_CHECKBOX, NAME_FORM_CHECKBOX_GROUP, NAME_FORM_GROUP, NAME_FORM_INPUT, NAME_FORM_INVALID_FEEDBACK, NAME_FORM_RADIO, NAME_FORM_RADIO_GROUP, NAME_FORM_RATING_STAR, NAME_FORM_ROW, NAME_FORM_SELECT, NAME_FORM_SELECT_OPTION, NAME_FORM_SELECT_OPTION_GROUP, NAME_FORM_TEXT, NAME_FORM_TEXTAREA, NAME_FORM_VALID_FEEDBACK, NAME_INPUT_GROUP, NAME_INPUT_GROUP_ADDON, NAME_INPUT_GROUP_APPEND, NAME_INPUT_GROUP_PREPEND, NAME_INPUT_GROUP_TEXT, NAME_LINK, NAME_MODAL, NAME_NAV, NAME_NAV_ITEM, NAME_NAV_ITEM_DROPDOWN, NAME_POPOVER, NAME_POPOVER_HELPER, NAME_POPOVER_TEMPLATE, NAME_POPPER, NAME_TAB, NAME_TABLE, NAME_TABLE_CELL, NAME_TABLE_LITE, NAME_TABLE_SIMPLE, NAME_TABS, NAME_TAB_BUTTON_HELPER, NAME_TBODY, NAME_TFOOT, NAME_TH, NAME_THEAD, NAME_TOAST, NAME_TOASTER, NAME_TOAST_POP, NAME_TOOLTIP, NAME_TOOLTIP_HELPER, NAME_TOOLTIP_TEMPLATE, NAME_TR, NAME_TRANSITION, NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET };
|
package/package.json
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
Button groups are an easy way to group a series of buttons together.
|
|
2
2
|
|
|
3
|
+
```html
|
|
4
|
+
<gl-button-group>
|
|
5
|
+
<gl-button>Download</b-button>
|
|
6
|
+
<gl-button>Browse</b-button>
|
|
7
|
+
<gl-button variant="danger">Delete</b-button>
|
|
8
|
+
</gl-button-group>
|
|
9
|
+
```
|
|
10
|
+
|
|
3
11
|
## Split dropdowns
|
|
4
12
|
|
|
5
13
|
Both `GlCollapsibleListbox` and `GlDisclosureDropdown` can be added as the last
|
|
@@ -22,7 +30,15 @@ dropdown's `toggle-text` _and_ `text-sr-only` props are set.
|
|
|
22
30
|
</gl-button-group>
|
|
23
31
|
```
|
|
24
32
|
|
|
25
|
-
##
|
|
33
|
+
## Vertical variation
|
|
26
34
|
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
Make a set of buttons appear vertically stacked rather than horizontally by setting the `vertical` prop.
|
|
36
|
+
Split button dropdowns are not supported here.
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<gl-button-group vertical>
|
|
40
|
+
<gl-button>Top</b-button>
|
|
41
|
+
<gl-button>Middle</b-button>
|
|
42
|
+
<gl-button>Bottom</b-button>
|
|
43
|
+
</gl-button-group>
|
|
44
|
+
```
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { BButtonGroup } from '../../../vendor/bootstrap-vue/src/components/button-group/button-group';
|
|
3
|
-
|
|
4
2
|
export default {
|
|
5
3
|
name: 'GlButtonGroup',
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
props: {
|
|
5
|
+
/**
|
|
6
|
+
* When set, rendered the button group in vertical mode.
|
|
7
|
+
*/
|
|
8
|
+
vertical: {
|
|
9
|
+
type: Boolean,
|
|
10
|
+
required: false,
|
|
11
|
+
default: false,
|
|
12
|
+
},
|
|
8
13
|
},
|
|
9
14
|
};
|
|
10
15
|
</script>
|
|
11
16
|
<template>
|
|
12
|
-
<
|
|
17
|
+
<div :class="!vertical ? 'btn-group' : 'btn-group-vertical'" role="group" v-on="$listeners">
|
|
13
18
|
<!-- @slot The buttons to group. -->
|
|
14
19
|
<slot></slot>
|
|
15
|
-
</
|
|
20
|
+
</div>
|
|
16
21
|
</template>
|
|
@@ -94,22 +94,22 @@ export default {
|
|
|
94
94
|
return `${this.containerClass} ${this.borderClass}`;
|
|
95
95
|
},
|
|
96
96
|
hasTitleIcon() {
|
|
97
|
-
return this.titleIcon
|
|
97
|
+
return Boolean(this.titleIcon);
|
|
98
98
|
},
|
|
99
99
|
hasTitle() {
|
|
100
|
-
return this.title
|
|
100
|
+
return Boolean(this.title);
|
|
101
101
|
},
|
|
102
102
|
hasTitlePopover() {
|
|
103
|
-
return this.titlePopover?.description
|
|
103
|
+
return Boolean(this.titlePopover?.description);
|
|
104
104
|
},
|
|
105
105
|
hasTitlePopoverLink() {
|
|
106
|
-
return this.titlePopover?.descriptionLink
|
|
106
|
+
return Boolean(this.titlePopover?.descriptionLink);
|
|
107
107
|
},
|
|
108
108
|
shouldShowActions() {
|
|
109
109
|
return this.actions?.length > 0;
|
|
110
110
|
},
|
|
111
111
|
isLoadingDelayed() {
|
|
112
|
-
return this.loadingDelayed && this.loadingDelayedText
|
|
112
|
+
return this.loadingDelayed && Boolean(this.loadingDelayedText);
|
|
113
113
|
},
|
|
114
114
|
},
|
|
115
115
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Component names
|
|
2
2
|
export const NAME_BUTTON = 'BButton'
|
|
3
3
|
export const NAME_BUTTON_CLOSE = 'BButtonClose'
|
|
4
|
-
export const NAME_BUTTON_GROUP = 'BButtonGroup'
|
|
5
4
|
export const NAME_COL = 'BCol'
|
|
6
5
|
export const NAME_COLLAPSE = 'BCollapse'
|
|
7
6
|
export const NAME_DROPDOWN = 'BDropdown'
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue';
|
|
2
|
-
import { NAME_BUTTON_GROUP } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
|
-
import { sortKeys, pick } from '../../utils/object';
|
|
5
|
-
import { makePropsConfigurable, makeProp } from '../../utils/props';
|
|
6
|
-
import { props as props$1 } from '../button/button';
|
|
7
|
-
|
|
8
|
-
// --- Props ---
|
|
9
|
-
|
|
10
|
-
const props = makePropsConfigurable(sortKeys({
|
|
11
|
-
...pick(props$1, ['size']),
|
|
12
|
-
ariaRole: makeProp(PROP_TYPE_STRING, 'group'),
|
|
13
|
-
size: makeProp(PROP_TYPE_STRING),
|
|
14
|
-
tag: makeProp(PROP_TYPE_STRING, 'div'),
|
|
15
|
-
vertical: makeProp(PROP_TYPE_BOOLEAN, false)
|
|
16
|
-
}), NAME_BUTTON_GROUP);
|
|
17
|
-
|
|
18
|
-
// --- Main component ---
|
|
19
|
-
|
|
20
|
-
// @vue/component
|
|
21
|
-
const BButtonGroup = /*#__PURE__*/extend({
|
|
22
|
-
name: NAME_BUTTON_GROUP,
|
|
23
|
-
functional: true,
|
|
24
|
-
props,
|
|
25
|
-
render(h, _ref) {
|
|
26
|
-
let {
|
|
27
|
-
props,
|
|
28
|
-
data,
|
|
29
|
-
children
|
|
30
|
-
} = _ref;
|
|
31
|
-
return h(props.tag, mergeData(data, {
|
|
32
|
-
class: {
|
|
33
|
-
'btn-group': !props.vertical,
|
|
34
|
-
'btn-group-vertical': props.vertical,
|
|
35
|
-
[`btn-group-${props.size}`]: props.size
|
|
36
|
-
},
|
|
37
|
-
attrs: {
|
|
38
|
-
role: props.ariaRole
|
|
39
|
-
}
|
|
40
|
-
}), children);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
export { BButtonGroup, props };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { BButtonGroup } from './button-group';
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# Button Group
|
|
2
|
-
|
|
3
|
-
> Group a series of buttons together on a single line with `<b-button-group>`.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Button Groups are an easy way to group a series of buttons together.
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<div>
|
|
11
|
-
<div>
|
|
12
|
-
<b-button-group>
|
|
13
|
-
<b-button>Button 1</b-button>
|
|
14
|
-
<b-button>Button 2</b-button>
|
|
15
|
-
<b-button>Button 3</b-button>
|
|
16
|
-
</b-button-group>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="mt-3">
|
|
19
|
-
<b-button-group>
|
|
20
|
-
<b-button variant="success">Success</b-button>
|
|
21
|
-
<b-button variant="info">Info</b-button>
|
|
22
|
-
<b-button variant="warning">Warning</b-button>
|
|
23
|
-
</b-button-group>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<!-- b-button-group.vue -->
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Sizing
|
|
31
|
-
|
|
32
|
-
Set the `size` prop to `lg` or `sm` to render larger or smaller, respectively, buttons. There is no
|
|
33
|
-
need to specify the size on the individual buttons.
|
|
34
|
-
|
|
35
|
-
```html
|
|
36
|
-
<div>
|
|
37
|
-
<div>
|
|
38
|
-
<b-button-group>
|
|
39
|
-
<b-button>Button 1</b-button>
|
|
40
|
-
<b-button>Button 2</b-button>
|
|
41
|
-
<b-button>Button 3</b-button>
|
|
42
|
-
</b-button-group>
|
|
43
|
-
</div>
|
|
44
|
-
<div class="mt-3">
|
|
45
|
-
<b-button-group size="sm">
|
|
46
|
-
<b-button>Left</b-button>
|
|
47
|
-
<b-button>Middle</b-button>
|
|
48
|
-
<b-button>Right</b-button>
|
|
49
|
-
</b-button-group>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="mt-3">
|
|
52
|
-
<b-button-group size="lg">
|
|
53
|
-
<b-button>Left</b-button>
|
|
54
|
-
<b-button>Middle</b-button>
|
|
55
|
-
<b-button>Right</b-button>
|
|
56
|
-
</b-button-group>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<!-- b-button-group-sizes.vue -->
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Vertical variation
|
|
64
|
-
|
|
65
|
-
Make a set of buttons appear vertically stacked rather than horizontally by setting the `vertical`
|
|
66
|
-
prop. Split button dropdowns are not supported here.
|
|
67
|
-
|
|
68
|
-
```html
|
|
69
|
-
<div>
|
|
70
|
-
<b-button-group vertical>
|
|
71
|
-
<b-button>Top</b-button>
|
|
72
|
-
<b-button>Middle</b-button>
|
|
73
|
-
<b-button>Bottom</b-button>
|
|
74
|
-
</b-button-group>
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<!-- b-button-group-vertical.vue -->
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Dropdown menu support
|
|
81
|
-
|
|
82
|
-
Add [`<b-dropdown>`](/docs/components/dropdown) menus directly inside your `<b-button-group>`. Note
|
|
83
|
-
that split dropdown menus are not supported when prop `vertical` is set.
|
|
84
|
-
|
|
85
|
-
```html
|
|
86
|
-
<div>
|
|
87
|
-
<b-button-group>
|
|
88
|
-
<b-button>Button</b-button>
|
|
89
|
-
<b-dropdown right text="Menu">
|
|
90
|
-
<b-dropdown-item>Item 1</b-dropdown-item>
|
|
91
|
-
<b-dropdown-item>Item 2</b-dropdown-item>
|
|
92
|
-
<b-dropdown-divider></b-dropdown-divider>
|
|
93
|
-
<b-dropdown-item>Item 3</b-dropdown-item>
|
|
94
|
-
</b-dropdown>
|
|
95
|
-
<b-dropdown right split text="Split Menu">
|
|
96
|
-
<b-dropdown-item>Item 1</b-dropdown-item>
|
|
97
|
-
<b-dropdown-item>Item 2</b-dropdown-item>
|
|
98
|
-
<b-dropdown-divider></b-dropdown-divider>
|
|
99
|
-
<b-dropdown-item>Item 3</b-dropdown-item>
|
|
100
|
-
</b-dropdown>
|
|
101
|
-
</b-button-group>
|
|
102
|
-
</div>
|
|
103
|
-
|
|
104
|
-
<!-- b-button-group-menu.vue -->
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
<!-- Component reference added automatically from component package.json -->
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue'
|
|
2
|
-
import { NAME_BUTTON_GROUP } from '../../constants/components'
|
|
3
|
-
import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
|
|
4
|
-
import { pick, sortKeys } from '../../utils/object'
|
|
5
|
-
import { makeProp, makePropsConfigurable } from '../../utils/props'
|
|
6
|
-
import { props as buttonProps } from '../button/button'
|
|
7
|
-
|
|
8
|
-
// --- Props ---
|
|
9
|
-
|
|
10
|
-
export const props = makePropsConfigurable(
|
|
11
|
-
sortKeys({
|
|
12
|
-
...pick(buttonProps, ['size']),
|
|
13
|
-
ariaRole: makeProp(PROP_TYPE_STRING, 'group'),
|
|
14
|
-
size: makeProp(PROP_TYPE_STRING),
|
|
15
|
-
tag: makeProp(PROP_TYPE_STRING, 'div'),
|
|
16
|
-
vertical: makeProp(PROP_TYPE_BOOLEAN, false)
|
|
17
|
-
}),
|
|
18
|
-
NAME_BUTTON_GROUP
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
// --- Main component ---
|
|
22
|
-
|
|
23
|
-
// @vue/component
|
|
24
|
-
export const BButtonGroup = /*#__PURE__*/ extend({
|
|
25
|
-
name: NAME_BUTTON_GROUP,
|
|
26
|
-
functional: true,
|
|
27
|
-
props,
|
|
28
|
-
render(h, { props, data, children }) {
|
|
29
|
-
return h(
|
|
30
|
-
props.tag,
|
|
31
|
-
mergeData(data, {
|
|
32
|
-
class: {
|
|
33
|
-
'btn-group': !props.vertical,
|
|
34
|
-
'btn-group-vertical': props.vertical,
|
|
35
|
-
[`btn-group-${props.size}`]: props.size
|
|
36
|
-
},
|
|
37
|
-
attrs: { role: props.ariaRole }
|
|
38
|
-
}),
|
|
39
|
-
children
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
})
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils'
|
|
2
|
-
import { BButtonGroup } from './button-group'
|
|
3
|
-
|
|
4
|
-
describe('button-group', () => {
|
|
5
|
-
it('has expected default structure', async () => {
|
|
6
|
-
const wrapper = mount(BButtonGroup)
|
|
7
|
-
|
|
8
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
9
|
-
expect(wrapper.classes()).toContain('btn-group')
|
|
10
|
-
expect(wrapper.classes().length).toBe(1)
|
|
11
|
-
expect(wrapper.attributes('role')).toBeDefined()
|
|
12
|
-
expect(wrapper.attributes('role')).toBe('group')
|
|
13
|
-
expect(wrapper.text()).toBe('')
|
|
14
|
-
|
|
15
|
-
wrapper.destroy()
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
it('should render default slot', async () => {
|
|
19
|
-
const wrapper = mount(BButtonGroup, {
|
|
20
|
-
slots: {
|
|
21
|
-
default: '<span>foobar</span>'
|
|
22
|
-
}
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
26
|
-
expect(wrapper.classes()).toContain('btn-group')
|
|
27
|
-
expect(wrapper.classes().length).toBe(1)
|
|
28
|
-
expect(wrapper.attributes('role')).toBeDefined()
|
|
29
|
-
expect(wrapper.attributes('role')).toBe('group')
|
|
30
|
-
expect(wrapper.find('span').exists()).toBe(true)
|
|
31
|
-
expect(wrapper.text()).toBe('foobar')
|
|
32
|
-
|
|
33
|
-
wrapper.destroy()
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('should apply vertical class', async () => {
|
|
37
|
-
const wrapper = mount(BButtonGroup, {
|
|
38
|
-
propsData: {
|
|
39
|
-
vertical: true
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
44
|
-
expect(wrapper.classes()).toContain('btn-group-vertical')
|
|
45
|
-
expect(wrapper.classes()).not.toContain('btn-group')
|
|
46
|
-
expect(wrapper.classes().length).toBe(1)
|
|
47
|
-
|
|
48
|
-
wrapper.destroy()
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it('should apply size class', async () => {
|
|
52
|
-
const wrapper = mount(BButtonGroup, {
|
|
53
|
-
propsData: {
|
|
54
|
-
size: 'sm'
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
59
|
-
expect(wrapper.classes()).toContain('btn-group')
|
|
60
|
-
expect(wrapper.classes()).toContain('btn-group-sm')
|
|
61
|
-
expect(wrapper.classes().length).toBe(2)
|
|
62
|
-
|
|
63
|
-
wrapper.destroy()
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it('should apply size class when vertical', async () => {
|
|
67
|
-
const wrapper = mount(BButtonGroup, {
|
|
68
|
-
propsData: {
|
|
69
|
-
size: 'sm',
|
|
70
|
-
vertical: true
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
75
|
-
expect(wrapper.classes()).toContain('btn-group-sm')
|
|
76
|
-
expect(wrapper.classes()).toContain('btn-group-vertical')
|
|
77
|
-
expect(wrapper.classes()).not.toContain('btn-group')
|
|
78
|
-
expect(wrapper.classes().length).toBe(2)
|
|
79
|
-
|
|
80
|
-
wrapper.destroy()
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
it('has custom role when aria-role prop set', async () => {
|
|
84
|
-
const wrapper = mount(BButtonGroup, {
|
|
85
|
-
propsData: {
|
|
86
|
-
ariaRole: 'foobar'
|
|
87
|
-
}
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
expect(wrapper.element.tagName).toBe('DIV')
|
|
91
|
-
expect(wrapper.classes()).toContain('btn-group')
|
|
92
|
-
expect(wrapper.classes().length).toBe(1)
|
|
93
|
-
expect(wrapper.attributes('role')).toBeDefined()
|
|
94
|
-
expect(wrapper.attributes('role')).toBe('foobar')
|
|
95
|
-
|
|
96
|
-
wrapper.destroy()
|
|
97
|
-
})
|
|
98
|
-
})
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@bootstrap-vue/button-group",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"meta": {
|
|
5
|
-
"title": "Button Group",
|
|
6
|
-
"description": "Group a series of buttons together on a single line with <b-button-group>.",
|
|
7
|
-
"components": [
|
|
8
|
-
{
|
|
9
|
-
"component": "BButtonGroup",
|
|
10
|
-
"description": "Group a series of buttons together on a single line",
|
|
11
|
-
"aliases": [
|
|
12
|
-
"BBtnGroup"
|
|
13
|
-
],
|
|
14
|
-
"props": [
|
|
15
|
-
{
|
|
16
|
-
"prop": "vertical",
|
|
17
|
-
"description": "When set, rendered the button group in vertical mode"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"slots": [
|
|
21
|
-
{
|
|
22
|
-
"name": "default",
|
|
23
|
-
"description": "Content (buttons) to place in the button group"
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
}
|