@gitlab/ui 35.1.0 → 36.3.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 +35 -0
- package/dist/components/base/filtered_search/filtered_search.documentation.js +6 -0
- package/dist/components/base/filtered_search/filtered_search.js +12 -2
- package/dist/components/base/filtered_search/filtered_search_term.documentation.js +6 -0
- package/dist/components/base/filtered_search/filtered_search_term.js +11 -1
- package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +6 -0
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +11 -1
- package/dist/components/base/popover/popover.documentation.js +1 -23
- package/dist/components/base/popover/popover.js +10 -0
- package/dist/components/base/search_box_by_click/search_box_by_click.documentation.js +3 -0
- package/dist/components/base/search_box_by_click/search_box_by_click.js +6 -1
- package/dist/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/documentation/all_components.js +2 -2
- package/documentation/documented_stories.js +1 -0
- package/package.json +4 -7
- package/src/charts.js +19 -0
- package/src/components/base/alert/alert.stories.js +1 -1
- package/src/components/base/avatar/avatar.stories.js +1 -1
- package/src/components/base/avatar_labeled/avatar_labeled.stories.js +1 -1
- package/src/components/base/avatar_link/avatar_link.stories.js +1 -1
- package/src/components/base/avatars_inline/avatars_inline.stories.js +1 -1
- package/src/components/base/badge/badge.stories.js +1 -1
- package/src/components/base/banner/banner.stories.js +1 -1
- package/src/components/base/breadcrumb/breadcrumb.stories.js +1 -1
- package/src/components/base/broadcast_message/broadcast_message.stories.js +1 -1
- package/src/components/base/button/button.stories.js +1 -1
- package/src/components/base/button_group/button_group.stories.js +1 -1
- package/src/components/base/collapse/collapse.stories.js +1 -1
- package/src/components/base/drawer/drawer.stories.js +1 -1
- package/src/components/base/dropdown/dropdown.stories.js +1 -1
- package/src/components/base/dropdown/dropdown_divider.stories.js +1 -1
- package/src/components/base/dropdown/dropdown_form.stories.js +1 -1
- package/src/components/base/dropdown/dropdown_item.stories.js +1 -1
- package/src/components/base/dropdown/dropdown_section_header.stories.js +1 -1
- package/src/components/base/dropdown/dropdown_text.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search.documentation.js +6 -0
- package/src/components/base/filtered_search/filtered_search.spec.js +81 -47
- package/src/components/base/filtered_search/filtered_search.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search.vue +13 -0
- package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search_term.documentation.js +6 -0
- package/src/components/base/filtered_search/filtered_search_term.spec.js +42 -9
- package/src/components/base/filtered_search/filtered_search_term.vue +13 -0
- package/src/components/base/filtered_search/filtered_search_token.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +6 -0
- package/src/components/base/filtered_search/filtered_search_token_segment.spec.js +53 -0
- package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +1 -1
- package/src/components/base/filtered_search/filtered_search_token_segment.vue +12 -0
- package/src/components/base/form/form.stories.js +1 -1
- package/src/components/base/form/form_checkbox/form_checkbox.stories.js +1 -1
- package/src/components/base/form/form_group/form_group.stories.js +1 -1
- package/src/components/base/form/form_input/form_input.stories.js +1 -1
- package/src/components/base/form/form_input_group/form_input_group.stories.js +1 -1
- package/src/components/base/form/form_radio/form_radio.stories.js +1 -1
- package/src/components/base/form/form_radio_group/form_radio_group.stories.js +1 -1
- package/src/components/base/form/form_select/form_select.stories.js +1 -1
- package/src/components/base/form/form_text/form_text.vue +3 -1
- package/src/components/base/form/form_textarea/form_textarea.stories.js +1 -1
- package/src/components/base/icon/icon.stories.js +1 -1
- package/src/components/base/infinite_scroll/infinite_scroll.stories.js +1 -1
- package/src/components/base/label/label.stories.js +1 -1
- package/src/components/base/link/link.stories.js +1 -1
- package/src/components/base/loading_icon/loading_icon.stories.js +1 -1
- package/src/components/base/modal/modal.stories.js +1 -1
- package/src/components/base/nav/nav.stories.js +1 -1
- package/src/components/base/navbar/navbar.stories.js +1 -1
- package/src/components/base/paginated_list/paginated_list.stories.js +1 -1
- package/src/components/base/path/path.stories.js +1 -1
- package/src/components/base/popover/popover.documentation.js +0 -25
- package/src/components/base/popover/popover.stories.js +79 -75
- package/src/components/base/popover/popover.vue +8 -0
- package/src/components/base/progress_bar/progress_bar.stories.js +1 -1
- package/src/components/base/search_box_by_click/search_box_by_click.documentation.js +3 -0
- package/src/components/base/search_box_by_click/search_box_by_click.spec.js +14 -3
- package/src/components/base/search_box_by_click/search_box_by_click.stories.js +1 -1
- package/src/components/base/search_box_by_click/search_box_by_click.vue +7 -0
- package/src/components/base/search_box_by_type/search_box_by_type.stories.js +1 -1
- package/src/components/base/segmented_control/segmented_control.stories.js +1 -1
- package/src/components/base/skeleton_loader/skeleton_loader.stories.js +1 -1
- package/src/components/base/skeleton_loading/skeleton_loading.stories.js +1 -1
- package/src/components/base/sorting/sorting.stories.js +1 -1
- package/src/components/base/sorting/sorting_item.stories.js +1 -1
- package/src/components/base/table/table.stories.js +1 -1
- package/src/components/base/tabs/tabs/tabs.spec.js +1 -1
- package/src/components/base/tabs/tabs/tabs.stories.js +1 -1
- package/src/components/base/toast/toast.stories.js +1 -1
- package/src/components/base/toggle/toggle.stories.js +1 -1
- package/src/components/base/token/token.stories.js +1 -1
- package/src/components/base/tooltip/tooltip.stories.js +1 -1
- package/src/components/charts/area/area.stories.js +1 -1
- package/src/components/charts/bar/bar.stories.js +1 -1
- package/src/components/charts/chart/chart.stories.js +2 -2
- package/src/components/charts/column/column.stories.js +1 -1
- package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -1
- package/src/components/charts/heatmap/heatmap.stories.js +1 -1
- package/src/components/charts/legend/legend.stories.js +1 -1
- package/src/components/charts/line/line.stories.js +1 -1
- package/src/components/charts/series_label/series_label.stories.js +1 -1
- package/src/components/charts/single_stat/single_stat.stories.js +1 -1
- package/src/components/charts/sparkline/sparkline.stories.js +1 -1
- package/src/components/charts/stacked_column/stacked_column.stories.js +1 -1
- package/src/components/charts/tooltip/tooltip.stories.js +1 -1
- package/src/components/regions/dashboard_skeleton/dashboard_skeleton.stories.js +1 -1
- package/src/components/regions/empty_state/empty_state.stories.js +1 -1
- package/src/components/utilities/friendly_wrap/friendly_wrap.stories.js +1 -1
- package/src/components/utilities/intersection_observer/intersection_observer.stories.js +1 -1
- package/src/components/utilities/intersperse/intersperse.stories.js +1 -1
- package/src/components/utilities/sprintf/sprintf.stories.js +1 -1
- package/src/components/utilities/truncate/truncate.stories.js +1 -1
- package/{config.js → src/config.js} +1 -1
- package/src/directives/hover_load/hover_load.stories.js +1 -1
- package/src/directives/outside/outside.stories.js +1 -1
- package/src/directives/resize_observer/resize_observer.stories.js +1 -1
- package/src/directives/safe_html/safe_html.stories.js +1 -1
- package/src/index.js +111 -0
- package/src/scss/utilities.scss +20 -0
- package/src/scss/utility-mixins/color.scss +4 -0
- package/src/scss/utility-mixins/spacing.scss +6 -0
- package/{utils.js → src/utils.js} +1 -1
- package/charts.js +0 -19
- package/dist/components/base/popover/examples/index.js +0 -25
- package/dist/components/base/popover/examples/popover.basic.example.js +0 -38
- package/dist/components/base/popover/examples/popover.loading.example.js +0 -38
- package/dist/components/base/popover/examples/popover.notitle.example.js +0 -38
- package/index.js +0 -111
- package/src/components/base/popover/examples/index.js +0 -29
- package/src/components/base/popover/examples/popover.basic.example.vue +0 -13
- package/src/components/base/popover/examples/popover.loading.example.vue +0 -15
- package/src/components/base/popover/examples/popover.notitle.example.vue +0 -12
|
@@ -85,6 +85,16 @@ export default {
|
|
|
85
85
|
required: false,
|
|
86
86
|
default: false,
|
|
87
87
|
},
|
|
88
|
+
searchButtonAttributes: {
|
|
89
|
+
type: Object,
|
|
90
|
+
required: false,
|
|
91
|
+
default: () => ({}),
|
|
92
|
+
},
|
|
93
|
+
searchInputAttributes: {
|
|
94
|
+
type: Object,
|
|
95
|
+
required: false,
|
|
96
|
+
default: () => ({}),
|
|
97
|
+
},
|
|
88
98
|
},
|
|
89
99
|
data() {
|
|
90
100
|
return {
|
|
@@ -253,6 +263,7 @@ export default {
|
|
|
253
263
|
:value="tokens"
|
|
254
264
|
:history-items="historyItems"
|
|
255
265
|
:clearable="hasValue"
|
|
266
|
+
:search-button-attributes="searchButtonAttributes"
|
|
256
267
|
data-testid="filtered-search-input"
|
|
257
268
|
@submit="submit"
|
|
258
269
|
@input="applyNewValue"
|
|
@@ -278,6 +289,8 @@ export default {
|
|
|
278
289
|
:index="idx"
|
|
279
290
|
:placeholder="termPlaceholder"
|
|
280
291
|
:show-friendly-text="showFriendlyText"
|
|
292
|
+
:search-input-attributes="searchInputAttributes"
|
|
293
|
+
:is-last-token="isLastToken(idx)"
|
|
281
294
|
class="gl-filtered-search-item"
|
|
282
295
|
:class="{
|
|
283
296
|
'gl-filtered-search-last-item': isLastToken(idx),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { withKnobs } from '@storybook/addon-knobs';
|
|
2
|
-
import { GlFilteredSearchSuggestion } from '
|
|
2
|
+
import { GlFilteredSearchSuggestion } from '../../../index';
|
|
3
3
|
import { documentedStoriesOf } from '../../../../documentation/documented_stories';
|
|
4
4
|
import readme from './filtered_search_suggestion.md';
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { withKnobs } from '@storybook/addon-knobs';
|
|
2
|
-
import { GlFilteredSearchSuggestionList, GlFilteredSearchSuggestion } from '
|
|
2
|
+
import { GlFilteredSearchSuggestionList, GlFilteredSearchSuggestion } from '../../../index';
|
|
3
3
|
import { documentedStoriesOf } from '../../../../documentation/documented_stories';
|
|
4
4
|
import { provide } from './common_story_options';
|
|
5
5
|
import readme from './filtered_search_suggestion_list.md';
|
|
@@ -13,6 +13,12 @@ export default {
|
|
|
13
13
|
value: {
|
|
14
14
|
additionalInfo: 'Current term value',
|
|
15
15
|
},
|
|
16
|
+
searchInputAttributes: {
|
|
17
|
+
additionalInfo: 'HTML attributes to add to the search input',
|
|
18
|
+
},
|
|
19
|
+
isLastToken: {
|
|
20
|
+
additionalInfo: 'If this is the last token',
|
|
21
|
+
},
|
|
16
22
|
},
|
|
17
23
|
events: [
|
|
18
24
|
{ event: 'activate', description: 'Emitted when this term token is clicked' },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { nextTick } from 'vue';
|
|
1
2
|
import { shallowMount } from '@vue/test-utils';
|
|
2
3
|
import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
|
|
3
4
|
import FilteredSearchTerm from './filtered_search_term.vue';
|
|
@@ -11,6 +12,8 @@ const availableTokens = [
|
|
|
11
12
|
describe('Filtered search term', () => {
|
|
12
13
|
let wrapper;
|
|
13
14
|
|
|
15
|
+
const searchInputAttributes = { 'data-qa-selector': 'foo-bar' };
|
|
16
|
+
|
|
14
17
|
const defaultProps = {
|
|
15
18
|
availableTokens: [],
|
|
16
19
|
};
|
|
@@ -18,6 +21,7 @@ describe('Filtered search term', () => {
|
|
|
18
21
|
const segmentStub = {
|
|
19
22
|
name: 'gl-filtered-search-token-segment-stub',
|
|
20
23
|
template: '<div><slot name="view"></slot><slot name="suggestions"></slot></div>',
|
|
24
|
+
props: ['searchInputAttributes', 'isLastToken'],
|
|
21
25
|
};
|
|
22
26
|
|
|
23
27
|
const createComponent = (props) => {
|
|
@@ -29,6 +33,8 @@ describe('Filtered search term', () => {
|
|
|
29
33
|
});
|
|
30
34
|
};
|
|
31
35
|
|
|
36
|
+
const findTokenSegmentComponent = () => wrapper.findComponent(segmentStub);
|
|
37
|
+
|
|
32
38
|
it('renders value in inactive mode', () => {
|
|
33
39
|
createComponent({ value: { data: 'test-value' } });
|
|
34
40
|
expect(wrapper.html()).toMatchSnapshot();
|
|
@@ -44,11 +50,12 @@ describe('Filtered search term', () => {
|
|
|
44
50
|
expect(wrapper.find('input').attributes('placeholder')).toBe('placeholder-stub');
|
|
45
51
|
});
|
|
46
52
|
|
|
47
|
-
it('filters suggestions by input', () => {
|
|
53
|
+
it('filters suggestions by input', async () => {
|
|
48
54
|
createComponent({ availableTokens, active: true, value: { data: 'test1' } });
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
|
|
56
|
+
await nextTick();
|
|
57
|
+
|
|
58
|
+
expect(wrapper.findAllComponents(GlFilteredSearchSuggestion)).toHaveLength(2);
|
|
52
59
|
});
|
|
53
60
|
|
|
54
61
|
it.each`
|
|
@@ -61,14 +68,40 @@ describe('Filtered search term', () => {
|
|
|
61
68
|
${'backspace'} | ${'destroy'}
|
|
62
69
|
`(
|
|
63
70
|
'emits $emittedEvent when token segment emits $originalEvent',
|
|
64
|
-
({ originalEvent, emittedEvent }) => {
|
|
71
|
+
async ({ originalEvent, emittedEvent }) => {
|
|
65
72
|
createComponent({ active: true, value: { data: 'something' } });
|
|
66
73
|
|
|
67
|
-
|
|
74
|
+
findTokenSegmentComponent().vm.$emit(originalEvent);
|
|
75
|
+
|
|
76
|
+
await nextTick();
|
|
68
77
|
|
|
69
|
-
|
|
70
|
-
expect(wrapper.emitted()[emittedEvent]).toHaveLength(1);
|
|
71
|
-
});
|
|
78
|
+
expect(wrapper.emitted()[emittedEvent]).toHaveLength(1);
|
|
72
79
|
}
|
|
73
80
|
);
|
|
81
|
+
|
|
82
|
+
it('passes `searchInputAttributes` and `isLastToken` prop to `GlFilteredSearchTokenSegment`', () => {
|
|
83
|
+
const isLastToken = true;
|
|
84
|
+
|
|
85
|
+
createComponent({
|
|
86
|
+
value: { data: 'something' },
|
|
87
|
+
searchInputAttributes,
|
|
88
|
+
isLastToken,
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
expect(findTokenSegmentComponent().props()).toEqual({
|
|
92
|
+
searchInputAttributes,
|
|
93
|
+
isLastToken,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('adds `searchInputAttributes` prop to search term input', () => {
|
|
98
|
+
createComponent({
|
|
99
|
+
placeholder: 'placeholder-stub',
|
|
100
|
+
searchInputAttributes,
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
expect(wrapper.find('input').attributes('data-qa-selector')).toBe(
|
|
104
|
+
searchInputAttributes['data-qa-selector']
|
|
105
|
+
);
|
|
106
|
+
});
|
|
74
107
|
});
|
|
@@ -28,6 +28,16 @@ export default {
|
|
|
28
28
|
required: false,
|
|
29
29
|
default: '',
|
|
30
30
|
},
|
|
31
|
+
searchInputAttributes: {
|
|
32
|
+
type: Object,
|
|
33
|
+
required: false,
|
|
34
|
+
default: () => ({}),
|
|
35
|
+
},
|
|
36
|
+
isLastToken: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
required: false,
|
|
39
|
+
default: false,
|
|
40
|
+
},
|
|
31
41
|
},
|
|
32
42
|
computed: {
|
|
33
43
|
suggestedTokens() {
|
|
@@ -54,6 +64,8 @@ export default {
|
|
|
54
64
|
class="gl-filtered-search-term-token"
|
|
55
65
|
:active="active"
|
|
56
66
|
:class="{ 'gl-w-full': placeholder }"
|
|
67
|
+
:search-input-attributes="searchInputAttributes"
|
|
68
|
+
:is-last-token="isLastToken"
|
|
57
69
|
@activate="$emit('activate')"
|
|
58
70
|
@deactivate="$emit('deactivate')"
|
|
59
71
|
@complete="$emit('replace', { type: $event })"
|
|
@@ -74,6 +86,7 @@ export default {
|
|
|
74
86
|
<template #view>
|
|
75
87
|
<input
|
|
76
88
|
v-if="placeholder"
|
|
89
|
+
v-bind="searchInputAttributes"
|
|
77
90
|
class="gl-filtered-search-term-input"
|
|
78
91
|
:placeholder="placeholder"
|
|
79
92
|
:aria-label="placeholder"
|
|
@@ -2,7 +2,7 @@ import { withKnobs, boolean } from '@storybook/addon-knobs';
|
|
|
2
2
|
import PortalVue from 'portal-vue';
|
|
3
3
|
import Vue from 'vue';
|
|
4
4
|
import { documentedStoriesOf } from '../../../../documentation/documented_stories';
|
|
5
|
-
import { GlIcon } from '
|
|
5
|
+
import { GlIcon } from '../../../index';
|
|
6
6
|
import { provide } from './common_story_options';
|
|
7
7
|
import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
|
|
8
8
|
import readme from './filtered_search_token.md';
|
|
@@ -19,6 +19,12 @@ export default {
|
|
|
19
19
|
value: {
|
|
20
20
|
additionalInfo: 'Current term value',
|
|
21
21
|
},
|
|
22
|
+
searchInputAttributes: {
|
|
23
|
+
additionalInfo: 'HTML attributes to add to the search input',
|
|
24
|
+
},
|
|
25
|
+
isLastToken: {
|
|
26
|
+
additionalInfo: 'If this is the last token',
|
|
27
|
+
},
|
|
22
28
|
},
|
|
23
29
|
events: [
|
|
24
30
|
{ event: 'activate', description: 'Emitted on mousedown event on the main component' },
|
|
@@ -6,6 +6,8 @@ const OPTIONS = [{ value: '=' }, { value: '!=' }];
|
|
|
6
6
|
describe('Filtered search token segment', () => {
|
|
7
7
|
let wrapper;
|
|
8
8
|
|
|
9
|
+
const searchInputAttributes = { 'data-qa-selector': 'foo-bar' };
|
|
10
|
+
|
|
9
11
|
beforeAll(() => {
|
|
10
12
|
if (!HTMLElement.prototype.scrollIntoView) {
|
|
11
13
|
HTMLElement.prototype.scrollIntoView = jest.fn();
|
|
@@ -251,4 +253,55 @@ describe('Filtered search token segment', () => {
|
|
|
251
253
|
});
|
|
252
254
|
});
|
|
253
255
|
});
|
|
256
|
+
|
|
257
|
+
describe('when input is active', () => {
|
|
258
|
+
it('adds `searchInputAttributes` prop to search token segment input', () => {
|
|
259
|
+
createComponent({ active: true, value: 'something', searchInputAttributes });
|
|
260
|
+
|
|
261
|
+
expect(wrapper.find('input').attributes('data-qa-selector')).toBe(
|
|
262
|
+
searchInputAttributes['data-qa-selector']
|
|
263
|
+
);
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
it('does not add `searchInputAttributes` prop to search token segment', () => {
|
|
267
|
+
createComponent({
|
|
268
|
+
active: true,
|
|
269
|
+
value: 'something',
|
|
270
|
+
searchInputAttributes,
|
|
271
|
+
isLastToken: true,
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
expect(wrapper.attributes('data-qa-selector')).toBe(undefined);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
describe('when input is not active', () => {
|
|
279
|
+
describe('when `isLastToken` prop is `true`', () => {
|
|
280
|
+
it('adds `searchInputAttributes` prop to search token segment', () => {
|
|
281
|
+
createComponent({
|
|
282
|
+
active: false,
|
|
283
|
+
value: 'something',
|
|
284
|
+
searchInputAttributes,
|
|
285
|
+
isLastToken: true,
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
expect(wrapper.attributes('data-qa-selector')).toBe(
|
|
289
|
+
searchInputAttributes['data-qa-selector']
|
|
290
|
+
);
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
describe('when `isLastToken` prop is `false`', () => {
|
|
295
|
+
it('does not add `searchInputAttributes` prop to search token segment', () => {
|
|
296
|
+
createComponent({
|
|
297
|
+
active: false,
|
|
298
|
+
value: 'something',
|
|
299
|
+
searchInputAttributes,
|
|
300
|
+
isLastToken: false,
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
expect(wrapper.attributes('data-qa-selector')).toBe(undefined);
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
});
|
|
254
307
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { withKnobs, boolean } from '@storybook/addon-knobs';
|
|
2
2
|
import PortalVue from 'portal-vue';
|
|
3
3
|
import Vue from 'vue';
|
|
4
|
-
import { GlFilteredSearchSuggestion } from '
|
|
4
|
+
import { GlFilteredSearchSuggestion } from '../../../index';
|
|
5
5
|
import { documentedStoriesOf } from '../../../../documentation/documented_stories';
|
|
6
6
|
import { provide } from './common_story_options';
|
|
7
7
|
import readme from './filtered_search_term.md';
|
|
@@ -49,6 +49,16 @@ export default {
|
|
|
49
49
|
required: true,
|
|
50
50
|
validator: () => true,
|
|
51
51
|
},
|
|
52
|
+
searchInputAttributes: {
|
|
53
|
+
type: Object,
|
|
54
|
+
required: false,
|
|
55
|
+
default: () => ({}),
|
|
56
|
+
},
|
|
57
|
+
isLastToken: {
|
|
58
|
+
type: Boolean,
|
|
59
|
+
required: false,
|
|
60
|
+
default: false,
|
|
61
|
+
},
|
|
52
62
|
},
|
|
53
63
|
|
|
54
64
|
data() {
|
|
@@ -244,6 +254,7 @@ export default {
|
|
|
244
254
|
|
|
245
255
|
<template>
|
|
246
256
|
<div
|
|
257
|
+
v-bind="isLastToken && !active && searchInputAttributes"
|
|
247
258
|
class="gl-filtered-search-token-segment"
|
|
248
259
|
:class="{ 'gl-filtered-search-token-segment-active': active }"
|
|
249
260
|
data-testid="filtered-search-token-segment"
|
|
@@ -252,6 +263,7 @@ export default {
|
|
|
252
263
|
<template v-if="active">
|
|
253
264
|
<input
|
|
254
265
|
ref="input"
|
|
266
|
+
v-bind="searchInputAttributes"
|
|
255
267
|
v-model="inputValue"
|
|
256
268
|
class="gl-filtered-search-token-segment-input"
|
|
257
269
|
:aria-label="label"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { withKnobs, text, select, boolean } from '@storybook/addon-knobs';
|
|
2
2
|
import { documentedStoriesOf } from '../../../../../documentation/documented_stories';
|
|
3
|
-
import { GlFormGroup, GlFormInput, GlFormTextarea } from '
|
|
3
|
+
import { GlFormGroup, GlFormInput, GlFormTextarea } from '../../../../index';
|
|
4
4
|
import { sizeOptions } from '../../../../utils/constants';
|
|
5
5
|
import readme from './form_group.md';
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { withKnobs, boolean, object, text } from '@storybook/addon-knobs';
|
|
2
2
|
import { documentedStoriesOf } from '../../../../../documentation/documented_stories';
|
|
3
|
-
import { GlFormInputGroup, GlInputGroupText } from '
|
|
3
|
+
import { GlFormInputGroup, GlInputGroupText } from '../../../../index';
|
|
4
4
|
import readme from './form_input_group.md';
|
|
5
5
|
|
|
6
6
|
const components = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { withKnobs, object, text } from '@storybook/addon-knobs';
|
|
2
2
|
import { documentedStoriesOf } from '../../../../../documentation/documented_stories';
|
|
3
|
-
import { GlFormRadioGroup, GlFormRadio } from '
|
|
3
|
+
import { GlFormRadioGroup, GlFormRadio } from '../../../../index';
|
|
4
4
|
import readme from './form_radio_group.md';
|
|
5
5
|
|
|
6
6
|
const components = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlFormSelect } from '
|
|
1
|
+
import { GlFormSelect } from '../../../../index';
|
|
2
2
|
import { sizeOptions, formStateOptions } from '../../../../utils/constants';
|
|
3
3
|
import { formSelectOptions } from './constants';
|
|
4
4
|
import readme from './form_select.md';
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
import examples from './examples';
|
|
2
|
-
|
|
3
1
|
export default {
|
|
4
2
|
followsDesignSystem: true,
|
|
5
|
-
examples,
|
|
6
|
-
bootstrapComponent: 'b-popover',
|
|
7
|
-
bootstrapPropsInfo: {
|
|
8
|
-
target: {
|
|
9
|
-
additionalInfo:
|
|
10
|
-
'Element string ID, or a reference to an element or component, that you want to trigger the popover.',
|
|
11
|
-
required: true,
|
|
12
|
-
},
|
|
13
|
-
triggers: {
|
|
14
|
-
enum: 'triggerVariantOptions',
|
|
15
|
-
},
|
|
16
|
-
placement: {
|
|
17
|
-
enum: 'popoverPlacements',
|
|
18
|
-
},
|
|
19
|
-
boundary: {
|
|
20
|
-
additionalInfo:
|
|
21
|
-
'"scrollParent", "viewport", "window", or a reference to an HTML element. This is the container that the popover will be constrained to visually.You may need to change this if your target element is in a small container with overflow scroll',
|
|
22
|
-
},
|
|
23
|
-
container: {
|
|
24
|
-
additionalInfo:
|
|
25
|
-
'Specify container as null (default, appends to <body>) to avoid rendering problems in more complex components (like input groups, button groups, etc). You can use container to optionally specify a different element to append the popover to.',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
3
|
};
|