@gitlab/ui 49.0.0 → 49.0.2
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 +14 -0
- package/dist/components/base/accordion/accordion.js +2 -8
- package/dist/components/base/accordion/accordion_item.js +0 -14
- package/dist/components/base/alert/alert.js +4 -22
- package/dist/components/base/avatar/avatar.js +0 -7
- package/dist/components/base/avatar_labeled/avatar_labeled.js +0 -2
- package/dist/components/base/avatars_inline/avatars_inline.js +2 -10
- package/dist/components/base/badge/badge.js +0 -8
- package/dist/components/base/banner/banner.js +0 -10
- package/dist/components/base/breadcrumb/breadcrumb.js +0 -12
- package/dist/components/base/breadcrumb/breadcrumb_item.js +0 -2
- package/dist/components/base/broadcast_message/broadcast_message.js +0 -3
- package/dist/components/base/button/button.js +0 -11
- package/dist/components/base/card/card.js +1 -2
- package/dist/components/base/datepicker/datepicker.js +7 -42
- package/dist/components/base/daterange_picker/daterange_picker.js +0 -23
- package/dist/components/base/drawer/drawer.js +0 -13
- package/dist/components/base/dropdown/dropdown.js +3 -17
- package/dist/components/base/dropdown/dropdown_item.js +2 -8
- package/dist/components/base/filtered_search/common_story_options.js +1 -2
- package/dist/components/base/filtered_search/filtered_search.js +9 -61
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +0 -6
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +0 -16
- package/dist/components/base/filtered_search/filtered_search_term.js +0 -9
- package/dist/components/base/filtered_search/filtered_search_token.js +10 -49
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +3 -56
- package/dist/components/base/filtered_search/filtered_search_utils.js +7 -24
- package/dist/components/base/form/form_checkbox/form_checkbox.js +0 -2
- package/dist/components/base/form/form_checkbox_tree/checkbox_tree_node.js +0 -4
- package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.js +0 -10
- package/dist/components/base/form/form_checkbox_tree/models/node.js +1 -10
- package/dist/components/base/form/form_checkbox_tree/models/tree.js +16 -37
- package/dist/components/base/form/form_combobox/form_combobox.js +2 -36
- package/dist/components/base/form/form_group/form_group.js +2 -7
- package/dist/components/base/form/form_input/form_input.js +2 -8
- package/dist/components/base/form/form_input_group/form_input_group.js +0 -5
- package/dist/components/base/form/form_input_group/form_input_group_mixin.js +0 -8
- package/dist/components/base/form/form_radio_group/form_radio_group.js +0 -2
- package/dist/components/base/form/form_select/form_select.js +0 -3
- package/dist/components/base/form/form_textarea/form_textarea.js +2 -7
- package/dist/components/base/icon/icon.js +4 -14
- package/dist/components/base/infinite_scroll/infinite_scroll.js +7 -21
- package/dist/components/base/keyset_pagination/keyset_pagination.js +0 -9
- package/dist/components/base/label/label.js +0 -12
- package/dist/components/base/loading_icon/loading_icon.js +7 -10
- package/dist/components/base/markdown/markdown.js +1 -0
- package/dist/components/base/modal/modal.js +7 -27
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +14 -34
- package/dist/components/base/new_dropdowns/constants.js +4 -2
- package/dist/components/base/new_dropdowns/listbox/listbox.js +14 -81
- package/dist/components/base/new_dropdowns/listbox/listbox_group.js +0 -2
- package/dist/components/base/new_dropdowns/listbox/listbox_item.js +0 -5
- package/dist/components/base/new_dropdowns/listbox/utils.js +0 -7
- package/dist/components/base/paginated_list/paginated_list.js +0 -15
- package/dist/components/base/pagination/pagination.js +14 -72
- package/dist/components/base/path/path.js +0 -29
- package/dist/components/base/popover/popover.js +0 -5
- package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -26
- package/dist/components/base/search_box_by_type/search_box_by_type.js +2 -12
- package/dist/components/base/segmented_control/segmented_control.js +0 -10
- package/dist/components/base/skeleton_loader/skeleton_loader.js +0 -19
- package/dist/components/base/skeleton_loading/skeleton_loading.js +0 -3
- package/dist/components/base/sorting/sorting.js +1 -9
- package/dist/components/base/sorting/sorting_item.js +4 -6
- package/dist/components/base/table/table.js +0 -4
- package/dist/components/base/tabs/tab/tab.js +2 -6
- package/dist/components/base/tabs/tabs/scrollable_tabs.js +0 -21
- package/dist/components/base/tabs/tabs/tabs.js +8 -33
- package/dist/components/base/toast/toast.js +3 -15
- package/dist/components/base/toggle/toggle.js +0 -18
- package/dist/components/base/token/token.js +0 -4
- package/dist/components/base/token_selector/token_container.js +0 -24
- package/dist/components/base/token_selector/token_selector.js +10 -61
- package/dist/components/base/token_selector/token_selector_dropdown.js +4 -32
- package/dist/components/charts/area/area.js +8 -32
- package/dist/components/charts/bar/bar.js +7 -19
- package/dist/components/charts/chart/chart.js +1 -22
- package/dist/components/charts/column/column.js +8 -18
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +2 -13
- package/dist/components/charts/gauge/gauge.js +0 -15
- package/dist/components/charts/heatmap/heatmap.js +3 -16
- package/dist/components/charts/legend/legend.js +2 -24
- package/dist/components/charts/line/line.js +8 -34
- package/dist/components/charts/series_label/series_label.js +0 -12
- package/dist/components/charts/single_stat/single_stat.js +0 -8
- package/dist/components/charts/sparkline/sparkline.js +1 -16
- package/dist/components/charts/stacked_column/stacked_column.js +8 -26
- package/dist/components/charts/tooltip/tooltip.js +0 -6
- package/dist/components/mixins/button_mixin.js +0 -1
- package/dist/components/mixins/safe_link_mixin.js +0 -1
- package/dist/components/mixins/toolbox_mixin.js +0 -1
- package/dist/components/mixins/tooltip_mixin.js +1 -2
- package/dist/components/regions/empty_state/empty_state.js +0 -12
- package/dist/components/utilities/animated_number/animated_number.js +0 -16
- package/dist/components/utilities/friendly_wrap/friendly_wrap.js +0 -3
- package/dist/components/utilities/intersection_observer/intersection_observer.js +0 -7
- package/dist/components/utilities/intersperse/intersperse.js +3 -9
- package/dist/components/utilities/sprintf/sprintf.js +9 -23
- package/dist/components/utilities/truncate/truncate.js +0 -10
- package/dist/config.js +3 -4
- package/dist/directives/hover_load/hover_load.js +2 -8
- package/dist/directives/outside/get_event_like_time_stamp.js +4 -2
- package/dist/directives/outside/outside.js +5 -20
- package/dist/directives/resize_observer/resize_observer.js +0 -10
- package/dist/directives/safe_html/safe_html.js +5 -6
- package/dist/directives/safe_link/mock_data.js +1 -1
- package/dist/directives/safe_link/safe_link.js +0 -13
- package/dist/utils/breakpoints.js +0 -3
- package/dist/utils/charts/config.js +29 -42
- package/dist/utils/charts/constants.js +8 -8
- package/dist/utils/charts/mock_data.js +2 -2
- package/dist/utils/charts/story_config.js +1 -1
- package/dist/utils/charts/theme.js +1 -3
- package/dist/utils/charts/utils.js +2 -6
- package/dist/utils/constants.js +10 -7
- package/dist/utils/data_utils.js +5 -4
- package/dist/utils/datetime_utility.js +4 -4
- package/dist/utils/number_utils.js +7 -11
- package/dist/utils/stories_utils.js +1 -1
- package/dist/utils/story_decorators/container.js +0 -1
- package/dist/utils/string_utils.js +0 -14
- package/dist/utils/test_utils.js +3 -2
- package/dist/utils/use_fake_date.js +0 -4
- package/dist/utils/use_mock_intersection_observer.js +4 -19
- package/dist/utils/utils.js +5 -14
- package/package.json +3 -3
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.spec.js +1 -0
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +13 -7
- package/src/components/base/new_dropdowns/listbox/listbox.spec.js +13 -7
- package/src/components/base/new_dropdowns/listbox/listbox.vue +12 -16
- package/src/components/base/pagination/pagination.vue +2 -2
|
@@ -138,11 +138,6 @@ export default {
|
|
|
138
138
|
};
|
|
139
139
|
},
|
|
140
140
|
},
|
|
141
|
-
updated() {
|
|
142
|
-
if (this.visible) {
|
|
143
|
-
this.popper?.update();
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
141
|
mounted() {
|
|
147
142
|
this.$nextTick(() => {
|
|
148
143
|
this.popper = createPopper(this.$refs.toggle.$el, this.$refs.content, this.popperConfig);
|
|
@@ -152,11 +147,22 @@ export default {
|
|
|
152
147
|
this.popper.destroy();
|
|
153
148
|
},
|
|
154
149
|
methods: {
|
|
155
|
-
toggle() {
|
|
150
|
+
async toggle() {
|
|
156
151
|
this.visible = !this.visible;
|
|
157
152
|
|
|
158
153
|
if (this.visible) {
|
|
159
|
-
|
|
154
|
+
/* Initially dropdown is hidden with `display="none"`.
|
|
155
|
+
When `visible` prop is toggled ON, with the `nextTick` we wait for the DOM update -
|
|
156
|
+
dropdown's `display="block"` is set (adding CSS class `show`).
|
|
157
|
+
After that we can recalculate its position (calling `popper.update()`).
|
|
158
|
+
https://github.com/floating-ui/floating-ui/issues/630:
|
|
159
|
+
"Unfortunately there's not any way to compute the position of an element not rendered in the document".
|
|
160
|
+
Then we `await` while the new dropdown position is calculated and DOM updated accordingly.
|
|
161
|
+
After we can emit the `GL_DROPDOWN_SHOWN` event to the parent which might interact with updated dropdown,
|
|
162
|
+
e.g. set focus..
|
|
163
|
+
*/
|
|
164
|
+
await this.$nextTick();
|
|
165
|
+
await this.popper?.update();
|
|
160
166
|
this.$emit(GL_DROPDOWN_SHOWN);
|
|
161
167
|
} else {
|
|
162
168
|
this.$emit(GL_DROPDOWN_HIDDEN);
|
|
@@ -247,19 +247,25 @@ describe('GlListbox', () => {
|
|
|
247
247
|
});
|
|
248
248
|
|
|
249
249
|
describe('when `searchable` is enabled', () => {
|
|
250
|
-
|
|
250
|
+
let searchbox;
|
|
251
|
+
|
|
252
|
+
beforeEach(() => {
|
|
251
253
|
buildWrapper({ items: mockOptions, searchable: true });
|
|
252
254
|
findBaseDropdown().vm.$emit(GL_DROPDOWN_SHOWN);
|
|
253
|
-
|
|
255
|
+
firstItem = findListItem(0);
|
|
256
|
+
searchbox = findSearchBox();
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
it('should move focus to the first item on search input `ARROW_DOWN`', async () => {
|
|
260
|
+
expect(searchbox.element).toHaveFocus();
|
|
261
|
+
searchbox.trigger('keydown', { code: ARROW_DOWN });
|
|
254
262
|
expect(firstItem.element).toHaveFocus();
|
|
255
263
|
});
|
|
256
264
|
|
|
257
265
|
it('should move focus to the search input on first item `ARROW_UP', async () => {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
await firstItem.trigger('keydown', { code: ARROW_UP });
|
|
262
|
-
expect(focusSpy).toHaveBeenCalled();
|
|
266
|
+
searchbox.trigger('keydown', { code: ARROW_DOWN });
|
|
267
|
+
firstItem.trigger('keydown', { code: ARROW_UP });
|
|
268
|
+
expect(searchbox.element).toHaveFocus();
|
|
263
269
|
});
|
|
264
270
|
});
|
|
265
271
|
});
|
|
@@ -293,19 +293,17 @@ export default {
|
|
|
293
293
|
return index === 0 ? null : GROUP_TOP_BORDER_CLASSES;
|
|
294
294
|
},
|
|
295
295
|
onShow() {
|
|
296
|
-
this
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
this.$emit(GL_DROPDOWN_SHOWN);
|
|
308
|
-
});
|
|
296
|
+
if (this.searchable) {
|
|
297
|
+
this.focusSearchInput();
|
|
298
|
+
} else {
|
|
299
|
+
this.focusItem(this.selectedIndices[0] ?? 0, this.getFocusableListItemElements());
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Emitted when dropdown is shown
|
|
303
|
+
*
|
|
304
|
+
* @event shown
|
|
305
|
+
*/
|
|
306
|
+
this.$emit(GL_DROPDOWN_SHOWN);
|
|
309
307
|
},
|
|
310
308
|
onHide() {
|
|
311
309
|
/**
|
|
@@ -366,9 +364,7 @@ export default {
|
|
|
366
364
|
focusItem(index, elements) {
|
|
367
365
|
this.nextFocusedItemIndex = index;
|
|
368
366
|
|
|
369
|
-
|
|
370
|
-
elements[index]?.focus();
|
|
371
|
-
});
|
|
367
|
+
elements[index]?.focus();
|
|
372
368
|
},
|
|
373
369
|
focusSearchInput() {
|
|
374
370
|
this.$refs.searchBox.focusInput();
|
|
@@ -375,8 +375,8 @@ export default {
|
|
|
375
375
|
</script>
|
|
376
376
|
|
|
377
377
|
<template>
|
|
378
|
-
<nav aria-label="Pagination">
|
|
379
|
-
<ul
|
|
378
|
+
<nav v-if="isVisible" class="gl-pagination text-nowrap" aria-label="Pagination">
|
|
379
|
+
<ul class="pagination" :class="wrapperClasses">
|
|
380
380
|
<li
|
|
381
381
|
class="page-item"
|
|
382
382
|
:class="{
|