@gitlab/ui 32.40.0 → 32.43.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.
Files changed (129) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -0
  3. package/dist/components/base/search_box_by_type/search_box_by_type.js +1 -1
  4. package/dist/components/base/token_selector/token_selector.documentation.js +2 -106
  5. package/dist/components/base/token_selector/token_selector.js +85 -1
  6. package/dist/components/base/tooltip/tooltip.documentation.js +2 -6
  7. package/dist/components/charts/area/area.js +1 -1
  8. package/dist/components/charts/column/column.js +1 -1
  9. package/dist/components/charts/discrete_scatter/discrete_scatter.js +1 -1
  10. package/dist/components/charts/line/line.js +1 -1
  11. package/dist/components/regions/empty_state/empty_state.js +1 -1
  12. package/dist/utility_classes.css +1 -1
  13. package/dist/utility_classes.css.map +1 -1
  14. package/documentation/documented_stories.js +2 -0
  15. package/package.json +13 -13
  16. package/src/components/base/accordion/accordion.spec.js +0 -4
  17. package/src/components/base/accordion/accordion_item.spec.js +0 -4
  18. package/src/components/base/alert/alert.spec.js +0 -4
  19. package/src/components/base/avatar_labeled/avatar_labeled.spec.js +0 -2
  20. package/src/components/base/avatars_inline/avatars_inline.spec.js +0 -2
  21. package/src/components/base/badge/badge.spec.js +0 -2
  22. package/src/components/base/broadcast_message/broadcast_message.spec.js +0 -4
  23. package/src/components/base/button/button.spec.js +0 -5
  24. package/src/components/base/card/card.spec.js +0 -5
  25. package/src/components/base/carousel/carousel.spec.js +0 -4
  26. package/src/components/base/collapse/collapse.spec.js +0 -4
  27. package/src/components/base/datepicker/datepicker.spec.js +0 -4
  28. package/src/components/base/daterange_picker/daterange_picker.spec.js +0 -5
  29. package/src/components/base/drawer/drawer.spec.js +0 -4
  30. package/src/components/base/dropdown/dropdown.spec.js +0 -2
  31. package/src/components/base/dropdown/dropdown_item.spec.js +0 -2
  32. package/src/components/base/filtered_search/filtered_search.spec.js +0 -10
  33. package/src/components/base/filtered_search/filtered_search_suggestion.spec.js +0 -5
  34. package/src/components/base/filtered_search/filtered_search_suggestion_list.spec.js +0 -5
  35. package/src/components/base/filtered_search/filtered_search_term.spec.js +0 -5
  36. package/src/components/base/filtered_search/filtered_search_token.spec.js +0 -5
  37. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.spec.js +0 -5
  38. package/src/components/base/form/form_combobox/form_combobox.spec.js +0 -4
  39. package/src/components/base/form/form_input/form_input.spec.js +0 -5
  40. package/src/components/base/form/form_input_group/form_input_group.spec.js +0 -4
  41. package/src/components/base/form/form_radio/form_radio.spec.js +0 -4
  42. package/src/components/base/form/form_radio_group/form_radio_group.spec.js +0 -4
  43. package/src/components/base/form/form_select/form_select.spec.js +0 -5
  44. package/src/components/base/form/form_textarea/form_textarea.spec.js +0 -5
  45. package/src/components/base/icon/icon.spec.js +0 -2
  46. package/src/components/base/infinite_scroll/infinite_scroll.spec.js +0 -1
  47. package/src/components/base/keyset_pagination/keyset_pagination.spec.js +0 -5
  48. package/src/components/base/label/label.spec.js +0 -4
  49. package/src/components/base/link/link.spec.js +0 -5
  50. package/src/components/base/loading_icon/loading_icon.spec.js +0 -4
  51. package/src/components/base/modal/modal.spec.js +0 -1
  52. package/src/components/base/nav/nav.spec.js +0 -4
  53. package/src/components/base/nav/nav_item.spec.js +0 -4
  54. package/src/components/base/nav/nav_item_dropdown.spec.js +0 -4
  55. package/src/components/base/paginated_list/paginated_list.spec.js +0 -6
  56. package/src/components/base/pagination/pagination.spec.js +0 -1
  57. package/src/components/base/path/path.spec.js +0 -5
  58. package/src/components/base/popover/popover.spec.js +0 -5
  59. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +0 -4
  60. package/src/components/base/search_box_by_click/search_box_by_click.vue +1 -0
  61. package/src/components/base/search_box_by_type/search_box_by_type.spec.js +0 -5
  62. package/src/components/base/search_box_by_type/search_box_by_type.vue +1 -1
  63. package/src/components/base/segmented_control/segmented_control.spec.js +0 -4
  64. package/src/components/base/skeleton_loader/skeleton_loader.spec.js +0 -5
  65. package/src/components/base/sorting/sorting.spec.js +0 -4
  66. package/src/components/base/sorting/sorting_item.spec.js +0 -4
  67. package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -5
  68. package/src/components/base/toggle/toggle.spec.js +0 -4
  69. package/src/components/base/token/token.spec.js +0 -4
  70. package/src/components/base/token_selector/token_container.spec.js +0 -2
  71. package/src/components/base/token_selector/token_selector.documentation.js +0 -137
  72. package/src/components/base/token_selector/token_selector.md +0 -6
  73. package/src/components/base/token_selector/token_selector.spec.js +0 -5
  74. package/src/components/base/token_selector/token_selector.stories.js +96 -113
  75. package/src/components/base/token_selector/token_selector.vue +89 -1
  76. package/src/components/base/token_selector/token_selector_dropdown.spec.js +0 -5
  77. package/src/components/base/tooltip/tooltip.documentation.js +0 -3
  78. package/src/components/base/tooltip/tooltip.md +3 -5
  79. package/src/components/base/tooltip/tooltip.spec.js +0 -5
  80. package/src/components/base/tooltip/tooltip.stories.js +49 -25
  81. package/src/components/base/tooltip/tooltip.vue +1 -0
  82. package/src/components/charts/area/area.spec.js +8 -24
  83. package/src/components/charts/area/area.vue +9 -12
  84. package/src/components/charts/bar/bar.spec.js +4 -11
  85. package/src/components/charts/chart/chart.spec.js +0 -4
  86. package/src/components/charts/column/column.vue +3 -2
  87. package/src/components/charts/column/column_chart.spec.js +35 -19
  88. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -0
  89. package/src/components/charts/discrete_scatter/discrete_scatter.vue +5 -8
  90. package/src/components/charts/gauge/gauge.spec.js +2 -24
  91. package/src/components/charts/heatmap/heatmap.spec.js +6 -23
  92. package/src/components/charts/legend/legend.spec.js +8 -14
  93. package/src/components/charts/line/line.spec.js +19 -30
  94. package/src/components/charts/line/line.vue +3 -2
  95. package/src/components/charts/single_stat/single_stat.spec.js +0 -4
  96. package/src/components/charts/sparkline/sparkline.spec.js +9 -15
  97. package/src/components/charts/stacked_column/stacked_column.spec.js +2 -30
  98. package/src/components/regions/empty_state/empty_state.vue +8 -2
  99. package/src/components/shared_components/clear_icon_button/clear_icon_button.spec.js +0 -4
  100. package/src/components/shared_components/close_button/close_button.spec.js +0 -4
  101. package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +0 -4
  102. package/src/components/utilities/intersection_observer/intersection_observer.spec.js +1 -1
  103. package/src/components/utilities/sprintf/sprintf.spec.js +0 -4
  104. package/src/components/utilities/truncate/truncate.spec.js +10 -15
  105. package/src/directives/hover_load/hover_load.spec.js +0 -1
  106. package/src/directives/outside/outside.spec.js +0 -4
  107. package/src/directives/resize_observer/resize_observer.spec.js +0 -4
  108. package/src/directives/safe_html/safe_html.spec.js +0 -4
  109. package/src/directives/safe_link/safe_link.spec.js +0 -5
  110. package/src/scss/utilities.scss +26 -0
  111. package/src/scss/utility-mixins/sizing.scss +6 -0
  112. package/src/scss/utility-mixins/spacing.scss +4 -0
  113. package/src/scss/utility-mixins/z-index.scss +4 -0
  114. package/dist/components/base/token_selector/examples/index.js +0 -19
  115. package/dist/components/base/token_selector/examples/token_selector.user_defined_tokens.example.js +0 -48
  116. package/dist/components/base/token_selector/examples/token_selector.users.example.js +0 -202
  117. package/dist/components/base/tooltip/examples/index.js +0 -31
  118. package/dist/components/base/tooltip/examples/tooltip.directive_bottom.example.js +0 -38
  119. package/dist/components/base/tooltip/examples/tooltip.directive_default.example.js +0 -38
  120. package/dist/components/base/tooltip/examples/tooltip.directive_left.example.js +0 -38
  121. package/dist/components/base/tooltip/examples/tooltip.directive_right.example.js +0 -38
  122. package/src/components/base/token_selector/examples/index.js +0 -22
  123. package/src/components/base/token_selector/examples/token_selector.user_defined_tokens.example.vue +0 -17
  124. package/src/components/base/token_selector/examples/token_selector.users.example.vue +0 -212
  125. package/src/components/base/tooltip/examples/index.js +0 -36
  126. package/src/components/base/tooltip/examples/tooltip.directive_bottom.example.vue +0 -7
  127. package/src/components/base/tooltip/examples/tooltip.directive_default.example.vue +0 -5
  128. package/src/components/base/tooltip/examples/tooltip.directive_left.example.vue +0 -7
  129. package/src/components/base/tooltip/examples/tooltip.directive_right.example.vue +0 -7
@@ -2,14 +2,13 @@ import { shallowMount, createLocalVue } 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';
5
+ import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
5
6
 
6
- const mockResize = jest.fn();
7
- const mockChartInstance = {
8
- subscribedEvents: {},
9
- getDom: () => {},
10
- convertToPixel: () => [],
11
- resize: mockResize,
12
- };
7
+ let mockChartInstance;
8
+
9
+ jest.mock('echarts', () => ({
10
+ getInstanceByDom: () => mockChartInstance,
11
+ }));
13
12
 
14
13
  let triggerResize = () => {};
15
14
  jest.mock('~/directives/resize_observer/resize_observer', () => ({
@@ -22,11 +21,6 @@ jest.mock('~/directives/resize_observer/resize_observer', () => ({
22
21
 
23
22
  const localVue = createLocalVue();
24
23
 
25
- const ChartToolTipStub = {
26
- name: 'chart-tooltip-stub',
27
- template: '<div><slot name="default"></slot><slot name="title"></slot></div>',
28
- };
29
-
30
24
  describe('sparkline chart component', () => {
31
25
  let wrapper;
32
26
  let componentOptions;
@@ -39,7 +33,7 @@ describe('sparkline chart component', () => {
39
33
  },
40
34
  scopedSlots: { latestSeriesEntry: jest.fn() },
41
35
  stubs: {
42
- 'chart-tooltip': ChartToolTipStub,
36
+ 'chart-tooltip': ChartTooltipStub,
43
37
  },
44
38
  };
45
39
 
@@ -50,7 +44,7 @@ describe('sparkline chart component', () => {
50
44
  const getByTestId = (id) => wrapper.find(`[data-testid="${id}"]`);
51
45
  const getChart = () => wrapper.findComponent(Chart);
52
46
 
53
- const getTooltip = () => wrapper.findComponent(ChartToolTipStub);
47
+ const getTooltip = () => wrapper.findComponent(ChartTooltipStub);
54
48
  const getTooltipTitle = () => getByTestId('tooltip-title');
55
49
  const getTooltipContent = () => getByTestId('tooltip-content');
56
50
 
@@ -72,13 +66,13 @@ describe('sparkline chart component', () => {
72
66
  const emitChartCreated = () => getChart().vm.$emit('created', mockChartInstance);
73
67
 
74
68
  beforeEach(() => {
69
+ mockChartInstance = createMockChartInstance();
75
70
  factory();
76
71
  // needs to run after every mount, or the chart-instance is `null` and `beforeDestroy` throws
77
72
  emitChartCreated();
78
73
  });
79
74
 
80
75
  afterEach(() => {
81
- wrapper.destroy();
82
76
  jest.clearAllMocks();
83
77
  });
84
78
 
@@ -9,9 +9,9 @@ import Chart from '../chart/chart.vue';
9
9
  import ChartLegend from '../legend/legend.vue';
10
10
  import * as themeUtils from '../../../utils/charts/theme';
11
11
  import StackedColumnChart from './stacked_column.vue';
12
- import ChartTooltip from '~/components/charts/tooltip/tooltip.vue';
13
12
  import TooltipDefaultFormat from '~/components/shared_components/charts/tooltip_default_format.vue';
14
13
 
14
+ import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
15
15
  import { LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '~/utils/charts/constants';
16
16
 
17
17
  let mockChartInstance;
@@ -29,18 +29,8 @@ const defaultChartProps = {
29
29
  yAxisTitle: 'Commits',
30
30
  };
31
31
 
32
- const ChartTooltipStub = {
33
- props: ChartTooltip.props,
34
- template: `
35
- <div>
36
- <slot name="title" />
37
- <slot />
38
- </div>`,
39
- };
40
-
41
32
  describe('stacked column chart component', () => {
42
33
  let wrapper;
43
- let options;
44
34
 
45
35
  const findChart = () => wrapper.findComponent(Chart);
46
36
  const findLegend = () => wrapper.findComponent(ChartLegend);
@@ -62,28 +52,10 @@ describe('stacked column chart component', () => {
62
52
  };
63
53
 
64
54
  beforeEach(() => {
65
- options = {
66
- series: [],
67
- };
68
-
69
- mockChartInstance = {
70
- getDom: () => {
71
- return {
72
- addEventListener: jest.fn(),
73
- removeEventListener: jest.fn(),
74
- };
75
- },
76
- on: jest.fn(),
77
- off: jest.fn(),
78
- convertToPixel: jest.fn(),
79
- getOption: () => {
80
- return options;
81
- },
82
- };
55
+ mockChartInstance = createMockChartInstance();
83
56
  });
84
57
 
85
58
  afterEach(() => {
86
- wrapper.destroy();
87
59
  jest.restoreAllMocks();
88
60
  });
89
61
 
@@ -104,8 +104,14 @@ export default {
104
104
  </div>
105
105
  <div :class="compact ? 'col-sm-9' : 'col-12'">
106
106
  <div class="text-content gl-mx-auto gl-my-0" :class="{ 'gl-p-5': !compact }">
107
- <h1 ref="title" :class="compact ? 'h5' : 'h4'">{{ title }}</h1>
108
- <p v-if="description || $scopedSlots.description" ref="description">
107
+ <h1
108
+ ref="title"
109
+ class="gl-font-size-h-display gl-line-height-36"
110
+ :class="compact ? 'h5' : 'h4'"
111
+ >
112
+ {{ title }}
113
+ </h1>
114
+ <p v-if="description || $scopedSlots.description" ref="description" class="gl-mt-3">
109
115
  <!--
110
116
  @slot Use this slot to customize the empty state's description
111
117
  area. Overrides the `description` prop.
@@ -17,10 +17,6 @@ describe('Clear Icon Button', () => {
17
17
  createComponent();
18
18
  });
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  it('renders successfully', () => {
25
21
  expect(wrapper.element).toMatchSnapshot();
26
22
  });
@@ -16,10 +16,6 @@ describe('Clear Icon Button', () => {
16
16
  createComponent();
17
17
  });
18
18
 
19
- afterEach(() => {
20
- wrapper.destroy();
21
- });
22
-
23
19
  it('renders successfully', () => {
24
20
  expect(wrapper.element).toMatchSnapshot();
25
21
  });
@@ -10,10 +10,6 @@ describe('Friendly wrap component', () => {
10
10
  });
11
11
  };
12
12
 
13
- afterEach(() => {
14
- wrapper.destroy();
15
- });
16
-
17
13
  it('wraps text on slashes by default', () => {
18
14
  const text = '/some/file/path';
19
15
  const textWrapped = '/<wbr>some/<wbr>file/<wbr>path';
@@ -58,7 +58,7 @@ describe('IntersectionObserver', () => {
58
58
  expect(hasPrivateProps(wrapper.vm.$el)).toBe(true);
59
59
  });
60
60
 
61
- describe('when detroyed', () => {
61
+ describe('when destroyed', () => {
62
62
  beforeEach(() => {
63
63
  wrapper.destroy();
64
64
  });
@@ -17,10 +17,6 @@ describe('sprintf component', () => {
17
17
  });
18
18
  };
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  describe('plain placeholders', () => {
25
21
  it.each`
26
22
  message
@@ -17,19 +17,12 @@ describe('Truncate component', () => {
17
17
  };
18
18
 
19
19
  const createComponent = (props) => {
20
- wrapper = shallowMount(Truncate, {
21
- propsData: { ...defaultProps, ...props },
22
- directives: {
23
- GlTooltip: createMockDirective(),
24
- },
25
- });
20
+ wrapper = shallowMount(
21
+ { extends: Truncate, directives: { GlTooltip: createMockDirective('gl-tooltip') } },
22
+ { propsData: { ...defaultProps, ...props } }
23
+ );
26
24
  };
27
25
 
28
- afterEach(() => {
29
- wrapper.destroy();
30
- wrapper = null;
31
- });
32
-
33
26
  describe('All', () => {
34
27
  beforeEach(() => {
35
28
  createComponent();
@@ -39,9 +32,9 @@ describe('Truncate component', () => {
39
32
  '%s truncation: should have title, class, original text',
40
33
  (position) => {
41
34
  createComponent({ position });
42
-
43
- expect(wrapper.attributes('title')).toBe(defaultProps.text);
44
- expect(wrapper.attributes('class')).toBe('gl-truncate');
35
+ const element = wrapper.find('span');
36
+ expect(element.attributes('title')).toBe(defaultProps.text);
37
+ expect(element.attributes('class')).toBe('gl-truncate');
45
38
  expect(removeSpecialChar(wrapper.text())).toBe(defaultProps.text);
46
39
  }
47
40
  );
@@ -51,7 +44,9 @@ describe('Truncate component', () => {
51
44
  });
52
45
 
53
46
  it('disables the tooltip by default', () => {
54
- expect(getBinding(wrapper.element, 'gl-tooltip').value.disabled).toBe(true);
47
+ expect(getBinding(wrapper.find('.gl-truncate').element, 'gl-tooltip').value.disabled).toBe(
48
+ true
49
+ );
55
50
  });
56
51
  });
57
52
 
@@ -23,7 +23,6 @@ describe('hover load directive', () => {
23
23
  };
24
24
 
25
25
  afterEach(() => {
26
- wrapper.destroy();
27
26
  jest.restoreAllMocks();
28
27
  });
29
28
 
@@ -52,10 +52,6 @@ describe('outside directive', () => {
52
52
  onClick = jest.fn();
53
53
  });
54
54
 
55
- afterEach(() => {
56
- wrapper.destroy();
57
- });
58
-
59
55
  describe('given a callback', () => {
60
56
  it.each`
61
57
  target | expectedCalls
@@ -29,10 +29,6 @@ describe('resize observer directive', () => {
29
29
  wrapper = shallowMount(component, { localVue });
30
30
  };
31
31
 
32
- afterEach(() => {
33
- wrapper.destroy();
34
- });
35
-
36
32
  it('shares one observer between multiple directive instances', () => {
37
33
  createComponent({
38
34
  template: `<div>
@@ -25,10 +25,6 @@ describe('safe html directive', () => {
25
25
  wrapper = shallowMount(component);
26
26
  };
27
27
 
28
- afterEach(() => {
29
- wrapper.destroy();
30
- });
31
-
32
28
  describe('default', () => {
33
29
  it('should remove the script tag', () => {
34
30
  createComponent();
@@ -33,11 +33,6 @@ describe('safe link directive', () => {
33
33
  wrapper = mountFn(component);
34
34
  };
35
35
 
36
- afterEach(() => {
37
- wrapper.destroy();
38
- wrapper = null;
39
- });
40
-
41
36
  describe('default', () => {
42
37
  it('should render the anchor tag with given href', () => {
43
38
  createComponent({
@@ -4384,6 +4384,18 @@
4384
4384
  max-width: 50% !important;
4385
4385
  }
4386
4386
  }
4387
+
4388
+ .gl-md-max-w-70p {
4389
+ @include gl-media-breakpoint-up(md) {
4390
+ max-width: 70%;
4391
+ }
4392
+ }
4393
+
4394
+ .gl-md-max-w-70p\! {
4395
+ @include gl-media-breakpoint-up(md) {
4396
+ max-width: 70% !important;
4397
+ }
4398
+ }
4387
4399
  .gl-p-0 {
4388
4400
  padding: 0;
4389
4401
  }
@@ -4910,6 +4922,12 @@
4910
4922
  .gl-m-5\! {
4911
4923
  margin: $gl-spacing-scale-5 !important;
4912
4924
  }
4925
+ .gl-m-7 {
4926
+ margin: $gl-spacing-scale-7;
4927
+ }
4928
+ .gl-m-7\! {
4929
+ margin: $gl-spacing-scale-7 !important;
4930
+ }
4913
4931
  .gl-m-auto {
4914
4932
  margin: auto;
4915
4933
  }
@@ -6629,6 +6647,14 @@
6629
6647
  z-index: 3 !important
6630
6648
  }
6631
6649
 
6650
+ .gl-z-index-200 {
6651
+ z-index: 200
6652
+ }
6653
+
6654
+ .gl-z-index-200\! {
6655
+ z-index: 200 !important
6656
+ }
6657
+
6632
6658
  .gl-z-index-9999 {
6633
6659
  z-index: 9999
6634
6660
  }
@@ -314,3 +314,9 @@
314
314
  max-width: 50%;
315
315
  }
316
316
  }
317
+
318
+ @mixin gl-md-max-w-70p {
319
+ @include gl-media-breakpoint-up(md) {
320
+ max-width: 70%;
321
+ }
322
+ }
@@ -354,6 +354,10 @@
354
354
  margin: $gl-spacing-scale-5;
355
355
  }
356
356
 
357
+ @mixin gl-m-7 {
358
+ margin: $gl-spacing-scale-7;
359
+ }
360
+
357
361
  @mixin gl-m-auto {
358
362
  margin: auto;
359
363
  }
@@ -20,6 +20,10 @@
20
20
  z-index: 3;
21
21
  }
22
22
 
23
+ @mixin gl-z-index-200 {
24
+ z-index: 200;
25
+ }
26
+
23
27
  @mixin gl-z-index-9999 {
24
28
  z-index: 9999;
25
29
  }
@@ -1,19 +0,0 @@
1
- import UserDefinedTokensExample from './token_selector.user_defined_tokens.example';
2
- import UsersExample from './token_selector.users.example';
3
-
4
- var index = [{
5
- name: 'Basic',
6
- items: [{
7
- id: 'token-selector-user-defined-tokens',
8
- name: 'User Defined Tokens',
9
- description: 'User Defined Tokens',
10
- component: UserDefinedTokensExample
11
- }, {
12
- id: 'token-selector-users',
13
- name: 'Users',
14
- description: 'Users Token Selector',
15
- component: UsersExample
16
- }]
17
- }];
18
-
19
- export default index;
@@ -1,48 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- var script = {
4
- data() {
5
- return {
6
- selectedTokens: []
7
- };
8
- }
9
-
10
- };
11
-
12
- /* script */
13
- const __vue_script__ = script;
14
-
15
- /* template */
16
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-token-selector',{attrs:{"allow-user-defined-tokens":"","hide-dropdown-with-no-items":""},model:{value:(_vm.selectedTokens),callback:function ($$v) {_vm.selectedTokens=$$v;},expression:"selectedTokens"}})};
17
- var __vue_staticRenderFns__ = [];
18
-
19
- /* style */
20
- const __vue_inject_styles__ = undefined;
21
- /* scoped */
22
- const __vue_scope_id__ = undefined;
23
- /* module identifier */
24
- const __vue_module_identifier__ = undefined;
25
- /* functional template */
26
- const __vue_is_functional_template__ = false;
27
- /* style inject */
28
-
29
- /* style inject SSR */
30
-
31
- /* style inject shadow dom */
32
-
33
-
34
-
35
- const __vue_component__ = __vue_normalize__(
36
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
37
- __vue_inject_styles__,
38
- __vue_script__,
39
- __vue_scope_id__,
40
- __vue_is_functional_template__,
41
- __vue_module_identifier__,
42
- false,
43
- undefined,
44
- undefined,
45
- undefined
46
- );
47
-
48
- export default __vue_component__;
@@ -1,202 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- var script = {
4
- data() {
5
- return {
6
- // Generated with https://github.com/marak/Faker.js/
7
- users: [{
8
- avatar_url: 'https://picsum.photos/id/786/64/64',
9
- id: 1,
10
- name: 'Jett Kulas',
11
- username: '@Vidal_Hilpert'
12
- }, {
13
- avatar_url: 'https://picsum.photos/id/823/64/64',
14
- id: 2,
15
- name: 'Blaze Thompson',
16
- username: '@Otto_Medhurst'
17
- }, {
18
- avatar_url: 'https://picsum.photos/id/832/64/64',
19
- id: 3,
20
- name: 'Russel Rath',
21
- username: '@Joy_Sanford30'
22
- }, {
23
- avatar_url: 'https://picsum.photos/id/838/64/64',
24
- id: 4,
25
- name: 'Lisandro Stiedemann',
26
- username: '@Consuelo_Durgan'
27
- }, {
28
- avatar_url: 'https://picsum.photos/id/883/64/64',
29
- id: 5,
30
- name: 'Adela Champlin',
31
- username: '@Tiana_Shanahan'
32
- }, {
33
- avatar_url: 'https://picsum.photos/id/1005/64/64',
34
- id: 6,
35
- name: 'Keith Rogahn',
36
- username: '@Jackeline.Moore'
37
- }, {
38
- avatar_url: 'https://picsum.photos/id/1011/64/64',
39
- id: 7,
40
- name: 'Alek Lakin',
41
- username: '@Ike98'
42
- }, {
43
- avatar_url: 'https://picsum.photos/id/1012/64/64',
44
- id: 8,
45
- name: 'Alek Bogan',
46
- username: '@Wilton.Dare'
47
- }, {
48
- avatar_url: 'https://picsum.photos/id/1027/64/64',
49
- id: 9,
50
- name: 'Ismael Abbott',
51
- username: '@Junius.Lynch58'
52
- }, {
53
- avatar_url: 'https://picsum.photos/id/1062/64/64',
54
- id: 10,
55
- name: 'Emil Bartell',
56
- username: '@Vergie.Brown78'
57
- }, {
58
- avatar_url: 'https://picsum.photos/id/1074/64/64',
59
- id: 11,
60
- name: 'Foster Kutch',
61
- username: '@Lyda_Cummerata'
62
- }, {
63
- avatar_url: 'https://picsum.photos/id/177/64/64',
64
- id: 12,
65
- name: 'Alexandra Schuppe',
66
- username: '@Jana_Fadel'
67
- }, {
68
- avatar_url: 'https://picsum.photos/id/237/64/64',
69
- id: 13,
70
- name: 'Ervin Emard',
71
- username: '@Hayden24'
72
- }, {
73
- avatar_url: 'https://picsum.photos/id/375/64/64',
74
- id: 14,
75
- name: 'Kailey Frami',
76
- username: '@Ima46'
77
- }, {
78
- avatar_url: 'https://picsum.photos/id/550/64/64',
79
- id: 15,
80
- name: 'Xavier Prohaska',
81
- username: '@Theron15'
82
- }, {
83
- avatar_url: 'https://picsum.photos/id/602/64/64',
84
- id: 16,
85
- name: 'Freddy Sanford',
86
- username: '@Luciano.Kuphal6'
87
- }, {
88
- avatar_url: 'https://picsum.photos/id/64/64/64',
89
- id: 17,
90
- name: 'Alvah Rempel',
91
- username: '@Bo89'
92
- }, {
93
- avatar_url: 'https://picsum.photos/id/65/64/64',
94
- id: 18,
95
- name: 'Gavin Mann',
96
- username: '@Cedrick56'
97
- }, {
98
- avatar_url: 'https://picsum.photos/id/660/64/64',
99
- id: 19,
100
- name: 'Alexie Hagenes',
101
- username: '@Berry_Erdman'
102
- }, {
103
- avatar_url: 'https://picsum.photos/id/996/64/64',
104
- id: 20,
105
- name: 'Cortez Wunsch',
106
- username: '@Kenyon.Crist3'
107
- }],
108
- filteredUsers: [],
109
- loading: false,
110
- inputText: '',
111
- selectedTokens: []
112
- };
113
- },
114
-
115
- computed: {
116
- emailIsValid() {
117
- return /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(this.inputText) && !this.filteredUsers.length;
118
- }
119
-
120
- },
121
- methods: {
122
- handleTextInput(value) {
123
- this.inputText = value;
124
-
125
- if (this.inputText === '') {
126
- this.filteredUsers = this.users;
127
- return;
128
- }
129
-
130
- this.loading = true;
131
- this.filterUsers();
132
- },
133
-
134
- handleFocus() {
135
- this.loading = true;
136
-
137
- if (this.inputText !== '') {
138
- this.filterUsers();
139
- } else {
140
- setTimeout(() => {
141
- this.filteredUsers = this.users;
142
- this.loading = false;
143
- }, 500);
144
- }
145
- },
146
-
147
- filterUsers() {
148
- setTimeout(() => {
149
- this.filteredUsers = this.users.filter(user => {
150
- const searchQuery = this.inputText.toLowerCase();
151
- return user.name.toLowerCase().includes(searchQuery) || user.username.toLowerCase().includes(searchQuery);
152
- });
153
- this.loading = false;
154
- }, 500);
155
- }
156
-
157
- }
158
- };
159
-
160
- /* script */
161
- const __vue_script__ = script;
162
-
163
- /* template */
164
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-token-selector',{attrs:{"dropdown-items":_vm.filteredUsers,"loading":_vm.loading,"allow-user-defined-tokens":_vm.emailIsValid},on:{"text-input":_vm.handleTextInput,"focus":_vm.handleFocus},scopedSlots:_vm._u([{key:"token-content",fn:function(ref){
165
- var token = ref.token;
166
- return [(token.avatar_url)?_c('gl-avatar',{attrs:{"src":token.avatar_url,"size":16}}):_vm._e(),_vm._v("\n "+_vm._s(token.name)+"\n ")]}},{key:"dropdown-item-content",fn:function(ref){
167
- var dropdownItem = ref.dropdownItem;
168
- return [_c('div',{staticClass:"gl-display-flex"},[_c('gl-avatar',{attrs:{"src":dropdownItem.avatar_url,"size":32}}),_vm._v(" "),_c('div',[_c('p',{staticClass:"gl-m-0"},[_vm._v(_vm._s(dropdownItem.name))]),_vm._v(" "),_c('p',{staticClass:"gl-m-0 gl-text-gray-700"},[_vm._v(_vm._s(dropdownItem.username))])])],1)]}},{key:"user-defined-token-content",fn:function(ref){
169
- var text = ref.inputText;
170
- return [_vm._v("\n Invite \""+_vm._s(text)+"\" by email\n ")]}}]),model:{value:(_vm.selectedTokens),callback:function ($$v) {_vm.selectedTokens=$$v;},expression:"selectedTokens"}})};
171
- var __vue_staticRenderFns__ = [];
172
-
173
- /* style */
174
- const __vue_inject_styles__ = undefined;
175
- /* scoped */
176
- const __vue_scope_id__ = undefined;
177
- /* module identifier */
178
- const __vue_module_identifier__ = undefined;
179
- /* functional template */
180
- const __vue_is_functional_template__ = false;
181
- /* style inject */
182
-
183
- /* style inject SSR */
184
-
185
- /* style inject shadow dom */
186
-
187
-
188
-
189
- const __vue_component__ = __vue_normalize__(
190
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
191
- __vue_inject_styles__,
192
- __vue_script__,
193
- __vue_scope_id__,
194
- __vue_is_functional_template__,
195
- __vue_module_identifier__,
196
- false,
197
- undefined,
198
- undefined,
199
- undefined
200
- );
201
-
202
- export default __vue_component__;