@gitlab/ui 52.9.3 → 52.11.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +23 -5
  3. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +291 -0
  4. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +90 -0
  5. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +107 -0
  6. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +128 -0
  7. package/dist/components/base/new_dropdowns/disclosure/utils.js +15 -0
  8. package/dist/components/base/new_dropdowns/listbox/listbox.js +4 -4
  9. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +1 -1
  10. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +1 -1
  11. package/dist/components/charts/sparkline/sparkline.js +29 -12
  12. package/dist/index.css +2 -2
  13. package/dist/index.css.map +1 -1
  14. package/dist/index.js +3 -0
  15. package/package.json +2 -2
  16. package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.spec.js +3 -3
  17. package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +21 -3
  18. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.md +114 -0
  19. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.scss +7 -0
  20. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.spec.js +210 -0
  21. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.stories.js +306 -0
  22. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.vue +342 -0
  23. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.spec.js +82 -0
  24. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +77 -0
  25. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.spec.js +94 -0
  26. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +98 -0
  27. package/src/components/base/new_dropdowns/disclosure/mock_data.js +156 -0
  28. package/src/components/base/new_dropdowns/disclosure/utils.js +18 -0
  29. package/src/components/base/new_dropdowns/disclosure/utils.spec.js +73 -0
  30. package/src/components/base/new_dropdowns/dropdown.scss +6 -0
  31. package/src/components/base/new_dropdowns/listbox/listbox.scss +0 -6
  32. package/src/components/base/new_dropdowns/listbox/listbox.vue +4 -4
  33. package/src/components/base/new_dropdowns/listbox/listbox_group.vue +1 -1
  34. package/src/components/base/new_dropdowns/listbox/listbox_item.vue +1 -1
  35. package/src/components/charts/sparkline/sparkline.spec.js +25 -0
  36. package/src/components/charts/sparkline/sparkline.stories.js +9 -0
  37. package/src/components/charts/sparkline/sparkline.vue +28 -14
  38. package/src/index.js +3 -0
  39. package/src/scss/components.scss +2 -0
@@ -63,6 +63,8 @@ describe('sparkline chart component', () => {
63
63
  return formatter;
64
64
  };
65
65
 
66
+ const validateSmooth = (smooth) => SparklineChart.props.smooth.validator(smooth);
67
+
66
68
  const emitChartCreated = () => getChart().vm.$emit('created', mockChartInstance);
67
69
 
68
70
  beforeEach(() => {
@@ -178,6 +180,7 @@ describe('sparkline chart component', () => {
178
180
 
179
181
  await wrapper.vm.$nextTick();
180
182
  expect(getLastYValue().exists()).toBe(false);
183
+ expect(getChartOptions().series[0].markPoint).toBe(undefined);
181
184
  });
182
185
 
183
186
  it('gradient will set the series itemStyle color', async () => {
@@ -187,4 +190,26 @@ describe('sparkline chart component', () => {
187
190
 
188
191
  expect(getChartOptions().series[0].itemStyle.color).toBeDefined();
189
192
  });
193
+
194
+ describe('smooth', () => {
195
+ it.each`
196
+ value | expected
197
+ ${-1} | ${false}
198
+ ${0} | ${true}
199
+ ${0.5} | ${true}
200
+ ${1} | ${true}
201
+ ${1.1} | ${false}
202
+ `(`validate $value`, ({ value, expected }) => {
203
+ expect(validateSmooth(value)).toBe(expected);
204
+ });
205
+
206
+ it('sets the series smoothing', async () => {
207
+ const smooth = 0.75;
208
+ wrapper.setProps({ smooth });
209
+
210
+ await wrapper.vm.$nextTick();
211
+
212
+ expect(getChartOptions().series[0].smooth).toBe(smooth);
213
+ });
214
+ });
190
215
  });
@@ -24,12 +24,14 @@ const generateProps = ({
24
24
  tooltipLabel = 'tooltipLabel',
25
25
  showLastYValue = true,
26
26
  gradient,
27
+ smooth,
27
28
  } = {}) => ({
28
29
  data,
29
30
  height,
30
31
  tooltipLabel,
31
32
  showLastYValue,
32
33
  gradient,
34
+ smooth,
33
35
  });
34
36
 
35
37
  const Template = (args) => ({
@@ -43,6 +45,7 @@ const Template = (args) => ({
43
45
  :tooltip-label="tooltipLabel"
44
46
  :show-last-y-value="showLastYValue"
45
47
  :gradient="gradient"
48
+ :smooth="smooth"
46
49
  />
47
50
  </div>`,
48
51
  });
@@ -50,9 +53,15 @@ const Template = (args) => ({
50
53
  export const Default = Template.bind({});
51
54
  Default.args = generateProps();
52
55
 
56
+ export const WithoutLastYValue = Template.bind({});
57
+ WithoutLastYValue.args = generateProps({ showLastYValue: false });
58
+
53
59
  export const WithChartColorGradient = Template.bind({});
54
60
  WithChartColorGradient.args = generateProps({ gradient: customGradient });
55
61
 
62
+ export const WithSmoothing = Template.bind({});
63
+ WithSmoothing.args = generateProps({ smooth: 0.5 });
64
+
56
65
  export default {
57
66
  title: 'charts/sparkline-chart',
58
67
  component: GlSparklineChart,
@@ -72,6 +72,15 @@ export default {
72
72
  required: false,
73
73
  default: () => [],
74
74
  },
75
+ /**
76
+ * The smoothness of the line, valued from 0 to 1. A smaller value makes it less smooth.
77
+ */
78
+ smooth: {
79
+ type: Number,
80
+ required: false,
81
+ default: 0,
82
+ validator: (x) => x >= 0 && x <= 1,
83
+ },
75
84
  },
76
85
  data() {
77
86
  return {
@@ -120,7 +129,21 @@ export default {
120
129
  return mergeSeriesToOptions(mergedOptions, this.series);
121
130
  },
122
131
  series() {
123
- const { data } = this;
132
+ const { data, smooth, itemStyle, showLastYValue } = this;
133
+ const markPoint = showLastYValue
134
+ ? {
135
+ symbol: 'circle',
136
+ cursor: 'auto',
137
+ animation: false,
138
+ symbolSize,
139
+ data: [
140
+ {
141
+ xAxis: data.length - 1,
142
+ yAxis: data[data.length - 1][1],
143
+ },
144
+ ],
145
+ }
146
+ : undefined;
124
147
  return {
125
148
  type: 'line',
126
149
  symbol: 'circle',
@@ -128,20 +151,11 @@ export default {
128
151
  animation: true,
129
152
  cursor: 'auto',
130
153
  symbolSize,
131
- markPoint: {
132
- symbol: 'circle',
133
- cursor: 'auto',
134
- animation: false,
135
- symbolSize,
136
- data: [
137
- {
138
- xAxis: data.length - 1,
139
- yAxis: data[data.length - 1][1],
140
- },
141
- ],
142
- },
154
+ markPoint,
143
155
  data,
144
- itemStyle: this.itemStyle,
156
+ smooth,
157
+ itemStyle,
158
+ lineStyle: { cap: 'round' },
145
159
  };
146
160
  },
147
161
  itemStyle() {
package/src/index.js CHANGED
@@ -57,6 +57,9 @@ export {
57
57
  default as GlCollapsibleListbox,
58
58
  } from './components/base/new_dropdowns/listbox/listbox.vue';
59
59
  export { default as GlListboxItem } from './components/base/new_dropdowns/listbox/listbox_item.vue';
60
+ export { default as GlDisclosureDropdown } from './components/base/new_dropdowns/disclosure/disclosure_dropdown.vue';
61
+ export { default as GlDisclosureDropdownItem } from './components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue';
62
+ export { default as GlDisclosureDropdownGroup } from './components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue';
60
63
  // new components aiming to replace GlDropdown - end
61
64
  export { default as GlPath } from './components/base/path/path.vue';
62
65
  export { default as GlTable } from './components/base/table/table.vue';
@@ -3,6 +3,7 @@
3
3
  // @import '../components/base/dropdown/dropdown'
4
4
  //
5
5
  // ADD COMPONENT IMPORTS - needed for yarn generate:component. Do not remove
6
+ @import '../components/base/new_dropdowns/disclosure/disclosure_dropdown';
6
7
  @import '../components/base/keyset_pagination/keyset_pagination';
7
8
  @import '../components/charts/gauge/gauge';
8
9
  @import '../components/base/token_selector/token_selector';
@@ -75,4 +76,5 @@
75
76
  @import '../components/shared_components/charts/tooltip_default_format';
76
77
  @import '../components/utilities/truncate/truncate';
77
78
  @import '../components/base/new_dropdowns/base_dropdown/base_dropdown';
79
+ @import '../components/base/new_dropdowns/dropdown';
78
80
  @import '../components/base/new_dropdowns/listbox/listbox';