@gitlab/ui 32.17.0 → 32.20.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 +28 -0
- package/dist/components/base/accordion/accordion.js +7 -0
- package/dist/components/base/accordion/accordion_item.js +11 -0
- package/dist/components/base/alert/alert.js +3 -3
- package/dist/components/base/button/button.documentation.js +17 -1
- package/dist/components/base/button/button.js +10 -10
- package/dist/components/base/card/card.documentation.js +2 -26
- package/dist/components/base/card/card.js +11 -0
- package/dist/components/base/daterange_picker/daterange_picker.js +43 -1
- package/dist/components/base/dropdown/dropdown.js +9 -9
- package/dist/components/base/form/form_checkbox/form_checkbox.documentation.js +2 -14
- package/dist/components/base/form/form_checkbox/form_checkbox.js +21 -1
- package/dist/components/base/form/form_checkbox/form_checkbox_group.js +2 -2
- package/dist/components/base/form/form_input_group/form_input_group.js +1 -1
- package/dist/components/base/form/form_input_group/form_input_group_mixin.js +2 -2
- package/dist/components/base/form/form_radio_group/form_radio_group.js +2 -2
- package/dist/components/base/tabs/tabs/examples/tabs.basic.example.js +1 -1
- package/dist/components/base/tabs/tabs/examples/tabs.counterbadges.example.js +1 -1
- package/dist/components/base/tabs/tabs/examples/tabs.custom_title.example.js +1 -1
- package/dist/components/base/tabs/tabs/examples/tabs.disabled.example.js +1 -1
- package/dist/components/base/tabs/tabs/examples/tabs.justified.example.js +1 -1
- package/dist/components/base/tabs/tabs/examples/tabs.scrollable.example.js +2 -2
- package/dist/components/base/tabs/tabs/examples/tabs.styles_only.example.js +1 -1
- package/dist/components/base/tabs/tabs/tabs.documentation.js +1 -1
- package/dist/components/mixins/button_mixin.js +4 -4
- package/dist/directives/safe_html/safe_html.js +1 -1
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/dist/utils/charts/mock_data.js +0 -2
- package/dist/utils/constants.js +8 -8
- package/dist/utils/use_fake_date.js +4 -4
- package/dist/utils/validation_utils.js +0 -2
- package/documentation/components_documentation.js +0 -3
- package/documentation/documented_stories.js +5 -0
- package/index.js +1 -1
- package/package.json +12 -12
- package/src/components/base/accordion/accordion.md +0 -4
- package/src/components/base/accordion/accordion.stories.js +58 -20
- package/src/components/base/accordion/accordion.vue +7 -0
- package/src/components/base/accordion/accordion_item.md +0 -4
- package/src/components/base/accordion/accordion_item.stories.js +56 -11
- package/src/components/base/accordion/accordion_item.vue +10 -0
- package/src/components/base/alert/alert.spec.js +3 -3
- package/src/components/base/alert/alert.vue +3 -3
- package/src/components/base/badge/badge.scss +1 -0
- package/src/components/base/button/button.documentation.js +18 -0
- package/src/components/base/button/button.stories.js +13 -13
- package/src/components/base/button/button.vue +15 -15
- package/src/components/base/card/card.documentation.js +0 -27
- package/src/components/base/card/card.md +0 -4
- package/src/components/base/card/card.stories.js +32 -18
- package/src/components/base/card/card.vue +12 -0
- package/src/components/base/datepicker/datepicker.scss +9 -0
- package/src/components/base/datepicker/datepicker.stories.js +1 -1
- package/src/components/base/daterange_picker/daterange_picker.md +0 -4
- package/src/components/base/daterange_picker/daterange_picker.stories.js +151 -88
- package/src/components/base/daterange_picker/daterange_picker.vue +43 -4
- package/src/components/base/dropdown/dropdown.stories.js +5 -5
- package/src/components/base/dropdown/dropdown.vue +12 -12
- package/src/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -15
- package/src/components/base/form/form_checkbox/form_checkbox.md +2 -4
- package/src/components/base/form/form_checkbox/form_checkbox.stories.js +31 -39
- package/src/components/base/form/form_checkbox/form_checkbox.vue +21 -6
- package/src/components/base/form/form_checkbox/form_checkbox_group.vue +1 -1
- package/src/components/base/form/form_input_group/form_input_group.vue +1 -1
- package/src/components/base/form/form_input_group/form_input_group_mixin.js +1 -1
- package/src/components/base/form/form_radio_group/form_radio_group.vue +1 -1
- package/src/components/base/tabs/tabs/examples/tabs.basic.example.vue +2 -2
- package/src/components/base/tabs/tabs/examples/tabs.counterbadges.example.vue +9 -6
- package/src/components/base/tabs/tabs/examples/tabs.custom_title.example.vue +3 -3
- package/src/components/base/tabs/tabs/examples/tabs.disabled.example.vue +3 -3
- package/src/components/base/tabs/tabs/examples/tabs.justified.example.vue +2 -2
- package/src/components/base/tabs/tabs/examples/tabs.scrollable.example.vue +2 -2
- package/src/components/base/tabs/tabs/examples/tabs.styles_only.example.vue +4 -4
- package/src/components/base/tabs/tabs/tabs.md +8 -8
- package/src/components/base/tabs/tabs/tabs.stories.js +42 -40
- package/src/components/mixins/button_mixin.js +3 -3
- package/src/directives/safe_html/safe_html.js +1 -3
- package/src/directives/safe_html/safe_html.spec.js +1 -1
- package/src/scss/utilities.scss +8 -0
- package/src/scss/utility-mixins/sizing.scss +4 -0
- package/src/utils/charts/mock_data.js +0 -2
- package/src/utils/constants.js +7 -7
- package/src/utils/use_fake_date.js +2 -2
- package/src/utils/validation_utils.js +0 -2
- package/dist/components/base/accordion/accordion.documentation.js +0 -20
- package/dist/components/base/accordion/accordion_item.documentation.js +0 -22
- package/dist/components/base/accordion/examples/accordion.auto_collapse.example.js +0 -38
- package/dist/components/base/accordion/examples/accordion.basic.example.js +0 -38
- package/dist/components/base/accordion/examples/accordion.initial_visible.example.js +0 -38
- package/dist/components/base/accordion/examples/index.js +0 -25
- package/dist/components/base/card/examples/card.basic.example.js +0 -38
- package/dist/components/base/card/examples/card.headerfooter.example.js +0 -38
- package/dist/components/base/card/examples/index.js +0 -19
- package/dist/components/base/daterange_picker/daterange_picker.documentation.js +0 -29
- package/dist/components/base/daterange_picker/examples/daterange_picker.basic.example.js +0 -49
- package/dist/components/base/daterange_picker/examples/index.js +0 -12
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.checked.example.js +0 -48
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.checked_disabled.example.js +0 -48
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.disabled.example.js +0 -38
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.help.example.js +0 -38
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.indeterminant.example.js +0 -38
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.unchecked.example.js +0 -38
- package/dist/components/base/form/form_checkbox/examples/form_checkbox.values.example.js +0 -48
- package/dist/components/base/form/form_checkbox/examples/form_checkbox_group.options_array.example.js +0 -58
- package/dist/components/base/form/form_checkbox/examples/form_checkbox_group.slots.example.js +0 -38
- package/dist/components/base/form/form_checkbox/examples/index.js +0 -55
- package/src/components/base/accordion/accordion.documentation.js +0 -19
- package/src/components/base/accordion/accordion_item.documentation.js +0 -20
- package/src/components/base/accordion/examples/accordion.auto_collapse.example.vue +0 -16
- package/src/components/base/accordion/examples/accordion.basic.example.vue +0 -17
- package/src/components/base/accordion/examples/accordion.initial_visible.example.vue +0 -16
- package/src/components/base/accordion/examples/index.js +0 -29
- package/src/components/base/card/examples/card.basic.example.vue +0 -3
- package/src/components/base/card/examples/card.headerfooter.example.vue +0 -11
- package/src/components/base/card/examples/index.js +0 -22
- package/src/components/base/daterange_picker/daterange_picker.documentation.js +0 -34
- package/src/components/base/daterange_picker/examples/daterange_picker.basic.example.vue +0 -13
- package/src/components/base/daterange_picker/examples/index.js +0 -14
- package/src/components/base/form/form_checkbox/examples/form_checkbox.checked.example.vue +0 -13
- package/src/components/base/form/form_checkbox/examples/form_checkbox.checked_disabled.example.vue +0 -13
- package/src/components/base/form/form_checkbox/examples/form_checkbox.disabled.example.vue +0 -3
- package/src/components/base/form/form_checkbox/examples/form_checkbox.help.example.vue +0 -6
- package/src/components/base/form/form_checkbox/examples/form_checkbox.indeterminant.example.vue +0 -3
- package/src/components/base/form/form_checkbox/examples/form_checkbox.unchecked.example.vue +0 -3
- package/src/components/base/form/form_checkbox/examples/form_checkbox.values.example.vue +0 -15
- package/src/components/base/form/form_checkbox/examples/form_checkbox_group.options_array.example.vue +0 -27
- package/src/components/base/form/form_checkbox/examples/form_checkbox_group.slots.example.vue +0 -11
- package/src/components/base/form/form_checkbox/examples/index.js +0 -67
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
# [32.20.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.19.1...v32.20.0) (2021-10-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **Tabs:** Badge counter should use SR only ([4706ff0](https://gitlab.com/gitlab-org/gitlab-ui/commit/4706ff0fb1f6b550133d904868d19bc39d01ef45))
|
|
7
|
+
|
|
8
|
+
## [32.19.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.19.0...v32.19.1) (2021-10-11)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **badge:** Override bootstrap hover style ([c065687](https://gitlab.com/gitlab-org/gitlab-ui/commit/c065687b05ad1d8f5e3a45da0d120517825dae41))
|
|
14
|
+
|
|
15
|
+
# [32.19.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.18.0...v32.19.0) (2021-10-08)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **css:** add `gl-min-w-20` utility ([8340335](https://gitlab.com/gitlab-org/gitlab-ui/commit/8340335ec7c8d76989298154c1cfc761c492bc4a))
|
|
21
|
+
|
|
22
|
+
# [32.18.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.17.0...v32.18.0) (2021-10-05)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **Datepicker:** Add hover and disabled styles ([d5e1a81](https://gitlab.com/gitlab-org/gitlab-ui/commit/d5e1a8180f24a1238c5d86725d490b7e4829f6e7))
|
|
28
|
+
|
|
1
29
|
# [32.17.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.16.0...v32.17.0) (2021-10-04)
|
|
2
30
|
|
|
3
31
|
|
|
@@ -12,11 +12,18 @@ var script = {
|
|
|
12
12
|
},
|
|
13
13
|
|
|
14
14
|
props: {
|
|
15
|
+
/*
|
|
16
|
+
When true, will have the effect of closing other accordion items when one accordion item is visible.
|
|
17
|
+
*/
|
|
15
18
|
autoCollapse: {
|
|
16
19
|
type: Boolean,
|
|
17
20
|
required: false,
|
|
18
21
|
default: false
|
|
19
22
|
},
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.
|
|
26
|
+
*/
|
|
20
27
|
headerLevel: {
|
|
21
28
|
type: Number,
|
|
22
29
|
required: true,
|
|
@@ -16,15 +16,26 @@ var script = {
|
|
|
16
16
|
inject: ['accordionSetId', 'defaultHeaderLevel'],
|
|
17
17
|
inheritAttrs: false,
|
|
18
18
|
props: {
|
|
19
|
+
/*
|
|
20
|
+
Used to set the title of accordion link
|
|
21
|
+
*/
|
|
19
22
|
title: {
|
|
20
23
|
type: String,
|
|
21
24
|
required: true
|
|
22
25
|
},
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
When set, it will ensure the accordion item is initially visible
|
|
29
|
+
*/
|
|
23
30
|
visible: {
|
|
24
31
|
type: Boolean,
|
|
25
32
|
default: false,
|
|
26
33
|
required: false
|
|
27
34
|
},
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.,
|
|
38
|
+
*/
|
|
28
39
|
headerLevel: {
|
|
29
40
|
type: Number,
|
|
30
41
|
required: false,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { alertVariantOptions, alertVariantIconMap,
|
|
1
|
+
import { alertVariantOptions, alertVariantIconMap, buttonCategoryOptions } from '../../../utils/constants';
|
|
2
2
|
import CloseButton from '../../shared_components/close_button/close_button';
|
|
3
3
|
import GlButton from '../button/button';
|
|
4
4
|
import GlIcon from '../icon/icon';
|
|
@@ -106,7 +106,7 @@ var script = {
|
|
|
106
106
|
attrs: {
|
|
107
107
|
href: this.primaryButtonLink,
|
|
108
108
|
variant: 'confirm',
|
|
109
|
-
category:
|
|
109
|
+
category: buttonCategoryOptions.primary
|
|
110
110
|
},
|
|
111
111
|
listeners: {
|
|
112
112
|
click: this.primaryButtonClicked
|
|
@@ -116,7 +116,7 @@ var script = {
|
|
|
116
116
|
attrs: {
|
|
117
117
|
href: this.secondaryButtonLink,
|
|
118
118
|
variant: 'default',
|
|
119
|
-
category:
|
|
119
|
+
category: buttonCategoryOptions.secondary
|
|
120
120
|
},
|
|
121
121
|
listeners: {
|
|
122
122
|
click: this.secondaryButtonClicked
|
|
@@ -2,7 +2,23 @@ var description = "Buttons execute an action, either in the background or foregr
|
|
|
2
2
|
|
|
3
3
|
var button_documentation = {
|
|
4
4
|
description,
|
|
5
|
-
followsDesignSystem: true
|
|
5
|
+
followsDesignSystem: true,
|
|
6
|
+
bootstrapComponent: 'b-button',
|
|
7
|
+
bootstrapPropsInfo: {
|
|
8
|
+
category: {
|
|
9
|
+
enum: 'buttonCategoryOptions'
|
|
10
|
+
},
|
|
11
|
+
variant: {
|
|
12
|
+
enum: 'buttonVariantOptions'
|
|
13
|
+
},
|
|
14
|
+
size: {
|
|
15
|
+
enum: 'buttonSizeOptions'
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
events: [{
|
|
19
|
+
event: 'click',
|
|
20
|
+
description: 'Emitted when clicked on button'
|
|
21
|
+
}]
|
|
6
22
|
};
|
|
7
23
|
|
|
8
24
|
export default button_documentation;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BButton } from 'bootstrap-vue/esm/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { buttonCategoryOptions, buttonVariantOptions, buttonSizeOptions, buttonSizeOptionsMap } from '../../../utils/constants';
|
|
3
3
|
import { logWarning } from '../../../utils/utils';
|
|
4
4
|
import { SafeLinkMixin } from '../../mixins/safe_link_mixin';
|
|
5
5
|
import GlIcon from '../icon/icon';
|
|
@@ -17,20 +17,20 @@ var script = {
|
|
|
17
17
|
category: {
|
|
18
18
|
type: String,
|
|
19
19
|
required: false,
|
|
20
|
-
default:
|
|
21
|
-
validator: value => Object.keys(
|
|
20
|
+
default: buttonCategoryOptions.primary,
|
|
21
|
+
validator: value => Object.keys(buttonCategoryOptions).includes(value)
|
|
22
22
|
},
|
|
23
23
|
variant: {
|
|
24
24
|
type: String,
|
|
25
25
|
required: false,
|
|
26
|
-
default:
|
|
27
|
-
validator: value => Object.keys(
|
|
26
|
+
default: buttonVariantOptions.default,
|
|
27
|
+
validator: value => Object.keys(buttonVariantOptions).includes(value)
|
|
28
28
|
},
|
|
29
29
|
size: {
|
|
30
30
|
type: String,
|
|
31
31
|
required: false,
|
|
32
|
-
default:
|
|
33
|
-
validator: value => Object.keys(
|
|
32
|
+
default: buttonSizeOptions.medium,
|
|
33
|
+
validator: value => Object.keys(buttonSizeOptions).includes(value)
|
|
34
34
|
},
|
|
35
35
|
selected: {
|
|
36
36
|
type: Boolean,
|
|
@@ -78,9 +78,9 @@ var script = {
|
|
|
78
78
|
|
|
79
79
|
buttonClasses() {
|
|
80
80
|
const classes = ['gl-button'];
|
|
81
|
-
const nonCategoryVariants = [
|
|
81
|
+
const nonCategoryVariants = [buttonVariantOptions.dashed, buttonVariantOptions.link, buttonVariantOptions.reset];
|
|
82
82
|
|
|
83
|
-
if (!nonCategoryVariants.includes(this.variant) && this.category !==
|
|
83
|
+
if (!nonCategoryVariants.includes(this.variant) && this.category !== buttonCategoryOptions.primary) {
|
|
84
84
|
classes.push(`btn-${this.variant}-${this.category}`);
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -98,7 +98,7 @@ var script = {
|
|
|
98
98
|
},
|
|
99
99
|
|
|
100
100
|
buttonSize() {
|
|
101
|
-
return
|
|
101
|
+
return buttonSizeOptionsMap[this.size];
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
},
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var card = "# GlCard\n\n<!-- STORY -->\n\nCards are a flexible component used to display content and actions in a variety of contexts.\nThey are generally restricted to a single topic and it should be easy for users to scan relevant and\nactionable information. Content, such as images and text, should be positioned within them in a\nmanner that demonstrates their intended hierarchy.\n";
|
|
1
|
+
var card = "Cards are a flexible component used to display content and actions in a variety of contexts.\nThey are generally restricted to a single topic and it should be easy for users to scan relevant and\nactionable information. Content, such as images and text, should be positioned within them in a\nmanner that demonstrates their intended hierarchy.\n";
|
|
4
2
|
|
|
5
3
|
var description = /*#__PURE__*/Object.freeze({
|
|
6
4
|
__proto__: null,
|
|
@@ -9,29 +7,7 @@ var description = /*#__PURE__*/Object.freeze({
|
|
|
9
7
|
|
|
10
8
|
var card_documentation = {
|
|
11
9
|
followsDesignSystem: true,
|
|
12
|
-
description
|
|
13
|
-
examples,
|
|
14
|
-
propsInfo: {
|
|
15
|
-
headerClass: {
|
|
16
|
-
additionalInfo: 'Additional CSS class(es) to be applied to the header'
|
|
17
|
-
},
|
|
18
|
-
bodyClass: {
|
|
19
|
-
additionalInfo: 'Additional CSS class(es) to be applied to the body'
|
|
20
|
-
},
|
|
21
|
-
footerClass: {
|
|
22
|
-
additionalInfo: 'Additional CSS class(es) to be applied to the footer'
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
slots: [{
|
|
26
|
-
name: 'header',
|
|
27
|
-
description: "The card's header content"
|
|
28
|
-
}, {
|
|
29
|
-
name: 'default',
|
|
30
|
-
description: "The card's main content."
|
|
31
|
-
}, {
|
|
32
|
-
name: 'footer',
|
|
33
|
-
description: "The card's footer content"
|
|
34
|
-
}]
|
|
10
|
+
description
|
|
35
11
|
};
|
|
36
12
|
|
|
37
13
|
export default card_documentation;
|
|
@@ -2,16 +2,27 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
2
2
|
|
|
3
3
|
var script = {
|
|
4
4
|
props: {
|
|
5
|
+
/**
|
|
6
|
+
* Additional CSS class(es) to be applied to the header.
|
|
7
|
+
*/
|
|
5
8
|
headerClass: {
|
|
6
9
|
type: [String, Object, Array],
|
|
7
10
|
required: false,
|
|
8
11
|
default: ''
|
|
9
12
|
},
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Additional CSS class(es) to be applied to the body.
|
|
16
|
+
*/
|
|
10
17
|
bodyClass: {
|
|
11
18
|
type: [String, Object, Array],
|
|
12
19
|
required: false,
|
|
13
20
|
default: ''
|
|
14
21
|
},
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Additional CSS class(es) to be applied to the footer.
|
|
25
|
+
*/
|
|
15
26
|
footerClass: {
|
|
16
27
|
type: [String, Object, Array],
|
|
17
28
|
required: false,
|
|
@@ -205,10 +205,52 @@ var script = {
|
|
|
205
205
|
onEndDateSelected(endDate) {
|
|
206
206
|
this.openToCalendar = false;
|
|
207
207
|
this.endDate = endDate;
|
|
208
|
+
/**
|
|
209
|
+
* Emitted when start or end date selected with {startDate, endDate} value
|
|
210
|
+
*
|
|
211
|
+
* @event input
|
|
212
|
+
* */
|
|
213
|
+
|
|
208
214
|
this.$emit('input', {
|
|
209
215
|
startDate: this.startDate,
|
|
210
216
|
endDate
|
|
211
217
|
});
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
onStartPickerOpen() {
|
|
221
|
+
/**
|
|
222
|
+
* Emitted when the primary action button is clicked.
|
|
223
|
+
*
|
|
224
|
+
* @event start-picker-open
|
|
225
|
+
* */
|
|
226
|
+
this.$emit('start-picker-open');
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
onStartPickerClose() {
|
|
230
|
+
/**
|
|
231
|
+
* Emitted when the start date datepicker is hidden.
|
|
232
|
+
*
|
|
233
|
+
* @event start-picker-close
|
|
234
|
+
* */
|
|
235
|
+
this.$emit('start-picker-close');
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
onEndPickerOpen() {
|
|
239
|
+
/**
|
|
240
|
+
* Emitted when the end date datepicker becomes visible.
|
|
241
|
+
*
|
|
242
|
+
* @event end-picker-open
|
|
243
|
+
* */
|
|
244
|
+
this.$emit('end-picker-open');
|
|
245
|
+
},
|
|
246
|
+
|
|
247
|
+
onEndPickerClose() {
|
|
248
|
+
/**
|
|
249
|
+
* Emitted when the end date datepicker is hidden.
|
|
250
|
+
*
|
|
251
|
+
* @event end-picker-close
|
|
252
|
+
* */
|
|
253
|
+
this.$emit('end-picker-close');
|
|
212
254
|
}
|
|
213
255
|
|
|
214
256
|
}
|
|
@@ -218,7 +260,7 @@ var script = {
|
|
|
218
260
|
const __vue_script__ = script;
|
|
219
261
|
|
|
220
262
|
/* template */
|
|
221
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker"},[_c('div',{class:_vm.startPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer},on:{"input":_vm.onStartDateSelected,"open":
|
|
263
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker"},[_c('div',{class:_vm.startPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer},on:{"input":_vm.onStartDateSelected,"open":_vm.onStartPickerOpen,"close":_vm.onStartPickerClose},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v;},expression:"startDate"}})],1),_vm._v(" "),_c('div',{class:_vm.endPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.toLabel))]),_vm._v(" "),_c('gl-datepicker',{key:_vm.numericStartTime,attrs:{"min-date":_vm.toCalendarMinDate,"max-date":_vm.toCalendarMaxDate,"start-range":_vm.toCalendarMinDate,"end-range":_vm.toCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.endPickerTarget,"container":_vm.endPickerContainer,"start-opened":_vm.openToCalendar,"default-date":_vm.toCalendarDefaultDate},on:{"input":_vm.onEndDateSelected,"open":_vm.onEndPickerOpen,"close":_vm.onEndPickerClose},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v;},expression:"endDate"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-flex-direction-row gl-align-items-center gl-text-gray-500 gl-ml-2",class:_vm.dateRangeIndicatorClass,attrs:{"data-testid":"daterange-picker-indicator"}},[_vm._t("default",null,null,{ daysSelected: _vm.numberOfDays }),_vm._v(" "),(_vm.tooltip)?_c('gl-icon',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],staticClass:"gl-ml-2",attrs:{"name":"information-o","title":_vm.tooltip,"size":16}}):_vm._e()],2)])};
|
|
222
264
|
var __vue_staticRenderFns__ = [];
|
|
223
265
|
|
|
224
266
|
/* style */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BDropdown } from 'bootstrap-vue/esm/index.js';
|
|
2
2
|
import { selectAll, isVisible } from 'bootstrap-vue/esm/utils/dom';
|
|
3
|
-
import {
|
|
4
|
-
import ButtonMixin from '../../mixins/button_mixin';
|
|
3
|
+
import { buttonCategoryOptions, newDropdownVariantOptions, buttonSizeOptions } from '../../../utils/constants';
|
|
4
|
+
import { ButtonMixin } from '../../mixins/button_mixin';
|
|
5
5
|
import GlButton from '../button/button';
|
|
6
6
|
import GlIcon from '../icon/icon';
|
|
7
7
|
import GlLoadingIcon from '../loading_icon/loading_icon';
|
|
@@ -93,8 +93,8 @@ var script = {
|
|
|
93
93
|
category: {
|
|
94
94
|
type: String,
|
|
95
95
|
required: false,
|
|
96
|
-
default:
|
|
97
|
-
validator: value => Object.keys(
|
|
96
|
+
default: buttonCategoryOptions.primary,
|
|
97
|
+
validator: value => Object.keys(buttonCategoryOptions).includes(value)
|
|
98
98
|
},
|
|
99
99
|
variant: {
|
|
100
100
|
type: String,
|
|
@@ -105,8 +105,8 @@ var script = {
|
|
|
105
105
|
size: {
|
|
106
106
|
type: String,
|
|
107
107
|
required: false,
|
|
108
|
-
default:
|
|
109
|
-
validator: value => Object.keys(
|
|
108
|
+
default: buttonSizeOptions.medium,
|
|
109
|
+
validator: value => Object.keys(buttonSizeOptions).includes(value)
|
|
110
110
|
},
|
|
111
111
|
icon: {
|
|
112
112
|
type: String,
|
|
@@ -160,8 +160,8 @@ var script = {
|
|
|
160
160
|
return [this.toggleClass, {
|
|
161
161
|
'gl-button': true,
|
|
162
162
|
'gl-dropdown-toggle': true,
|
|
163
|
-
[`btn-${this.variant}-secondary`]: this.category ===
|
|
164
|
-
[`btn-${this.variant}-tertiary`]: this.category ===
|
|
163
|
+
[`btn-${this.variant}-secondary`]: this.category === buttonCategoryOptions.secondary || this.category === buttonCategoryOptions.tertiary && this.split,
|
|
164
|
+
[`btn-${this.variant}-tertiary`]: this.category === buttonCategoryOptions.tertiary && !this.split,
|
|
165
165
|
'dropdown-icon-only': this.isIconOnly,
|
|
166
166
|
'dropdown-icon-text': this.isIconWithText
|
|
167
167
|
}];
|
|
@@ -172,7 +172,7 @@ var script = {
|
|
|
172
172
|
'gl-button': true,
|
|
173
173
|
'split-content-button': Boolean(this.text),
|
|
174
174
|
'icon-split-content-button': Boolean(this.icon),
|
|
175
|
-
[`btn-${this.variant}-secondary`]: this.category ===
|
|
175
|
+
[`btn-${this.variant}-secondary`]: this.category === buttonCategoryOptions.secondary || this.category === buttonCategoryOptions.tertiary
|
|
176
176
|
}];
|
|
177
177
|
},
|
|
178
178
|
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var description = "# Form Checkbox\n\nForm checkbox groups for general use inside forms.\n\n## Stacked\n\nBy default, the GitLab Design guide mandates the `<gl-form-checkbox-group>` be `stacked` by default\nand is non-changeable at this time.\n";
|
|
1
|
+
var description = "Form checkbox groups for general use inside forms.\n\n## Stacked\n\nBy default, the GitLab Design guide mandates the `<gl-form-checkbox-group>` be `stacked` and is\nnon-changeable at this time.\n";
|
|
4
2
|
|
|
5
3
|
var form_checkbox_documentation = {
|
|
6
4
|
description,
|
|
7
|
-
|
|
8
|
-
bootstrapComponent: 'b-form-checkbox',
|
|
9
|
-
followsDesignSystem: true,
|
|
10
|
-
events: [{
|
|
11
|
-
event: 'input',
|
|
12
|
-
description: 'Emitted when checked state changes',
|
|
13
|
-
args: [{
|
|
14
|
-
arg: 'checked',
|
|
15
|
-
description: 'Whether the checkbox is checked'
|
|
16
|
-
}]
|
|
17
|
-
}]
|
|
5
|
+
followsDesignSystem: true
|
|
18
6
|
};
|
|
19
7
|
|
|
20
8
|
export default form_checkbox_documentation;
|
|
@@ -10,6 +10,26 @@ var script = {
|
|
|
10
10
|
model: {
|
|
11
11
|
prop: 'checked',
|
|
12
12
|
event: 'input'
|
|
13
|
+
},
|
|
14
|
+
methods: {
|
|
15
|
+
change($event) {
|
|
16
|
+
/**
|
|
17
|
+
* Emitted when selected value(s) is changed due to user interaction.
|
|
18
|
+
*
|
|
19
|
+
* @event change
|
|
20
|
+
*/
|
|
21
|
+
this.$emit('change', $event);
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
input($event) {
|
|
25
|
+
/**
|
|
26
|
+
* Emitted when checked state is changed.
|
|
27
|
+
*
|
|
28
|
+
* @event input
|
|
29
|
+
*/
|
|
30
|
+
this.$emit('input', $event);
|
|
31
|
+
}
|
|
32
|
+
|
|
13
33
|
}
|
|
14
34
|
};
|
|
15
35
|
|
|
@@ -17,7 +37,7 @@ var script = {
|
|
|
17
37
|
const __vue_script__ = script;
|
|
18
38
|
|
|
19
39
|
/* template */
|
|
20
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-checkbox',_vm._b({staticClass:"gl-form-checkbox",on:{"change":
|
|
40
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-checkbox',_vm._b({staticClass:"gl-form-checkbox",on:{"change":_vm.change,"input":_vm.input}},'b-form-checkbox',_vm.$attrs,false),[_vm._t("default"),_vm._v(" "),(Boolean(_vm.$scopedSlots.help))?_c('p',{staticClass:"help-text"},[_vm._t("help")],2):_vm._e()],2)};
|
|
21
41
|
var __vue_staticRenderFns__ = [];
|
|
22
42
|
|
|
23
43
|
/* style */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BFormCheckboxGroup } from 'bootstrap-vue/esm/index.js';
|
|
2
2
|
import formOptionsMixin from 'bootstrap-vue/esm/mixins/form-options';
|
|
3
|
-
import
|
|
3
|
+
import { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';
|
|
4
4
|
import GlFormCheckbox from './form_checkbox';
|
|
5
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ var script = {
|
|
|
11
11
|
GlFormCheckbox
|
|
12
12
|
},
|
|
13
13
|
directives: {
|
|
14
|
-
SafeHtml
|
|
14
|
+
SafeHtml: SafeHtmlDirective
|
|
15
15
|
},
|
|
16
16
|
mixins: [formOptionsMixin],
|
|
17
17
|
inheritAttrs: false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BInputGroup, BInputGroupPrepend, BInputGroupAppend, BFormInput } from 'bootstrap-vue/esm/index.js';
|
|
2
2
|
import GlDropdown from '../../dropdown/dropdown';
|
|
3
3
|
import GlDropdownItem from '../../dropdown/dropdown_item';
|
|
4
|
-
import InputGroupMixin from './form_input_group_mixin';
|
|
4
|
+
import { InputGroupMixin } from './form_input_group_mixin';
|
|
5
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
6
|
|
|
7
7
|
var script = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BFormRadioGroup } from 'bootstrap-vue/esm/index.js';
|
|
2
2
|
import formOptionsMixin from 'bootstrap-vue/esm/mixins/form-options';
|
|
3
|
-
import
|
|
3
|
+
import { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';
|
|
4
4
|
import GlFormRadio from '../form_radio/form_radio';
|
|
5
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ var script = {
|
|
|
13
13
|
GlFormRadio
|
|
14
14
|
},
|
|
15
15
|
directives: {
|
|
16
|
-
SafeHtml
|
|
16
|
+
SafeHtml: SafeHtmlDirective
|
|
17
17
|
},
|
|
18
18
|
mixins: [formOptionsMixin],
|
|
19
19
|
inheritAttrs: false,
|
|
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
/* script */
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
|
|
7
7
|
var __vue_staticRenderFns__ = [];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
/* script */
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("500")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 1\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 2\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 3\n ")])],1)};
|
|
7
7
|
var __vue_staticRenderFns__ = [];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
/* script */
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('i',[_vm._v("custom")]),_vm._v(" "),_c('strong',[_vm._v("Title")])]},proxy:true}])},[_vm._v("\n Tab panel 1\n ")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
|
|
7
7
|
var __vue_staticRenderFns__ = [];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
/* script */
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 3","disabled":""}},[_vm._v("Disabled tab panel")])],1)};
|
|
7
7
|
var __vue_staticRenderFns__ = [];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
/* script */
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',{attrs:{"justified":""}},[_c('gl-tab',{attrs:{"title":"
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',{attrs:{"justified":""}},[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
|
|
7
7
|
var __vue_staticRenderFns__ = [];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
@@ -3,8 +3,8 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
3
3
|
var script = {
|
|
4
4
|
tabs: Array(20).fill(1).map((_, index) => index + 1).map(id => ({
|
|
5
5
|
id,
|
|
6
|
-
title: `
|
|
7
|
-
content: `
|
|
6
|
+
title: `Tab ${id}`,
|
|
7
|
+
content: `Tab panel ${id} content...`
|
|
8
8
|
}))
|
|
9
9
|
};
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
4
4
|
|
|
5
5
|
/* template */
|
|
6
6
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;_vm._self._c||_h;return _vm._m(0)};
|
|
7
|
-
var __vue_staticRenderFns__ = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tabs gl-tabs"},[_c('ul',{staticClass:"nav gl-tabs-nav",attrs:{"role":"tablist"}},[_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("
|
|
7
|
+
var __vue_staticRenderFns__ = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tabs gl-tabs"},[_c('ul',{staticClass:"nav gl-tabs-nav",attrs:{"role":"tablist"}},[_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("Tab 1")])]),_vm._v(" "),_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("Tab 2")])])]),_vm._v(" "),_c('div',{staticClass:"tab-content gl-tab-content"},[_c('div',{staticClass:"tab-pane active",attrs:{"role":"tabpanel"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('div',{staticClass:"tab-pane",attrs:{"role":"tabpanel"}},[_vm._v("Tab panel 2")])])])}];
|
|
8
8
|
|
|
9
9
|
/* style */
|
|
10
10
|
const __vue_inject_styles__ = undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import examples from './examples';
|
|
2
2
|
|
|
3
|
-
var description = "# Tabs\n\n<!-- STORY -->\n## Usage\n\nTabs are used to divide content into meaningful, related sections. Tabs allow users to focus on one\nspecific view at a time while maintaining sight of all the relevant content options available. Each\ntab, when active, will reveal it’s own unique content.\n\n## Using the component Vue\n\n~~~js\n<gl-tabs theme=\"indigo\">\n <gl-tab title=\"
|
|
3
|
+
var description = "# Tabs\n\n<!-- STORY -->\n## Usage\n\nTabs are used to divide content into meaningful, related sections. Tabs allow users to focus on one\nspecific view at a time while maintaining sight of all the relevant content options available. Each\ntab, when active, will reveal it’s own unique content.\n\n## Using the component Vue\n\n~~~js\n<gl-tabs theme=\"indigo\">\n <gl-tab title=\"Tab 1\">\n Tab panel 1\n </gl-tab>\n <gl-tab title=\"Tab 2\">\n Tab panel 2\n </gl-tab>\n</gl-tabs>\n~~~\n\n## Using the component HTML\n\n~~~js\n<div class=\"tabs gl-tabs\">\n <ul role=\"tablist\" class=\"nav gl-tabs-nav\">\n <li role=\"presentation\" class=\"nav-item\">\n <a\n role=\"tab\"\n target=\"_self\"\n href=\"#\"\n class=\"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo\"\n >Tab 1</a>\n </li>\n <li role=\"presentation\" class=\"nav-item\">\n <a role=\"tab\" target=\"_self\" href=\"#\" class=\"nav-link gl-tab-nav-item\">Tab 2</a>\n </li>\n </ul>\n <div class=\"tab-content gl-tab-content\">\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content active\">Tab panel 1</div>\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content\">Tab panel 2</div>\n </div>\n</div>\n~~~\n\n## Adding Action Buttons to the Tabs\n\nTabs start and end slot can be populated via props: `action-primary`, `action-secondary` and\n`action-tertiary`. These props allow you to handle how a primary, secondary and tertiary button will\nbehave and look. The props receive an object as such:\n\n~~~js\n{\n text: 'Save Changes',\n attributes: [\n { variant: 'info' },\n { disabled: this.someState },\n { class: 'some-class' },\n ...\n ]\n}\n~~~\n\n## Scrollable tab buttons\n\nBy default, `GlTab` will wrap tab buttons when they overflow the container. To\nenable horizontally scrolling for the tab buttons, use the `GlScrollableTabs`\ncomponent. This is a separate Vue component because of some limitations:\n\n- The action props (e.g., `action-primary`) are not respected in `GlScrollableTabs`. At the\n moment, BootstrapVue does not provide a reliable way for us to achieve this desired combination.\n\n`GlScrollableTabs` composes `GlTabs` and passes through every listener, slot, or prop (with the above\nexceptions).\n\n~~~html\n<gl-scrollable-tabs theme=\"indigo\">\n <gl-tab v-for=\"tab in tabs\" :key=\"tab.key\" :title=\"tab.title\"> {{ tab.content }} </gl-tab>\n</gl-scrollable-tabs>\n~~~\n";
|
|
4
4
|
|
|
5
5
|
var tabs_documentation = {
|
|
6
6
|
description,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buttonSizeOptionsMap } from '../../utils/constants';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const ButtonMixin = {
|
|
4
4
|
computed: {
|
|
5
5
|
buttonSize() {
|
|
6
|
-
return
|
|
6
|
+
return buttonSizeOptionsMap[this.size];
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
}
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export
|
|
12
|
+
export { ButtonMixin };
|