@gitlab/ui 32.43.3 → 32.46.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 (166) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/config.js +15 -3
  3. package/dist/components/base/avatar/avatar.documentation.js +2 -5
  4. package/dist/components/base/avatar_link/avatar_link.documentation.js +2 -5
  5. package/dist/components/base/form/form_group/form_group.js +11 -1
  6. package/dist/components/base/form/form_input/form_input.documentation.js +2 -27
  7. package/dist/components/base/form/form_input/form_input.js +23 -6
  8. package/dist/components/base/form/form_text/form_text.documentation.js +1 -4
  9. package/dist/components/base/label/label.documentation.js +2 -9
  10. package/dist/components/base/label/label.js +23 -1
  11. package/dist/components/base/pagination/pagination.documentation.js +2 -85
  12. package/dist/components/base/pagination/pagination.js +76 -0
  13. package/dist/components/base/segmented_control/segmented_control.documentation.js +2 -14
  14. package/dist/components/base/segmented_control/segmented_control.js +6 -0
  15. package/dist/components/base/skeleton_loader/skeleton_loader.documentation.js +2 -28
  16. package/dist/components/base/skeleton_loader/skeleton_loader.js +30 -0
  17. package/dist/components/charts/chart/chart.js +17 -4
  18. package/dist/components/charts/discrete_scatter/discrete_scatter.documentation.js +1 -7
  19. package/dist/components/charts/heatmap/heatmap.js +1 -9
  20. package/dist/components/charts/sparkline/sparkline.js +1 -1
  21. package/dist/components/charts/stacked_column/stacked_column.documentation.js +2 -5
  22. package/dist/config.js +15 -3
  23. package/dist/index.css +1 -1
  24. package/dist/index.css.map +1 -1
  25. package/dist/utility_classes.css +1 -1
  26. package/dist/utility_classes.css.map +1 -1
  27. package/documentation/documented_stories.js +9 -0
  28. package/package.json +11 -10
  29. package/src/components/base/alert/alert.spec.js +2 -2
  30. package/src/components/base/avatar/avatar.documentation.js +0 -2
  31. package/src/components/base/avatar/avatar.md +0 -2
  32. package/src/components/base/avatar/avatar.spec.js +1 -2
  33. package/src/components/base/avatar/avatar.stories.js +88 -101
  34. package/src/components/base/avatar_link/avatar_link.documentation.js +0 -2
  35. package/src/components/base/avatar_link/avatar_link.md +4 -7
  36. package/src/components/base/avatar_link/avatar_link.stories.js +66 -54
  37. package/src/components/base/filtered_search/filtered_search.spec.js +35 -35
  38. package/src/components/base/filtered_search/filtered_search_term.spec.js +1 -1
  39. package/src/components/base/form/form_group/form_group.scss +4 -0
  40. package/src/components/base/form/form_group/form_group.spec.js +66 -64
  41. package/src/components/base/form/form_group/form_group.stories.js +36 -13
  42. package/src/components/base/form/form_group/form_group.vue +15 -2
  43. package/src/components/base/form/form_input/form_input.documentation.js +0 -31
  44. package/src/components/base/form/form_input/form_input.md +0 -2
  45. package/src/components/base/form/form_input/form_input.stories.js +50 -42
  46. package/src/components/base/form/form_input/form_input.vue +23 -6
  47. package/src/components/base/form/form_input_group/form_input_group.spec.js +1 -3
  48. package/src/components/base/form/form_text/form_text.documentation.js +0 -2
  49. package/src/components/base/form/form_text/form_text.md +1 -3
  50. package/src/components/base/form/form_text/form_text.stories.js +20 -8
  51. package/src/components/base/icon/icon.spec.js +1 -4
  52. package/src/components/base/infinite_scroll/infinite_scroll.spec.js +1 -4
  53. package/src/components/base/label/label.documentation.js +2 -12
  54. package/src/components/base/label/label.md +2 -7
  55. package/src/components/base/label/label.stories.js +66 -92
  56. package/src/components/base/label/label.vue +22 -2
  57. package/src/components/base/modal/modal.spec.js +19 -23
  58. package/src/components/base/paginated_list/__snapshots__/paginated_list.spec.js.snap +10 -10
  59. package/src/components/base/pagination/pagination.documentation.js +0 -100
  60. package/src/components/base/pagination/pagination.md +5 -9
  61. package/src/components/base/pagination/pagination.spec.js +1 -4
  62. package/src/components/base/pagination/pagination.stories.js +109 -117
  63. package/src/components/base/pagination/pagination.vue +85 -0
  64. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +1 -5
  65. package/src/components/base/segmented_control/segmented_control.documentation.js +0 -15
  66. package/src/components/base/segmented_control/segmented_control.md +0 -2
  67. package/src/components/base/segmented_control/segmented_control.stories.js +46 -36
  68. package/src/components/base/segmented_control/segmented_control.vue +5 -0
  69. package/src/components/base/skeleton_loader/skeleton_loader.documentation.js +0 -27
  70. package/src/components/base/skeleton_loader/skeleton_loader.md +0 -2
  71. package/src/components/base/skeleton_loader/skeleton_loader.stories.js +23 -9
  72. package/src/components/base/skeleton_loader/skeleton_loader.vue +24 -0
  73. package/src/components/base/sorting/sorting.spec.js +1 -4
  74. package/src/components/base/toast/toast.spec.js +4 -6
  75. package/src/components/base/token/token.spec.js +1 -4
  76. package/src/components/base/token_selector/token_container.spec.js +2 -3
  77. package/src/components/charts/chart/chart.spec.js +33 -4
  78. package/src/components/charts/chart/chart.vue +16 -4
  79. package/src/components/charts/discrete_scatter/discrete_scatter.documentation.js +0 -5
  80. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +34 -46
  81. package/src/components/charts/gauge/gauge.spec.js +7 -7
  82. package/src/components/charts/heatmap/heatmap.vue +2 -9
  83. package/src/components/charts/sparkline/sparkline.spec.js +1 -4
  84. package/src/components/charts/sparkline/sparkline.vue +7 -1
  85. package/src/components/charts/stacked_column/stacked_column.documentation.js +0 -2
  86. package/src/components/charts/stacked_column/stacked_column.md +0 -2
  87. package/src/components/charts/stacked_column/stacked_column.stories.js +74 -99
  88. package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +1 -4
  89. package/src/components/utilities/intersperse/intersperse.spec.js +1 -4
  90. package/src/directives/hover_load/hover_load.spec.js +2 -13
  91. package/src/directives/outside/outside.spec.js +1 -6
  92. package/src/directives/resize_observer/resize_observer.spec.js +4 -10
  93. package/src/scss/storybook.scss +8 -0
  94. package/src/scss/utilities.scss +8 -0
  95. package/src/scss/utility-mixins/transform.scss +4 -0
  96. package/dist/components/base/avatar/examples/avatar.fallback.example.js +0 -38
  97. package/dist/components/base/avatar/examples/avatar.image.example.js +0 -38
  98. package/dist/components/base/avatar/examples/avatar.rect.example.js +0 -38
  99. package/dist/components/base/avatar/examples/avatar.tooltip.example.js +0 -38
  100. package/dist/components/base/avatar/examples/index.js +0 -31
  101. package/dist/components/base/avatar_link/examples/avatar.link.example.js +0 -38
  102. package/dist/components/base/avatar_link/examples/index.js +0 -13
  103. package/dist/components/base/form/form_input/examples/form_input/form_input.text.example.js +0 -38
  104. package/dist/components/base/form/form_input/examples/form_input/form_input.text_disabled.example.js +0 -38
  105. package/dist/components/base/form/form_input/examples/form_input/form_input.text_reactive.example.js +0 -57
  106. package/dist/components/base/form/form_input/examples/form_input/index.js +0 -22
  107. package/dist/components/base/form/form_text/examples/form_text.basic.example.js +0 -38
  108. package/dist/components/base/form/form_text/examples/index.js +0 -13
  109. package/dist/components/base/label/examples/index.js +0 -19
  110. package/dist/components/base/label/examples/label.basic.example.js +0 -38
  111. package/dist/components/base/label/examples/label.scoped.example.js +0 -38
  112. package/dist/components/base/pagination/examples/index.js +0 -37
  113. package/dist/components/base/pagination/examples/pagination.basic.example.js +0 -45
  114. package/dist/components/base/pagination/examples/pagination.compact.example.js +0 -58
  115. package/dist/components/base/pagination/examples/pagination.double_truncation.example.js +0 -45
  116. package/dist/components/base/pagination/examples/pagination.event.example.js +0 -51
  117. package/dist/components/base/pagination/examples/pagination.links.example.js +0 -45
  118. package/dist/components/base/segmented_control/examples/index.js +0 -19
  119. package/dist/components/base/segmented_control/examples/segmented_control.basic.example.js +0 -65
  120. package/dist/components/base/segmented_control/examples/segmented_control.whitespace.example.js +0 -55
  121. package/dist/components/base/skeleton_loader/examples/ci_header_skeleton.basic.example.js +0 -38
  122. package/dist/components/base/skeleton_loader/examples/default_skeleton.basic.example.js +0 -38
  123. package/dist/components/base/skeleton_loader/examples/default_skeleton_custom_props.basic.example.js +0 -38
  124. package/dist/components/base/skeleton_loader/examples/index.js +0 -37
  125. package/dist/components/base/skeleton_loader/examples/issue_card_skeleton.basic.example.js +0 -38
  126. package/dist/components/base/skeleton_loader/examples/job_log_skeleton.basic.example.js +0 -38
  127. package/dist/components/charts/discrete_scatter/examples/discrete_scatter.basic.example.js +0 -51
  128. package/dist/components/charts/discrete_scatter/examples/index.js +0 -13
  129. package/dist/components/charts/stacked_column/examples/index.js +0 -13
  130. package/dist/components/charts/stacked_column/examples/stacked_column.basic.example.js +0 -46
  131. package/src/components/base/avatar/examples/avatar.fallback.example.vue +0 -3
  132. package/src/components/base/avatar/examples/avatar.image.example.vue +0 -3
  133. package/src/components/base/avatar/examples/avatar.rect.example.vue +0 -6
  134. package/src/components/base/avatar/examples/avatar.tooltip.example.vue +0 -3
  135. package/src/components/base/avatar/examples/index.js +0 -36
  136. package/src/components/base/avatar_link/examples/avatar.link.example.vue +0 -5
  137. package/src/components/base/avatar_link/examples/index.js +0 -15
  138. package/src/components/base/form/form_input/examples/form_input/form_input.text.example.vue +0 -3
  139. package/src/components/base/form/form_input/examples/form_input/form_input.text_disabled.example.vue +0 -3
  140. package/src/components/base/form/form_input/examples/form_input/form_input.text_reactive.example.vue +0 -24
  141. package/src/components/base/form/form_input/examples/form_input/index.js +0 -26
  142. package/src/components/base/form/form_text/examples/form_text.basic.example.vue +0 -5
  143. package/src/components/base/form/form_text/examples/index.js +0 -15
  144. package/src/components/base/label/examples/index.js +0 -22
  145. package/src/components/base/label/examples/label.basic.example.vue +0 -3
  146. package/src/components/base/label/examples/label.scoped.example.vue +0 -3
  147. package/src/components/base/pagination/examples/index.js +0 -43
  148. package/src/components/base/pagination/examples/pagination.basic.example.vue +0 -17
  149. package/src/components/base/pagination/examples/pagination.compact.example.vue +0 -33
  150. package/src/components/base/pagination/examples/pagination.double_truncation.example.vue +0 -11
  151. package/src/components/base/pagination/examples/pagination.event.example.vue +0 -26
  152. package/src/components/base/pagination/examples/pagination.links.example.vue +0 -18
  153. package/src/components/base/segmented_control/examples/index.js +0 -22
  154. package/src/components/base/segmented_control/examples/segmented_control.basic.example.vue +0 -19
  155. package/src/components/base/segmented_control/examples/segmented_control.whitespace.example.vue +0 -18
  156. package/src/components/base/skeleton_loader/examples/ci_header_skeleton.basic.example.vue +0 -10
  157. package/src/components/base/skeleton_loader/examples/default_skeleton.basic.example.vue +0 -3
  158. package/src/components/base/skeleton_loader/examples/default_skeleton_custom_props.basic.example.vue +0 -9
  159. package/src/components/base/skeleton_loader/examples/index.js +0 -44
  160. package/src/components/base/skeleton_loader/examples/issue_card_skeleton.basic.example.vue +0 -26
  161. package/src/components/base/skeleton_loader/examples/job_log_skeleton.basic.example.vue +0 -13
  162. package/src/components/charts/discrete_scatter/discrete_scatter.md +0 -1
  163. package/src/components/charts/discrete_scatter/examples/discrete_scatter.basic.example.vue +0 -31
  164. package/src/components/charts/discrete_scatter/examples/index.js +0 -15
  165. package/src/components/charts/stacked_column/examples/index.js +0 -15
  166. package/src/components/charts/stacked_column/examples/stacked_column.basic.example.vue +0 -18
@@ -108,7 +108,7 @@ describe('gauge component', () => {
108
108
  createComponent({ value: 'not a number' });
109
109
 
110
110
  return wrapper.vm.$nextTick().then(() => {
111
- global.console.error.mockReset();
111
+ expect(wrapper).toHaveLoggedVueErrors();
112
112
  expect(findDetailText()).toBe(placeholder);
113
113
  });
114
114
  });
@@ -196,7 +196,7 @@ describe('gauge component', () => {
196
196
  it('if some of them are invalid values they are skipped', () => {
197
197
  createComponent({ thresholds: [undefined, 95, 'a string', NaN, 50, 15, 25] });
198
198
 
199
- global.console.error.mockReset();
199
+ expect(wrapper).toHaveLoggedVueErrors();
200
200
 
201
201
  expect(findAxisColor().length).toBe(3);
202
202
  });
@@ -215,7 +215,7 @@ describe('gauge component', () => {
215
215
  it('when some values are invalid', () => {
216
216
  createComponent({ thresholds: [NaN, 95, undefined, 'a string', 50, 15, 25] });
217
217
 
218
- global.console.error.mockReset();
218
+ expect(wrapper).toHaveLoggedVueErrors();
219
219
 
220
220
  expect(findAxisColor().length).toBe(3);
221
221
  expect(findAxisColor()[0]).toEqual([0.5, gaugeSafeHues[0]]);
@@ -235,12 +235,12 @@ describe('gauge component', () => {
235
235
  });
236
236
 
237
237
  describe('when thresholds that are not numbers are set, they will not show on the arc', () => {
238
- beforeEach(() => {
238
+ beforeEach(async () => {
239
239
  createComponent({ thresholds: ['not a number', NaN, undefined] });
240
240
 
241
- return wrapper.vm.$nextTick().then(() => {
242
- global.console.error.mockReset();
243
- });
241
+ await wrapper.vm.$nextTick();
242
+ // eslint-disable-next-line jest/no-standalone-expect
243
+ expect(wrapper).toHaveLoggedVueErrors();
244
244
  });
245
245
 
246
246
  it('axis has a single color set', () => {
@@ -1,7 +1,6 @@
1
1
  <script>
2
2
  import merge from 'lodash/merge';
3
3
  import { white, gray100 } from '../../../../scss_to_js/scss_variables';
4
- import { GlResizeObserverDirective } from '../../../directives/resize_observer/resize_observer';
5
4
  import { getDefaultTooltipContent } from '../../../utils/charts/config';
6
5
  import { TOOLTIP_LEFT_OFFSET } from '../../../utils/charts/constants';
7
6
  import { heatmapHues } from '../../../utils/charts/theme';
@@ -49,9 +48,6 @@ export default {
49
48
  ChartTooltip,
50
49
  TooltipDefaultFormat,
51
50
  },
52
- directives: {
53
- resizeObserver: GlResizeObserverDirective,
54
- },
55
51
  mixins: [ToolboxMixin],
56
52
  props: {
57
53
  options: {
@@ -237,9 +233,6 @@ export default {
237
233
  this.chart = chart;
238
234
  this.$emit('created', chart);
239
235
  },
240
- handleResize() {
241
- return this.responsive && this.chart.resize();
242
- },
243
236
  showHideTooltip(mouseEvent) {
244
237
  this.tooltip.show = this.chart.containPixel('grid', [mouseEvent.zrX, mouseEvent.zrY]);
245
238
  },
@@ -262,8 +255,8 @@ export default {
262
255
  </script>
263
256
 
264
257
  <template>
265
- <div v-resize-observer="handleResize" class="gl-heatmap">
266
- <chart :options="computedOptions" @created="onCreated" />
258
+ <div class="gl-heatmap">
259
+ <chart v-bind="$attrs" :options="computedOptions" @created="onCreated" v-on="$listeners" />
267
260
  <chart-tooltip
268
261
  v-if="chart"
269
262
  :show="tooltip.show"
@@ -1,4 +1,4 @@
1
- import { shallowMount, createLocalVue } from '@vue/test-utils';
1
+ import { shallowMount } from '@vue/test-utils';
2
2
  import Chart from '../chart/chart.vue';
3
3
  import SparklineChart from './sparkline.vue';
4
4
  import { waitForAnimationFrame } from '~/utils/test_utils';
@@ -19,14 +19,11 @@ jest.mock('~/directives/resize_observer/resize_observer', () => ({
19
19
  },
20
20
  }));
21
21
 
22
- const localVue = createLocalVue();
23
-
24
22
  describe('sparkline chart component', () => {
25
23
  let wrapper;
26
24
  let componentOptions;
27
25
  const factory = () => {
28
26
  componentOptions = {
29
- localVue,
30
27
  propsData: {
31
28
  data: [[]],
32
29
  variant: null,
@@ -181,7 +181,13 @@ export default {
181
181
  >
182
182
  <slot name="default"></slot>
183
183
  <div class="gl-flex-grow-1 gl-relative">
184
- <chart :height="height" :options="options" @created="onChartCreated" />
184
+ <chart
185
+ v-bind="$attrs"
186
+ :height="height"
187
+ :options="options"
188
+ @created="onChartCreated"
189
+ v-on="$listeners"
190
+ />
185
191
  <chart-tooltip
186
192
  v-if="chartInstance"
187
193
  :show="tooltip.show"
@@ -1,8 +1,6 @@
1
- import examples from './examples';
2
1
  import description from './stacked_column.md';
3
2
 
4
3
  export default {
5
4
  followsDesignSystem: false,
6
5
  description,
7
- examples,
8
6
  };
@@ -1,5 +1,3 @@
1
- # Stacked Column Chart
2
-
3
1
  The `presentation` property allows you to change between a stacked and tiled presentation style. It
4
2
  is only setup to accept `stacked` or `tiled` as values, the default value is `tiled`.
5
3
 
@@ -1,6 +1,4 @@
1
- import { withKnobs, object, text, array, select } from '@storybook/addon-knobs';
2
1
  import { GlStackedColumnChart } from '../../../../charts';
3
- import { documentedStoriesOf } from '../../../../documentation/documented_stories';
4
2
  import {
5
3
  mockDefaultStackedLineData,
6
4
  mockDefaultStackedBarData,
@@ -10,10 +8,6 @@ import { toolbox } from '../../../utils/charts/story_config';
10
8
  import { columnOptions } from '../../../utils/constants';
11
9
  import readme from './stacked_column.md';
12
10
 
13
- const components = {
14
- GlStackedColumnChart,
15
- };
16
-
17
11
  const template = `
18
12
  <gl-stacked-column-chart
19
13
  :bars="bars"
@@ -31,7 +25,7 @@ const template = `
31
25
 
32
26
  const mockSecondaryDataTitle = 'Merges';
33
27
 
34
- function generateProps({
28
+ const generateProps = ({
35
29
  bars = mockDefaultStackedBarData,
36
30
  lines = [],
37
31
  option = {},
@@ -42,98 +36,79 @@ function generateProps({
42
36
  presentation = columnOptions.stacked,
43
37
  secondaryData = [],
44
38
  secondaryDataTitle = '',
45
- } = {}) {
46
- return {
47
- bars: {
48
- default: object('Bar chart Data', bars),
49
- },
50
- lines: {
51
- default: object('Line chart Data', lines),
52
- },
53
- option: {
54
- default: object('Echart Options', option),
55
- },
56
- presentation: {
57
- default: select('presentation', columnOptions, presentation),
58
- },
59
- groupBy: {
60
- default: array('Group By', groupBy),
61
- },
62
- xAxisType: {
63
- default: text('X Axis Type', xAxisType),
64
- },
65
- xAxisTitle: {
66
- default: text('X Axis Title', xAxisTitle),
67
- },
68
- yAxisTitle: {
69
- default: text('Y Axis Title', yAxisTitle),
70
- },
71
- secondaryDataTitle: {
72
- default: text('Secondary Data Title', secondaryDataTitle),
73
- },
74
- secondaryData: {
75
- default: object('Secondary Data', secondaryData),
76
- },
77
- };
78
- }
39
+ } = {}) => ({
40
+ bars,
41
+ lines,
42
+ option,
43
+ presentation,
44
+ groupBy,
45
+ xAxisType,
46
+ xAxisTitle,
47
+ yAxisTitle,
48
+ secondaryDataTitle,
49
+ secondaryData,
50
+ });
79
51
 
80
- documentedStoriesOf('charts/stacked-column-chart', readme)
81
- .addDecorator(withKnobs)
82
- .add('stacked', () => ({
83
- props: generateProps(),
84
- components,
85
- template,
86
- }))
87
- .add('tiled', () => ({
88
- props: generateProps({ presentation: columnOptions.tiled }),
89
- components,
90
- template,
91
- }))
92
- .add('stacked with line data', () => ({
93
- props: generateProps({ lines: mockDefaultStackedLineData }),
94
- components,
95
- template,
96
- }))
97
- .add('tiled with line data', () => ({
98
- props: generateProps({ presentation: columnOptions.tiled, lines: mockDefaultStackedLineData }),
99
- components,
100
- template,
101
- }))
102
- .add('with zoom and scroll', () => ({
103
- props: generateProps({
104
- option: {
105
- dataZoom: [
106
- {
107
- startValue: 1,
108
- },
109
- ],
52
+ const Template = (args, { argTypes }) => ({
53
+ components: { GlStackedColumnChart },
54
+ props: Object.keys(argTypes),
55
+ template,
56
+ });
57
+
58
+ export const Stacked = Template.bind({});
59
+ Stacked.args = generateProps();
60
+
61
+ export const Tiled = Template.bind({});
62
+ Tiled.args = generateProps({ presentation: columnOptions.tiled });
63
+
64
+ export const StackedWithLineData = Template.bind({});
65
+ StackedWithLineData.args = generateProps({ lines: mockDefaultStackedLineData });
66
+
67
+ export const TiledWithLineData = Template.bind({});
68
+ TiledWithLineData.args = generateProps({
69
+ presentation: columnOptions.tiled,
70
+ lines: mockDefaultStackedLineData,
71
+ });
72
+
73
+ export const WithZoomAndScroll = Template.bind({});
74
+ WithZoomAndScroll.args = generateProps({
75
+ option: {
76
+ dataZoom: [
77
+ {
78
+ startValue: 1,
110
79
  },
111
- }),
112
- components,
113
- template,
114
- }))
115
- .add('with toolbox', () => ({
116
- props: generateProps({
117
- option: {
118
- toolbox,
80
+ ],
81
+ },
82
+ });
83
+
84
+ export const WithToolbox = Template.bind({});
85
+ WithToolbox.args = generateProps({
86
+ option: {
87
+ toolbox,
88
+ },
89
+ });
90
+
91
+ export const SecondaryYAxis = Template.bind({});
92
+ SecondaryYAxis.args = generateProps({
93
+ secondaryData: mockSecondaryData,
94
+ secondaryDataTitle: mockSecondaryDataTitle,
95
+ });
96
+
97
+ export const SecondaryYAxisLine = Template.bind({});
98
+ SecondaryYAxisLine.args = generateProps({
99
+ secondaryData: [{ ...mockSecondaryData[0], type: 'line' }],
100
+ secondaryDataTitle: mockSecondaryDataTitle,
101
+ });
102
+
103
+ export default {
104
+ title: 'charts/stacked-column-chart',
105
+ component: GlStackedColumnChart,
106
+ parameters: {
107
+ knobs: { disable: true },
108
+ docs: {
109
+ description: {
110
+ component: readme,
119
111
  },
120
- }),
121
- components,
122
- template,
123
- }))
124
- .add('secondary Y axis', () => ({
125
- props: generateProps({
126
- secondaryData: mockSecondaryData,
127
- secondaryDataTitle: mockSecondaryDataTitle,
128
- }),
129
- components,
130
- template,
131
- }))
132
- .add('secondary Y axis line', () => ({
133
- props: generateProps({
134
- secondaryData: [{ ...mockSecondaryData[0], type: 'line' }],
135
- secondaryDataTitle: mockSecondaryDataTitle,
136
- }),
137
- components,
138
- template,
139
- }));
112
+ },
113
+ },
114
+ };
@@ -115,12 +115,9 @@ describe('Friendly wrap component', () => {
115
115
  });
116
116
 
117
117
  // Assert prop validation failed
118
- expect(global.console).toHaveLoggedVueErrors();
118
+ expect(wrapper).toHaveLoggedVueErrors();
119
119
 
120
120
  // But it still rendered
121
121
  expect(wrapper.text()).toBe('');
122
-
123
- // Prevent test failure due to console.error calls
124
- global.console.error.mockReset();
125
122
  });
126
123
  });
@@ -1,14 +1,11 @@
1
- import { shallowMount, createLocalVue } from '@vue/test-utils';
1
+ import { shallowMount } from '@vue/test-utils';
2
2
  import Intersperse from './intersperse.vue';
3
3
 
4
- const localVue = createLocalVue();
5
-
6
4
  describe('Intersperse Component', () => {
7
5
  let wrapper;
8
6
 
9
7
  const createComponent = (defaultSlot = [], options = {}) => {
10
8
  wrapper = shallowMount(Intersperse, {
11
- localVue,
12
9
  slots: {
13
10
  default: defaultSlot,
14
11
  },
@@ -1,9 +1,8 @@
1
- import { shallowMount, createLocalVue } from '@vue/test-utils';
1
+ import { shallowMount } from '@vue/test-utils';
2
2
  import { HoverLoadDirective as hoverLoad } from './hover_load';
3
3
 
4
4
  describe('hover load directive', () => {
5
5
  let wrapper;
6
- const localVue = createLocalVue();
7
6
  const findTarget = () => wrapper.find('.target');
8
7
 
9
8
  const createComponent = (handleLoad) => {
@@ -19,7 +18,7 @@ describe('hover load directive', () => {
19
18
  template: `<div v-hover-load="handleLoad" class="target"></div>`,
20
19
  };
21
20
 
22
- wrapper = shallowMount(component, { localVue });
21
+ wrapper = shallowMount(component);
23
22
  };
24
23
 
25
24
  afterEach(() => {
@@ -48,16 +47,6 @@ describe('hover load directive', () => {
48
47
  }
49
48
  );
50
49
 
51
- it.each([3, '', undefined, null, false, {}, []])(
52
- 'throws if the handler is %p instead of a function',
53
- (directiveValue) => {
54
- // we are going to throw, so we need to suppress error messages in jest output
55
- jest.spyOn(global.console, 'error').mockImplementation(() => {});
56
-
57
- expect(() => createComponent(directiveValue)).toThrow(TypeError);
58
- }
59
- );
60
-
61
50
  it('cleans up the mouseover event when component is destroyed', () => {
62
51
  createComponent(jest.fn());
63
52
 
@@ -121,9 +121,6 @@ describe('outside directive', () => {
121
121
 
122
122
  expect(global.console).toHaveLoggedVueErrors();
123
123
  expect(document.addEventListener).not.toHaveBeenCalled();
124
-
125
- // Prevent test failure due to console.error calls
126
- global.console.error.mockReset();
127
124
  });
128
125
 
129
126
  it('attaches the global listener on first initialisation', async () => {
@@ -212,9 +209,6 @@ describe('outside directive', () => {
212
209
  find('outside').trigger('click');
213
210
 
214
211
  expect(onClick.mock.calls).toEqual([]);
215
-
216
- // Prevent test failure due to console.error calls
217
- global.console.error.mockReset();
218
212
  }
219
213
  );
220
214
  });
@@ -313,6 +307,7 @@ describe('outside directive', () => {
313
307
  throw new Error('mock error');
314
308
  });
315
309
 
310
+ jest.spyOn(global.console, 'error');
316
311
  await createComponent({
317
312
  methods: {
318
313
  onClickThrow,
@@ -1,4 +1,4 @@
1
- import { shallowMount, createLocalVue } from '@vue/test-utils';
1
+ import { shallowMount } from '@vue/test-utils';
2
2
  import { GlResizeObserverDirective } from './resize_observer';
3
3
  import { useMockResizeObserver } from '~helpers/mock_dom_observer';
4
4
 
@@ -6,8 +6,6 @@ describe('resize observer directive', () => {
6
6
  const { trigger, observersCount, observesElement } = useMockResizeObserver();
7
7
 
8
8
  const mockHandleResize = jest.fn();
9
-
10
- const localVue = createLocalVue();
11
9
  let wrapper;
12
10
 
13
11
  const createComponent = ({ template, data = {} } = {}) => {
@@ -26,7 +24,7 @@ describe('resize observer directive', () => {
26
24
  },
27
25
  };
28
26
 
29
- wrapper = shallowMount(component, { localVue });
27
+ wrapper = shallowMount(component);
30
28
  };
31
29
 
32
30
  it('shares one observer between multiple directive instances', () => {
@@ -102,11 +100,6 @@ describe('resize observer directive', () => {
102
100
  });
103
101
 
104
102
  describe('check directive value', () => {
105
- afterEach(() => {
106
- // we are going to throw, so we need to suppress Vue error messages in jest output
107
- global.console.error.mockReset();
108
- });
109
-
110
103
  it.each([3, '', undefined, null, false, {}, []])(
111
104
  'throws if the handler is %p instead of a function',
112
105
  (directiveValue) => {
@@ -123,8 +116,9 @@ describe('resize observer directive', () => {
123
116
  };
124
117
 
125
118
  expect(() => {
126
- wrapper = shallowMount(testComponentWithoutHandler, { localVue });
119
+ wrapper = shallowMount(testComponentWithoutHandler);
127
120
  }).toThrow(TypeError);
121
+ expect(wrapper).toHaveLoggedVueErrors();
128
122
  }
129
123
  );
130
124
  });
@@ -12,3 +12,11 @@
12
12
  @import 'utilities';
13
13
 
14
14
  @import 'components';
15
+
16
+ /**
17
+ * Custom padding for docs pages. This improves the integration in Pajamas pages.
18
+ */
19
+ .sbdocs-wrapper {
20
+ padding-top: $gl-spacing-scale-2 !important;
21
+ padding-bottom: 0 !important;
22
+ }
@@ -6113,6 +6113,14 @@
6113
6113
  transform: translateX(100%) !important
6114
6114
  }
6115
6115
 
6116
+ .gl-translate-x-n50 {
6117
+ transform: translateX(-50%)
6118
+ }
6119
+
6120
+ .gl-translate-x-n50\! {
6121
+ transform: translateX(-50%) !important
6122
+ }
6123
+
6116
6124
  .gl-translate-y-0 {
6117
6125
  transform: translateY(0)
6118
6126
  }
@@ -13,6 +13,10 @@
13
13
  transform: translateX(100%);
14
14
  }
15
15
 
16
+ @mixin gl-translate-x-n50 {
17
+ transform: translateX(-50%);
18
+ }
19
+
16
20
  @mixin gl-translate-y-0 {
17
21
  transform: translateY(0);
18
22
  }
@@ -1,38 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- /* script */
4
-
5
- /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-avatar',{attrs:{"entity-name":"Some Project","shape":"rect"}})};
7
- var __vue_staticRenderFns__ = [];
8
-
9
- /* style */
10
- const __vue_inject_styles__ = undefined;
11
- /* scoped */
12
- const __vue_scope_id__ = undefined;
13
- /* module identifier */
14
- const __vue_module_identifier__ = undefined;
15
- /* functional template */
16
- const __vue_is_functional_template__ = false;
17
- /* style inject */
18
-
19
- /* style inject SSR */
20
-
21
- /* style inject shadow dom */
22
-
23
-
24
-
25
- const __vue_component__ = __vue_normalize__(
26
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
27
- __vue_inject_styles__,
28
- {},
29
- __vue_scope_id__,
30
- __vue_is_functional_template__,
31
- __vue_module_identifier__,
32
- false,
33
- undefined,
34
- undefined,
35
- undefined
36
- );
37
-
38
- export default __vue_component__;
@@ -1,38 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- /* script */
4
-
5
- /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-avatar',{attrs:{"src":"https://about.gitlab.com/images/press/gitlab-summit-south-africa.jpg"}})};
7
- var __vue_staticRenderFns__ = [];
8
-
9
- /* style */
10
- const __vue_inject_styles__ = undefined;
11
- /* scoped */
12
- const __vue_scope_id__ = undefined;
13
- /* module identifier */
14
- const __vue_module_identifier__ = undefined;
15
- /* functional template */
16
- const __vue_is_functional_template__ = false;
17
- /* style inject */
18
-
19
- /* style inject SSR */
20
-
21
- /* style inject shadow dom */
22
-
23
-
24
-
25
- const __vue_component__ = __vue_normalize__(
26
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
27
- __vue_inject_styles__,
28
- {},
29
- __vue_scope_id__,
30
- __vue_is_functional_template__,
31
- __vue_module_identifier__,
32
- false,
33
- undefined,
34
- undefined,
35
- undefined
36
- );
37
-
38
- export default __vue_component__;
@@ -1,38 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- /* script */
4
-
5
- /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-avatar',{attrs:{"src":"https://about.gitlab.com/images/press/gitlab-summit-south-africa.jpg","shape":"rect"}})};
7
- var __vue_staticRenderFns__ = [];
8
-
9
- /* style */
10
- const __vue_inject_styles__ = undefined;
11
- /* scoped */
12
- const __vue_scope_id__ = undefined;
13
- /* module identifier */
14
- const __vue_module_identifier__ = undefined;
15
- /* functional template */
16
- const __vue_is_functional_template__ = false;
17
- /* style inject */
18
-
19
- /* style inject SSR */
20
-
21
- /* style inject shadow dom */
22
-
23
-
24
-
25
- const __vue_component__ = __vue_normalize__(
26
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
27
- __vue_inject_styles__,
28
- {},
29
- __vue_scope_id__,
30
- __vue_is_functional_template__,
31
- __vue_module_identifier__,
32
- false,
33
- undefined,
34
- undefined,
35
- undefined
36
- );
37
-
38
- export default __vue_component__;
@@ -1,38 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- /* script */
4
-
5
- /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-avatar',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"entity-name":"Some Project","title":"Some Project","shape":"rect"}})};
7
- var __vue_staticRenderFns__ = [];
8
-
9
- /* style */
10
- const __vue_inject_styles__ = undefined;
11
- /* scoped */
12
- const __vue_scope_id__ = undefined;
13
- /* module identifier */
14
- const __vue_module_identifier__ = undefined;
15
- /* functional template */
16
- const __vue_is_functional_template__ = false;
17
- /* style inject */
18
-
19
- /* style inject SSR */
20
-
21
- /* style inject shadow dom */
22
-
23
-
24
-
25
- const __vue_component__ = __vue_normalize__(
26
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
27
- __vue_inject_styles__,
28
- {},
29
- __vue_scope_id__,
30
- __vue_is_functional_template__,
31
- __vue_module_identifier__,
32
- false,
33
- undefined,
34
- undefined,
35
- undefined
36
- );
37
-
38
- export default __vue_component__;