@gitlab/ui 111.9.1 → 111.10.1
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/new_dropdowns/listbox/listbox.js +9 -2
- package/dist/components/base/new_dropdowns/listbox/mock_data.js +3 -0
- package/dist/components/base/new_dropdowns/listbox/utils.js +1 -1
- package/dist/components/charts/area/area.js +10 -6
- package/package.json +3 -3
- package/src/components/base/new_dropdowns/listbox/listbox.md +1 -1
- package/src/components/base/new_dropdowns/listbox/listbox.vue +9 -2
- package/src/components/base/new_dropdowns/listbox/mock_data.js +4 -0
- package/src/components/base/new_dropdowns/listbox/utils.js +2 -1
- package/src/components/charts/area/area.vue +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [111.10.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v111.10.0...v111.10.1) (2025-03-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **GlAreaChart:** Legend is updated on changes ([0caa619](https://gitlab.com/gitlab-org/gitlab-ui/commit/0caa61948ad48ee1098c063bacf3c3ddfff3e804))
|
|
7
|
+
|
|
8
|
+
# [111.10.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v111.9.1...v111.10.0) (2025-03-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **GlCollapsibleListbox:** Allow listbox options to have a null value ([6e1c5f6](https://gitlab.com/gitlab-org/gitlab-ui/commit/6e1c5f6af82d74c856ab4f1a5985d65316cbc39b))
|
|
14
|
+
|
|
1
15
|
## [111.9.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v111.9.0...v111.9.1) (2025-03-28)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -18,6 +18,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
18
18
|
|
|
19
19
|
//
|
|
20
20
|
const ITEM_SELECTOR = '[role="option"]';
|
|
21
|
+
const ITEM_NULL_KEY = Symbol('null-key');
|
|
21
22
|
const HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown-divider'];
|
|
22
23
|
const GROUP_TOP_BORDER_CLASSES = ['gl-border-t-1', 'gl-border-t-solid', 'gl-border-t-dropdown-divider', 'gl-pt-1', 'gl-mt-2'];
|
|
23
24
|
const SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';
|
|
@@ -725,6 +726,12 @@ var script = {
|
|
|
725
726
|
*/
|
|
726
727
|
this.$emit('bottom-reached');
|
|
727
728
|
},
|
|
729
|
+
listboxItemKey(item) {
|
|
730
|
+
if (item.value === null) {
|
|
731
|
+
return ITEM_NULL_KEY;
|
|
732
|
+
}
|
|
733
|
+
return item.value;
|
|
734
|
+
},
|
|
728
735
|
listboxItemMoreItemsAriaAttributes(index) {
|
|
729
736
|
if (this.totalItems === null) {
|
|
730
737
|
return {};
|
|
@@ -769,7 +776,7 @@ var script = {
|
|
|
769
776
|
const __vue_script__ = script;
|
|
770
777
|
|
|
771
778
|
/* template */
|
|
772
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:"baseDropdown",attrs:{"aria-haspopup":"listbox","aria-labelledby":_vm.toggleAriaLabelledBy,"block":_vm.block,"toggle-id":_vm.toggleIdComputed,"toggle-text":_vm.listboxToggleText,"toggle-class":_vm.toggleButtonClasses,"text-sr-only":_vm.textSrOnly,"category":_vm.category,"variant":_vm.variant,"size":_vm.size,"icon":_vm.icon,"disabled":_vm.disabled,"loading":_vm.loading,"no-caret":_vm.noCaret,"placement":_vm.placement,"offset":_vm.dropdownOffset,"fluid-width":_vm.fluidWidth,"positioning-strategy":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:"toggle",fn:function(){return [_vm._t("toggle")]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.headerText)?_c('div',{staticClass:"gl-flex gl-min-h-8 gl-items-center !gl-p-4",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong",attrs:{"id":_vm.headerId,"data-testid":"listbox-header-text"}},[_vm._v("\n "+_vm._s(_vm.headerText)+"\n ")]),_vm._v(" "),(_vm.showResetButton)?_c('gl-button',{staticClass:"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset",attrs:{"category":"tertiary","size":"small","data-testid":"listbox-reset-button"},on:{"click":_vm.onResetButtonClicked}},[_vm._v("\n "+_vm._s(_vm.resetButtonLabel)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset",attrs:{"category":"tertiary","size":"small","data-testid":"listbox-select-all-button"},on:{"click":_vm.onSelectAllButtonClicked}},[_vm._v("\n "+_vm._s(_vm.showSelectAllButtonLabel)+"\n ")]):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:"searchBox",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{"data-testid":"listbox-search-input","placeholder":_vm.searchPlaceholder},on:{"input":_vm.search,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:"searchStr"}}),_vm._v(" "),(_vm.searching)?_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-search-loader","size":"md"}}):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.showList)?_c(_vm.listboxTag,{ref:"list",tag:"component",staticClass:"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay",class:_vm.listboxClasses,attrs:{"id":_vm.listboxId,"aria-labelledby":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleIdComputed,"role":"listbox","tabindex":"0"},on:{"keydown":_vm.onKeydown}},[_c(_vm.itemTag,{tag:"component",staticClass:"top-scrim-wrapper",attrs:{"aria-hidden":"true","data-testid":"top-scrim"}},[_c('div',{staticClass:"top-scrim",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(" "),_c(_vm.itemTag,{ref:"top-boundary",tag:"component",attrs:{"aria-hidden":"true"}}),_vm._v(" "),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item
|
|
779
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:"baseDropdown",attrs:{"aria-haspopup":"listbox","aria-labelledby":_vm.toggleAriaLabelledBy,"block":_vm.block,"toggle-id":_vm.toggleIdComputed,"toggle-text":_vm.listboxToggleText,"toggle-class":_vm.toggleButtonClasses,"text-sr-only":_vm.textSrOnly,"category":_vm.category,"variant":_vm.variant,"size":_vm.size,"icon":_vm.icon,"disabled":_vm.disabled,"loading":_vm.loading,"no-caret":_vm.noCaret,"placement":_vm.placement,"offset":_vm.dropdownOffset,"fluid-width":_vm.fluidWidth,"positioning-strategy":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:"toggle",fn:function(){return [_vm._t("toggle")]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.headerText)?_c('div',{staticClass:"gl-flex gl-min-h-8 gl-items-center !gl-p-4",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong",attrs:{"id":_vm.headerId,"data-testid":"listbox-header-text"}},[_vm._v("\n "+_vm._s(_vm.headerText)+"\n ")]),_vm._v(" "),(_vm.showResetButton)?_c('gl-button',{staticClass:"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset",attrs:{"category":"tertiary","size":"small","data-testid":"listbox-reset-button"},on:{"click":_vm.onResetButtonClicked}},[_vm._v("\n "+_vm._s(_vm.resetButtonLabel)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset",attrs:{"category":"tertiary","size":"small","data-testid":"listbox-select-all-button"},on:{"click":_vm.onSelectAllButtonClicked}},[_vm._v("\n "+_vm._s(_vm.showSelectAllButtonLabel)+"\n ")]):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:"searchBox",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{"data-testid":"listbox-search-input","placeholder":_vm.searchPlaceholder},on:{"input":_vm.search,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:"searchStr"}}),_vm._v(" "),(_vm.searching)?_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-search-loader","size":"md"}}):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.showList)?_c(_vm.listboxTag,{ref:"list",tag:"component",staticClass:"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay",class:_vm.listboxClasses,attrs:{"id":_vm.listboxId,"aria-labelledby":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleIdComputed,"role":"listbox","tabindex":"0"},on:{"keydown":_vm.onKeydown}},[_c(_vm.itemTag,{tag:"component",staticClass:"top-scrim-wrapper",attrs:{"aria-hidden":"true","data-testid":"top-scrim"}},[_c('div',{staticClass:"top-scrim",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(" "),_c(_vm.itemTag,{ref:"top-boundary",tag:"component",attrs:{"aria-hidden":"true"}}),_vm._v(" "),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:_vm.listboxItemKey(item),attrs:{"data-testid":("listbox-item-" + (item.value)),"is-highlighted":_vm.isHighlighted(item),"is-selected":_vm.isSelected(item),"is-focused":_vm.isFocused(item),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(item.text)+"\n ")]},{"item":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{"name":item.text,"text-sr-only":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:"group-label",fn:function(){return [_vm._t("group-label",null,{"group":item})]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:_vm.listboxItemKey(option),attrs:{"data-testid":("listbox-item-" + (option.value)),"is-highlighted":_vm.isHighlighted(option),"is-selected":_vm.isSelected(option),"is-focused":_vm.isFocused(option),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(option, $event)}}},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(option.text)+"\n ")]},{"item":option})],2)})],2)]]}),_vm._v(" "),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:"component"},[_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-infinite-scroll-loader","size":"md"}})],1):_vm._e(),_vm._v(" "),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{"appear":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(" "),_c(_vm.itemTag,{ref:"bottom-boundary",tag:"component",attrs:{"aria-hidden":"true"}}),_vm._v(" "),_c(_vm.itemTag,{tag:"component",staticClass:"bottom-scrim-wrapper",attrs:{"aria-hidden":"true","data-testid":"bottom-scrim"}},[_c('div',{staticClass:"bottom-scrim",class:{ '!gl-rounded-none': _vm.hasFooter }})])],2):_vm._e(),_vm._v(" "),(_vm.announceSRSearchResults)?_c('span',{staticClass:"gl-sr-only",attrs:{"data-testid":"listbox-number-of-results","aria-live":"assertive"}},[_vm._t("search-summary-sr-only",function(){return [_vm._v("\n "+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+"\n ")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:"gl-py-3 gl-pl-7 gl-pr-5 gl-text-base gl-text-subtle",attrs:{"aria-live":"assertive","data-testid":"listbox-no-results-text"}},[_vm._v("\n "+_vm._s(_vm.noResultsText)+"\n ")]):_vm._e(),_vm._v(" "),_vm._t("footer")],2)};
|
|
773
780
|
var __vue_staticRenderFns__ = [];
|
|
774
781
|
|
|
775
782
|
/* style */
|
|
@@ -802,4 +809,4 @@ var __vue_staticRenderFns__ = [];
|
|
|
802
809
|
);
|
|
803
810
|
|
|
804
811
|
export default __vue_component__;
|
|
805
|
-
export { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };
|
|
812
|
+
export { ITEM_NULL_KEY, ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import isNumber from 'lodash/isNumber';
|
|
2
2
|
import isString from 'lodash/isString';
|
|
3
3
|
|
|
4
|
-
const isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value));
|
|
4
|
+
const isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value) || item.value === null);
|
|
5
5
|
|
|
6
6
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
7
7
|
const isGroup = function () {
|
|
@@ -107,6 +107,7 @@ var script = {
|
|
|
107
107
|
// https://gitlab.com/gitlab-org/gitlab-ui/-/issues/618
|
|
108
108
|
return {
|
|
109
109
|
chart: null,
|
|
110
|
+
compiledOptions: null,
|
|
110
111
|
showAnnotationsTooltip: false,
|
|
111
112
|
annotationsTooltipTitle: '',
|
|
112
113
|
annotationsTooltipContent: '',
|
|
@@ -187,23 +188,23 @@ var script = {
|
|
|
187
188
|
shouldShowAnnotationsTooltip() {
|
|
188
189
|
return this.chart && this.hasAnnotations;
|
|
189
190
|
},
|
|
190
|
-
compiledOptions() {
|
|
191
|
-
return this.chart ? this.chart.getOption() : null;
|
|
192
|
-
},
|
|
193
191
|
legendStyle() {
|
|
194
192
|
return {
|
|
195
193
|
paddingLeft: `${grid.left}px`
|
|
196
194
|
};
|
|
197
195
|
},
|
|
198
196
|
seriesInfo() {
|
|
197
|
+
var _this$compiledOptions;
|
|
199
198
|
if (this.legendSeriesInfo.length > 0) return this.legendSeriesInfo;
|
|
200
|
-
|
|
199
|
+
const compiledSeries = ((_this$compiledOptions = this.compiledOptions) === null || _this$compiledOptions === void 0 ? void 0 : _this$compiledOptions.series) || [];
|
|
200
|
+
return compiledSeries.reduce((acc, series, index) => {
|
|
201
201
|
if (series.type === 'line') {
|
|
202
|
+
var _series$data;
|
|
202
203
|
acc.push({
|
|
203
204
|
name: series.name,
|
|
204
205
|
type: series.lineStyle.type,
|
|
205
206
|
color: series.lineStyle.color || colorFromDefaultPalette(index),
|
|
206
|
-
data: this.includeLegendAvgMax ? series.data.map(data => data[1]) : undefined
|
|
207
|
+
data: this.includeLegendAvgMax ? (_series$data = series.data) === null || _series$data === void 0 ? void 0 : _series$data.map(data => data[1]) : undefined
|
|
207
208
|
});
|
|
208
209
|
}
|
|
209
210
|
return acc;
|
|
@@ -242,6 +243,9 @@ var script = {
|
|
|
242
243
|
this.chart = chart;
|
|
243
244
|
this.$emit('created', chart);
|
|
244
245
|
},
|
|
246
|
+
onUpdated() {
|
|
247
|
+
this.compiledOptions = this.chart.getOption();
|
|
248
|
+
},
|
|
245
249
|
onChartDataPointMouseOut() {
|
|
246
250
|
this.showAnnotationsTooltip = false;
|
|
247
251
|
},
|
|
@@ -278,7 +282,7 @@ const __vue_script__ = script;
|
|
|
278
282
|
/* template */
|
|
279
283
|
var __vue_render__ = function () {
|
|
280
284
|
var _obj;
|
|
281
|
-
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-relative",class:( _obj = {}, _obj[_vm.$options.HEIGHT_AUTO_CLASSES] = _vm.autoHeight, _obj )},[_c('chart',_vm._g(_vm._b({class:{ 'gl-grow': _vm.autoHeight },attrs:{"height":_vm.height,"options":_vm.options},on:{"created":_vm.onCreated}},'chart',_vm.$attrs,false),_vm.$listeners)),_vm._v(" "),(_vm.shouldShowAnnotationsTooltip)?_c('chart-tooltip',{ref:"annotationsTooltip",attrs:{"id":"annotationsTooltip","show":_vm.showAnnotationsTooltip,"top":_vm.annotationsTooltipPosition.top,"left":_vm.annotationsTooltipPosition.left,"chart":_vm.chart,"placement":"bottom"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipTitle))])]},proxy:true}],null,false,1889294429)},[_vm._v(" "),_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipContent))])]):_vm._e(),_vm._v(" "),(_vm.chart)?_c('chart-tooltip',{ref:"dataTooltip",attrs:{"chart":_vm.chart,"use-default-tooltip-formatter":!_vm.formatTooltipText},scopedSlots:_vm._u([(_vm.$scopedSlots['tooltip-title'])?{key:"title",fn:function(scope){return [_vm._t("tooltip-title",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-content'])?{key:"default",fn:function(scope){return [_vm._t("tooltip-content",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-value'])?{key:"tooltip-value",fn:function(scope){return [_vm._t("tooltip-value",null,null,scope)]}}:null],null,true)}):_vm._e(),_vm._v(" "),(_vm.compiledOptions)?_c('chart-legend',{style:(_vm.legendStyle),attrs:{"chart":_vm.chart,"series-info":_vm.seriesInfo,"text-style":_vm.compiledOptions.textStyle,"min-text":_vm.legendMinText,"max-text":_vm.legendMaxText,"average-text":_vm.legendAverageText,"current-text":_vm.legendCurrentText,"layout":_vm.legendLayout}}):_vm._e()],1)};
|
|
285
|
+
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-relative",class:( _obj = {}, _obj[_vm.$options.HEIGHT_AUTO_CLASSES] = _vm.autoHeight, _obj )},[_c('chart',_vm._g(_vm._b({class:{ 'gl-grow': _vm.autoHeight },attrs:{"height":_vm.height,"options":_vm.options},on:{"created":_vm.onCreated,"updated":_vm.onUpdated}},'chart',_vm.$attrs,false),_vm.$listeners)),_vm._v(" "),(_vm.shouldShowAnnotationsTooltip)?_c('chart-tooltip',{ref:"annotationsTooltip",attrs:{"id":"annotationsTooltip","show":_vm.showAnnotationsTooltip,"top":_vm.annotationsTooltipPosition.top,"left":_vm.annotationsTooltipPosition.left,"chart":_vm.chart,"placement":"bottom"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipTitle))])]},proxy:true}],null,false,1889294429)},[_vm._v(" "),_c('div',[_vm._v(_vm._s(_vm.annotationsTooltipContent))])]):_vm._e(),_vm._v(" "),(_vm.chart)?_c('chart-tooltip',{ref:"dataTooltip",attrs:{"chart":_vm.chart,"use-default-tooltip-formatter":!_vm.formatTooltipText},scopedSlots:_vm._u([(_vm.$scopedSlots['tooltip-title'])?{key:"title",fn:function(scope){return [_vm._t("tooltip-title",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-content'])?{key:"default",fn:function(scope){return [_vm._t("tooltip-content",null,null,scope)]}}:null,(_vm.$scopedSlots['tooltip-value'])?{key:"tooltip-value",fn:function(scope){return [_vm._t("tooltip-value",null,null,scope)]}}:null],null,true)}):_vm._e(),_vm._v(" "),(_vm.compiledOptions)?_c('chart-legend',{style:(_vm.legendStyle),attrs:{"chart":_vm.chart,"series-info":_vm.seriesInfo,"text-style":_vm.compiledOptions.textStyle,"min-text":_vm.legendMinText,"max-text":_vm.legendMaxText,"average-text":_vm.legendAverageText,"current-text":_vm.legendCurrentText,"layout":_vm.legendLayout}}):_vm._e()],1)};
|
|
282
286
|
var __vue_staticRenderFns__ = [];
|
|
283
287
|
|
|
284
288
|
/* style */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "111.
|
|
3
|
+
"version": "111.10.1",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@gitlab/eslint-plugin": "20.7.1",
|
|
109
109
|
"@gitlab/fonts": "^1.3.0",
|
|
110
110
|
"@gitlab/stylelint-config": "6.2.2",
|
|
111
|
-
"@gitlab/svgs": "3.
|
|
111
|
+
"@gitlab/svgs": "3.126.0",
|
|
112
112
|
"@jest/test-sequencer": "^29.7.0",
|
|
113
113
|
"@rollup/plugin-commonjs": "^11.1.0",
|
|
114
114
|
"@rollup/plugin-node-resolve": "^7.1.3",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"axe-playwright": "^2.1.0",
|
|
143
143
|
"babel-jest": "29.0.1",
|
|
144
144
|
"babel-loader": "^8.0.5",
|
|
145
|
-
"cypress": "14.2.
|
|
145
|
+
"cypress": "14.2.1",
|
|
146
146
|
"cypress-real-events": "^1.11.0",
|
|
147
147
|
"dompurify": "^3.1.2",
|
|
148
148
|
"emoji-regex": "^10.0.0",
|
|
@@ -34,6 +34,7 @@ import GlListboxGroup from './listbox_group.vue';
|
|
|
34
34
|
import { isOption, itemsValidator, flattenedOptions } from './utils';
|
|
35
35
|
|
|
36
36
|
export const ITEM_SELECTOR = '[role="option"]';
|
|
37
|
+
export const ITEM_NULL_KEY = Symbol('null-key');
|
|
37
38
|
const HEADER_ITEMS_BORDER_CLASSES = [
|
|
38
39
|
'gl-border-b-1',
|
|
39
40
|
'gl-border-b-solid',
|
|
@@ -759,6 +760,12 @@ export default {
|
|
|
759
760
|
*/
|
|
760
761
|
this.$emit('bottom-reached');
|
|
761
762
|
},
|
|
763
|
+
listboxItemKey(item) {
|
|
764
|
+
if (item.value === null) {
|
|
765
|
+
return ITEM_NULL_KEY;
|
|
766
|
+
}
|
|
767
|
+
return item.value;
|
|
768
|
+
},
|
|
762
769
|
listboxItemMoreItemsAriaAttributes(index) {
|
|
763
770
|
if (this.totalItems === null) {
|
|
764
771
|
return {};
|
|
@@ -907,7 +914,7 @@ export default {
|
|
|
907
914
|
<template v-for="(item, index) in items">
|
|
908
915
|
<template v-if="isOption(item)">
|
|
909
916
|
<gl-listbox-item
|
|
910
|
-
:key="item
|
|
917
|
+
:key="listboxItemKey(item)"
|
|
911
918
|
:data-testid="`listbox-item-${item.value}`"
|
|
912
919
|
:is-highlighted="isHighlighted(item)"
|
|
913
920
|
:is-selected="isSelected(item)"
|
|
@@ -937,7 +944,7 @@ export default {
|
|
|
937
944
|
|
|
938
945
|
<gl-listbox-item
|
|
939
946
|
v-for="option in item.options"
|
|
940
|
-
:key="option
|
|
947
|
+
:key="listboxItemKey(option)"
|
|
941
948
|
:data-testid="`listbox-item-${option.value}`"
|
|
942
949
|
:is-highlighted="isHighlighted(option)"
|
|
943
950
|
:is-selected="isSelected(option)"
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import isNumber from 'lodash/isNumber';
|
|
2
2
|
import isString from 'lodash/isString';
|
|
3
3
|
|
|
4
|
-
const isOption = (item) =>
|
|
4
|
+
const isOption = (item) =>
|
|
5
|
+
Boolean(item) && (isString(item.value) || isNumber(item.value) || item.value === null);
|
|
5
6
|
|
|
6
7
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
7
8
|
const isGroup = ({ options } = {}) => Array.isArray(options) && options.every(isOption);
|
|
@@ -141,6 +141,7 @@ export default {
|
|
|
141
141
|
// https://gitlab.com/gitlab-org/gitlab-ui/-/issues/618
|
|
142
142
|
return {
|
|
143
143
|
chart: null,
|
|
144
|
+
compiledOptions: null,
|
|
144
145
|
showAnnotationsTooltip: false,
|
|
145
146
|
annotationsTooltipTitle: '',
|
|
146
147
|
annotationsTooltipContent: '',
|
|
@@ -238,22 +239,20 @@ export default {
|
|
|
238
239
|
shouldShowAnnotationsTooltip() {
|
|
239
240
|
return this.chart && this.hasAnnotations;
|
|
240
241
|
},
|
|
241
|
-
compiledOptions() {
|
|
242
|
-
return this.chart ? this.chart.getOption() : null;
|
|
243
|
-
},
|
|
244
242
|
legendStyle() {
|
|
245
243
|
return { paddingLeft: `${grid.left}px` };
|
|
246
244
|
},
|
|
247
245
|
seriesInfo() {
|
|
248
246
|
if (this.legendSeriesInfo.length > 0) return this.legendSeriesInfo;
|
|
249
247
|
|
|
250
|
-
|
|
248
|
+
const compiledSeries = this.compiledOptions?.series || [];
|
|
249
|
+
return compiledSeries.reduce((acc, series, index) => {
|
|
251
250
|
if (series.type === 'line') {
|
|
252
251
|
acc.push({
|
|
253
252
|
name: series.name,
|
|
254
253
|
type: series.lineStyle.type,
|
|
255
254
|
color: series.lineStyle.color || colorFromDefaultPalette(index),
|
|
256
|
-
data: this.includeLegendAvgMax ? series.data
|
|
255
|
+
data: this.includeLegendAvgMax ? series.data?.map((data) => data[1]) : undefined,
|
|
257
256
|
});
|
|
258
257
|
}
|
|
259
258
|
return acc;
|
|
@@ -292,6 +291,9 @@ export default {
|
|
|
292
291
|
this.chart = chart;
|
|
293
292
|
this.$emit('created', chart);
|
|
294
293
|
},
|
|
294
|
+
onUpdated() {
|
|
295
|
+
this.compiledOptions = this.chart.getOption();
|
|
296
|
+
},
|
|
295
297
|
onChartDataPointMouseOut() {
|
|
296
298
|
this.showAnnotationsTooltip = false;
|
|
297
299
|
},
|
|
@@ -328,6 +330,7 @@ export default {
|
|
|
328
330
|
:options="options"
|
|
329
331
|
v-on="$listeners"
|
|
330
332
|
@created="onCreated"
|
|
333
|
+
@updated="onUpdated"
|
|
331
334
|
/>
|
|
332
335
|
<chart-tooltip
|
|
333
336
|
v-if="shouldShowAnnotationsTooltip"
|