@gitlab/ui 37.10.0 → 38.1.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 (67) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -1
  3. package/dist/components/base/breadcrumb/breadcrumb.js +10 -5
  4. package/dist/components/base/{filtered_search/examples/filtered_search.single_unique.example.js → breadcrumb/breadcrumb_item.js} +32 -28
  5. package/dist/components/base/filtered_search/filtered_search.documentation.js +2 -66
  6. package/dist/components/base/filtered_search/filtered_search.js +38 -11
  7. package/dist/components/base/filtered_search/filtered_search_suggestion.documentation.js +2 -8
  8. package/dist/components/base/filtered_search/filtered_search_suggestion.js +4 -0
  9. package/dist/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +2 -7
  10. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +4 -0
  11. package/dist/components/base/filtered_search/filtered_search_term.documentation.js +2 -44
  12. package/dist/components/base/filtered_search/filtered_search_term.js +37 -0
  13. package/dist/components/base/filtered_search/filtered_search_token.documentation.js +2 -31
  14. package/dist/components/base/filtered_search/filtered_search_token.js +49 -0
  15. package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +2 -46
  16. package/dist/components/base/filtered_search/filtered_search_token_segment.js +48 -0
  17. package/dist/components/base/form/form_radio/form_radio.js +1 -1
  18. package/dist/components/charts/series_label/series_label.js +6 -1
  19. package/dist/components/utilities/truncate/truncate.js +2 -2
  20. package/documentation/documented_stories.js +6 -0
  21. package/package.json +9 -7
  22. package/src/components/base/breadcrumb/breadcrumb.spec.js +24 -10
  23. package/src/components/base/breadcrumb/breadcrumb.vue +11 -6
  24. package/src/components/base/breadcrumb/breadcrumb_item.spec.js +45 -0
  25. package/src/components/base/breadcrumb/breadcrumb_item.vue +43 -0
  26. package/src/components/base/filtered_search/filtered_search.documentation.js +0 -76
  27. package/src/components/base/filtered_search/filtered_search.md +3 -4
  28. package/src/components/base/filtered_search/filtered_search.stories.js +248 -13
  29. package/src/components/base/filtered_search/filtered_search.vue +47 -10
  30. package/src/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -6
  31. package/src/components/base/filtered_search/filtered_search_suggestion.md +1 -7
  32. package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +26 -18
  33. package/src/components/base/filtered_search/filtered_search_suggestion.vue +5 -0
  34. package/src/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -5
  35. package/src/components/base/filtered_search/filtered_search_suggestion_list.md +1 -7
  36. package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +33 -25
  37. package/src/components/base/filtered_search/filtered_search_suggestion_list.vue +5 -0
  38. package/src/components/base/filtered_search/filtered_search_term.documentation.js +0 -41
  39. package/src/components/base/filtered_search/filtered_search_term.md +0 -2
  40. package/src/components/base/filtered_search/filtered_search_term.stories.js +33 -26
  41. package/src/components/base/filtered_search/filtered_search_term.vue +54 -0
  42. package/src/components/base/filtered_search/filtered_search_token.documentation.js +0 -26
  43. package/src/components/base/filtered_search/filtered_search_token.md +1 -3
  44. package/src/components/base/filtered_search/filtered_search_token.stories.js +136 -132
  45. package/src/components/base/filtered_search/filtered_search_token.vue +63 -0
  46. package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -43
  47. package/src/components/base/filtered_search/filtered_search_token_segment.md +0 -2
  48. package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +86 -79
  49. package/src/components/base/filtered_search/filtered_search_token_segment.vue +42 -0
  50. package/src/components/base/form/form_radio/form_radio.spec.js +21 -8
  51. package/src/components/base/form/form_radio/form_radio.vue +0 -1
  52. package/src/components/charts/series_label/series_label.stories.js +6 -3
  53. package/src/components/charts/series_label/series_label.vue +3 -0
  54. package/src/components/utilities/truncate/truncate.spec.js +14 -49
  55. package/src/components/utilities/truncate/truncate.stories.js +1 -59
  56. package/src/components/utilities/truncate/truncate.vue +3 -21
  57. package/dist/components/base/filtered_search/examples/filtered_search.default.example.js +0 -422
  58. package/dist/components/base/filtered_search/examples/filtered_search.friendly.example.js +0 -423
  59. package/dist/components/base/filtered_search/examples/filtered_search.history.example.js +0 -91
  60. package/dist/components/base/filtered_search/examples/filtered_search.multi_select.example.js +0 -196
  61. package/dist/components/base/filtered_search/examples/index.js +0 -32
  62. package/src/components/base/filtered_search/examples/filtered_search.default.example.vue +0 -298
  63. package/src/components/base/filtered_search/examples/filtered_search.friendly.example.vue +0 -300
  64. package/src/components/base/filtered_search/examples/filtered_search.history.example.vue +0 -50
  65. package/src/components/base/filtered_search/examples/filtered_search.multi_select.example.vue +0 -132
  66. package/src/components/base/filtered_search/examples/filtered_search.single_unique.example.vue +0 -31
  67. package/src/components/base/filtered_search/examples/index.js +0 -38
@@ -1,423 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- const fakeUsers = [{
4
- id: 1,
5
- name: 'User Alpha',
6
- username: 'alpha'
7
- }, {
8
- id: 2,
9
- name: 'User Beta',
10
- username: 'beta'
11
- }, {
12
- id: 3,
13
- name: 'User Gamma',
14
- username: 'gamma'
15
- }, {
16
- id: 4,
17
- name: 'User Delta',
18
- username: 'delta'
19
- }, {
20
- id: 5,
21
- name: 'User Epsilon',
22
- username: 'epsilon'
23
- }];
24
- const fakeMilestones = [{
25
- id: 1,
26
- title: '12.7',
27
- name: '%12.7'
28
- }, {
29
- id: 2,
30
- title: '12.8',
31
- name: '%12.8'
32
- }, {
33
- id: 3,
34
- title: '12.9',
35
- name: '%12.9'
36
- }, {
37
- id: 4,
38
- title: '12.10',
39
- name: '%12.10'
40
- }, {
41
- id: 5,
42
- title: 'Backlog',
43
- name: 'Backlog'
44
- }];
45
- const fakeLabels = [{
46
- id: 1,
47
- title: 'Bug',
48
- color: '#D9534F',
49
- text_color: '#FFFFFF'
50
- }, {
51
- id: 2,
52
- title: 'Enhancement',
53
- color: '#F0AD4E',
54
- text_color: '#FFFFFF'
55
- }, {
56
- id: 3,
57
- title: 'Backlog',
58
- color: '#cccccc',
59
- text_color: '#333333'
60
- }, {
61
- id: 4,
62
- title: 'Feature',
63
- color: '#A8D695',
64
- text_color: '#333333'
65
- }, {
66
- id: 5,
67
- title: 'Documentation',
68
- color: '#5CB85C',
69
- text_color: '#FFFFFF'
70
- }];
71
- const UserToken = {
72
- props: ['value', 'active'],
73
- inheritAttrs: false,
74
-
75
- data() {
76
- return {
77
- loadingView: false,
78
- loadingSuggestions: false,
79
- users: [],
80
- activeUser: null
81
- };
82
- },
83
-
84
- methods: {
85
- loadView() {
86
- this.loadingView = true;
87
- setTimeout(() => {
88
- this.loadingView = false;
89
- this.activeUser = fakeUsers.find(u => u.username === this.value.data);
90
- }, 1000);
91
- },
92
-
93
- loadSuggestions() {
94
- this.loadingSuggestions = true;
95
- setTimeout(() => {
96
- this.loadingSuggestions = false;
97
- this.users = fakeUsers;
98
- }, 2000);
99
- }
100
-
101
- },
102
- watch: {
103
- // eslint-disable-next-line func-names
104
- 'value.data': function () {
105
- if (this.active) {
106
- this.loadSuggestions();
107
- }
108
- },
109
- active: {
110
- immediate: true,
111
-
112
- handler(newValue) {
113
- if (!newValue) {
114
- this.loadView();
115
- } else {
116
- this.loadSuggestions();
117
- }
118
- }
119
-
120
- }
121
- },
122
- template: `
123
- <gl-filtered-search-token
124
- v-bind="{ ...this.$props, ...this.$attrs }"
125
- v-on="$listeners"
126
- >
127
- <template #view="{ inputValue }">
128
- <gl-loading-icon size="sm" v-if="loadingView" />
129
- <gl-avatar :size="16" :entity-name="inputValue" shape="circle" v-else />
130
- {{ activeUser ? activeUser.name : inputValue }}
131
- </template>
132
- <template #suggestions>
133
- <template v-if="loadingSuggestions">
134
- <gl-loading-icon />
135
- </template>
136
- <template v-else>
137
- <gl-filtered-search-suggestion :key="user.id" v-for="user in users" :value="user.username">
138
- <div class="gl-display-flex">
139
- <gl-avatar :size="32" :entity-name="user.username" />
140
- <div>
141
- <p class="gl-m-0">{{ user.name }}</p>
142
- <p class="gl-m-0">@{{ user.username }}</p>
143
- </div>
144
- </div>
145
- </gl-filtered-search-suggestion>
146
- </template>
147
- </template>
148
- </gl-filtered-search-token>
149
- `
150
- };
151
- const MilestoneToken = {
152
- props: ['value', 'active'],
153
- inheritAttrs: false,
154
-
155
- data() {
156
- return {
157
- loadingView: false,
158
- loadingSuggestions: false,
159
- milestones: []
160
- };
161
- },
162
-
163
- methods: {
164
- loadSuggestions() {
165
- this.loadingSuggestions = true;
166
- setTimeout(() => {
167
- this.loadingSuggestions = false;
168
- this.milestones = fakeMilestones;
169
- }, 2000);
170
- }
171
-
172
- },
173
- watch: {
174
- // eslint-disable-next-line func-names
175
- 'value.data': function () {
176
- if (this.active) {
177
- this.loadSuggestions();
178
- }
179
- },
180
- active: {
181
- immediate: true,
182
-
183
- handler(newValue) {
184
- if (newValue) {
185
- this.loadSuggestions();
186
- }
187
- }
188
-
189
- }
190
- },
191
- template: `
192
- <gl-filtered-search-token
193
- v-bind="{ ...this.$props, ...this.$attrs }"
194
- v-on="$listeners"
195
- >
196
- <template #suggestions>
197
- <gl-filtered-search-suggestion value="None">None</gl-filtered-search-suggestion>
198
- <gl-filtered-search-suggestion value="Any">Any</gl-filtered-search-suggestion>
199
- <gl-filtered-search-suggestion value="Upcoming">Upcoming</gl-filtered-search-suggestion>
200
- <gl-filtered-search-suggestion value="Started">Started</gl-filtered-search-suggestion>
201
- <gl-dropdown-divider v-if="loadingSuggestions || milestones.length" />
202
- <template v-if="loadingSuggestions">
203
- <gl-loading-icon />
204
- </template>
205
- <template v-else>
206
- <gl-filtered-search-suggestion :key="milestone.id" v-for="milestone in milestones"
207
- :value="milestone.name">
208
- {{ milestone.title }}
209
- </gl-filtered-search-suggestion>
210
- </template>
211
- </template>
212
- </gl-filtered-search-token>
213
- `
214
- };
215
- const LabelToken = {
216
- props: ['value', 'active'],
217
- inheritAttrs: false,
218
-
219
- data() {
220
- return {
221
- loadingView: false,
222
- loadingSuggestions: false,
223
- labels: [],
224
- activeLabel: null
225
- };
226
- },
227
-
228
- computed: {
229
- currentValue() {
230
- return this.value.data.toLowerCase();
231
- },
232
-
233
- containerStyle() {
234
- if (this.activeLabel) {
235
- const {
236
- color,
237
- text_color
238
- } = this.activeLabel;
239
- return {
240
- backgroundColor: color,
241
- color: text_color
242
- };
243
- }
244
-
245
- return {};
246
- }
247
-
248
- },
249
- methods: {
250
- loadView() {
251
- this.loadingView = true;
252
- setTimeout(() => {
253
- this.loadingView = false;
254
- this.activeLabel = fakeLabels.find(l => l.title === this.value.data);
255
- }, 100);
256
- },
257
-
258
- loadSuggestions() {
259
- this.loadingSuggestions = true;
260
- setTimeout(() => {
261
- this.loadingSuggestions = false;
262
- this.labels = fakeLabels;
263
- }, 2000);
264
- }
265
-
266
- },
267
- watch: {
268
- // eslint-disable-next-line func-names
269
- 'value.data': function () {
270
- if (this.active) {
271
- this.loadSuggestions();
272
- }
273
- },
274
- active: {
275
- immediate: true,
276
-
277
- handler(newValue) {
278
- if (!newValue) {
279
- this.loadView();
280
- } else {
281
- this.loadSuggestions();
282
- }
283
- }
284
-
285
- }
286
- },
287
- template: `
288
- <gl-filtered-search-token
289
- v-bind="{ ...this.$props, ...this.$attrs }"
290
- v-on="$listeners"
291
- >
292
- <template #view-token="{ inputValue, cssClasses, listeners }">
293
- <gl-token variant="search-value" :class="cssClasses" :style="containerStyle" v-on="listeners">
294
- {{ activeLabel ? activeLabel.title : inputValue }}
295
- </gl-token>
296
- </template>
297
- <template #suggestions>
298
- <gl-filtered-search-suggestion value="None">None</gl-filtered-search-suggestion>
299
- <gl-filtered-search-suggestion value="Any">Any</gl-filtered-search-suggestion>
300
- <gl-dropdown-divider v-if="loadingSuggestions || labels.length" />
301
- <template v-if="loadingSuggestions">
302
- <gl-loading-icon />
303
- </template>
304
- <template v-else>
305
- <gl-filtered-search-suggestion :key="label.id" v-for="label in labels" :value="label.title">
306
- <div class="d-flex">
307
- <span
308
- :style="{ backgroundColor: label.color, height: '16px', width: '16px' }"
309
- class="d-inline-block mr-2"
310
- ></span>
311
- {{ label.title }}
312
- </div>
313
- </gl-filtered-search-suggestion>
314
- </template>
315
- </template>
316
- </gl-filtered-search-token>
317
- `
318
- };
319
- const tokens = [{
320
- type: 'author',
321
- icon: 'pencil',
322
- title: 'Author',
323
- dataType: 'user',
324
- unique: true,
325
- token: UserToken
326
- }, {
327
- type: 'user',
328
- icon: 'user',
329
- title: 'Assignee',
330
- dataType: 'user',
331
- token: UserToken
332
- }, {
333
- type: 'milestone',
334
- icon: 'clock',
335
- title: 'Milestone',
336
- unique: true,
337
- token: MilestoneToken
338
- }, {
339
- type: 'label',
340
- icon: 'labels',
341
- title: 'Label',
342
- token: LabelToken
343
- }, {
344
- type: 'weight',
345
- icon: 'weight',
346
- title: 'Weight',
347
- unique: true,
348
- token: 'gl-filtered-search-token'
349
- }, {
350
- type: 'confidential',
351
- icon: 'eye-slash',
352
- title: 'Confidential',
353
- unique: true,
354
- token: 'gl-filtered-search-token',
355
- options: [{
356
- icon: 'eye-slash',
357
- value: 'Yes',
358
- title: 'Yes'
359
- }, {
360
- icon: 'eye',
361
- value: 'No',
362
- title: 'No'
363
- }]
364
- }];
365
- var script = {
366
- data() {
367
- return {
368
- tokens,
369
- value: [{
370
- type: 'author',
371
- value: {
372
- data: 'beta',
373
- operator: '='
374
- }
375
- }, {
376
- type: 'label',
377
- value: {
378
- data: 'Bug',
379
- operator: '='
380
- }
381
- }, 'raw text']
382
- };
383
- }
384
-
385
- };
386
-
387
- /* script */
388
- const __vue_script__ = script;
389
-
390
- /* template */
391
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-filtered-search',{attrs:{"available-tokens":_vm.tokens,"show-friendly-text":true},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}})};
392
- var __vue_staticRenderFns__ = [];
393
-
394
- /* style */
395
- const __vue_inject_styles__ = undefined;
396
- /* scoped */
397
- const __vue_scope_id__ = undefined;
398
- /* module identifier */
399
- const __vue_module_identifier__ = undefined;
400
- /* functional template */
401
- const __vue_is_functional_template__ = false;
402
- /* style inject */
403
-
404
- /* style inject SSR */
405
-
406
- /* style inject shadow dom */
407
-
408
-
409
-
410
- const __vue_component__ = __vue_normalize__(
411
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
412
- __vue_inject_styles__,
413
- __vue_script__,
414
- __vue_scope_id__,
415
- __vue_is_functional_template__,
416
- __vue_module_identifier__,
417
- false,
418
- undefined,
419
- undefined,
420
- undefined
421
- );
422
-
423
- export default __vue_component__;
@@ -1,91 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- const testTokens = [{
4
- type: 'demotoken',
5
- title: 'Unique',
6
- icon: 'document',
7
- token: 'gl-filtered-search-token',
8
- operators: [{
9
- value: '=',
10
- description: 'is',
11
- default: 'true'
12
- }],
13
- options: [{
14
- icon: 'heart',
15
- title: 'heart',
16
- value: 1
17
- }, {
18
- icon: 'hook',
19
- title: 'hook',
20
- value: 2
21
- }],
22
- unique: true
23
- }];
24
- var script = {
25
- data() {
26
- return {
27
- tokens: testTokens,
28
- value: [],
29
- historyItems: [[{
30
- type: 'demotoken',
31
- value: {
32
- operator: '=',
33
- data: 1
34
- }
35
- }, 'item 1'], ['item 2', {
36
- type: 'demotoken',
37
- value: {
38
- operator: '=',
39
- data: 2
40
- }
41
- }]]
42
- };
43
- },
44
-
45
- methods: {
46
- isString(val) {
47
- return typeof val === 'string';
48
- }
49
-
50
- }
51
- };
52
-
53
- /* script */
54
- const __vue_script__ = script;
55
-
56
- /* template */
57
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v("\n "+_vm._s(_vm.value)+"\n "),_c('gl-filtered-search',{attrs:{"available-tokens":_vm.tokens,"history-items":_vm.historyItems},scopedSlots:_vm._u([{key:"history-item",fn:function(ref){
58
- var historyItem = ref.historyItem;
59
- return [_vm._l((historyItem),function(token,idx){return [(_vm.isString(token))?_c('span',{key:idx,staticClass:"gl-px-1"},[_vm._v(_vm._s(token))]):_c('span',{key:idx,staticClass:"gl-px-1"},[_c('strong',[_vm._v(_vm._s(token.type))]),_vm._v(" "+_vm._s(token.value.operator)+"\n "),_c('strong',[_vm._v(_vm._s(token.value.data))])])]})]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}})],1)};
60
- var __vue_staticRenderFns__ = [];
61
-
62
- /* style */
63
- const __vue_inject_styles__ = undefined;
64
- /* scoped */
65
- const __vue_scope_id__ = undefined;
66
- /* module identifier */
67
- const __vue_module_identifier__ = undefined;
68
- /* functional template */
69
- const __vue_is_functional_template__ = false;
70
- /* style inject */
71
-
72
- /* style inject SSR */
73
-
74
- /* style inject shadow dom */
75
-
76
-
77
-
78
- const __vue_component__ = __vue_normalize__(
79
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
80
- __vue_inject_styles__,
81
- __vue_script__,
82
- __vue_scope_id__,
83
- __vue_is_functional_template__,
84
- __vue_module_identifier__,
85
- false,
86
- undefined,
87
- undefined,
88
- undefined
89
- );
90
-
91
- export default __vue_component__;
@@ -1,196 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- const fakeUsers = [{
4
- id: 1,
5
- name: 'User Alpha',
6
- username: 'alpha'
7
- }, {
8
- id: 2,
9
- name: 'User Beta',
10
- username: 'beta'
11
- }, {
12
- id: 3,
13
- name: 'User Gamma',
14
- username: 'gamma'
15
- }, {
16
- id: 4,
17
- name: 'User Delta',
18
- username: 'delta'
19
- }, {
20
- id: 5,
21
- name: 'User Epsilon',
22
- username: 'epsilon'
23
- }];
24
- const UserToken = {
25
- props: ['value', 'active', 'config'],
26
- inheritAttrs: false,
27
-
28
- data() {
29
- return {
30
- users: fakeUsers,
31
- selectedUsernames: this.value.data ? this.value.data.split(',') : [],
32
- activeUser: null
33
- };
34
- },
35
-
36
- computed: {
37
- filteredUsers() {
38
- return this.users.filter(user => user.username.includes(this.value.data));
39
- },
40
-
41
- selectedUsers() {
42
- return this.config.multiSelect ? this.users.filter(user => this.selectedUsernames.includes(user.username)) : this.users.filter(user => user.username === this.activeUser);
43
- }
44
-
45
- },
46
- methods: {
47
- loadView() {
48
- this.activeUser = fakeUsers.find(u => u.username === this.value.data);
49
- },
50
-
51
- loadSuggestions() {
52
- this.users = fakeUsers;
53
- },
54
-
55
- handleSelect(username) {
56
- if (!this.config.multiSelect) {
57
- return;
58
- }
59
-
60
- if (this.selectedUsernames.includes(username)) {
61
- this.selectedUsernames = this.selectedUsernames.filter(user => user !== username);
62
- } else {
63
- this.selectedUsernames.push(username);
64
- }
65
- },
66
-
67
- isLastUser(index) {
68
- return index === this.selectedUsers.length - 1;
69
- }
70
-
71
- },
72
- watch: {
73
- // eslint-disable-next-line func-names
74
- 'value.data': function () {
75
- if (this.active) {
76
- this.loadSuggestions();
77
- }
78
- },
79
- active: {
80
- immediate: true,
81
-
82
- handler(newValue) {
83
- if (!newValue) {
84
- this.loadView();
85
- } else {
86
- this.loadSuggestions();
87
- }
88
- }
89
-
90
- }
91
- },
92
- template: `
93
- <gl-filtered-search-token
94
- v-bind="{ ...this.$props, ...this.$attrs }"
95
- v-on="$listeners"
96
- :multi-select-values="selectedUsernames"
97
- @select="handleSelect"
98
- >
99
- <template #view="{ inputValue }">
100
- <template v-for="(user, index) in selectedUsers">
101
- <gl-avatar :size="16" :entity-name="user.username" shape="circle" />
102
- {{ user.name }}
103
- <span v-if="!isLastUser(index)" class="gl-mx-2">,&nbsp;</span>
104
- </template>
105
- </template>
106
- <template #suggestions>
107
- <gl-filtered-search-suggestion :key="user.id" v-for="user in filteredUsers" :value="user.username">
108
- <div class="gl-display-flex gl-align-items-center">
109
- <gl-icon
110
- v-if="config.multiSelect"
111
- name="check"
112
- class="gl-mr-3 gl-text-gray-700"
113
- :class="{ 'gl-visibility-hidden': !selectedUsernames.includes(user.username) }"
114
- />
115
- <gl-avatar :size="32" :entity-name="user.username" />
116
- <div>
117
- <p class="gl-m-0">{{ user.name }}</p>
118
- <p class="gl-m-0">@{{ user.username }}</p>
119
- </div>
120
- </div>
121
- </gl-filtered-search-suggestion>
122
- </template>
123
- </gl-filtered-search-token>
124
- `
125
- };
126
- const tokens = [{
127
- type: 'assignee',
128
- icon: 'user',
129
- title: 'Assignee',
130
- token: UserToken,
131
- operators: [{
132
- value: '=',
133
- description: 'is',
134
- default: 'true'
135
- }, {
136
- value: '!=',
137
- description: 'is not one of'
138
- }, {
139
- value: '||',
140
- description: 'is one of'
141
- }],
142
- multiSelect: true
143
- }];
144
- var script = {
145
- data() {
146
- return {
147
- tokens,
148
- value: [{
149
- type: 'assignee',
150
- value: {
151
- data: 'alpha,beta',
152
- operator: '='
153
- }
154
- }]
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-filtered-search',{attrs:{"available-tokens":_vm.tokens,"show-friendly-text":true},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}})};
165
- var __vue_staticRenderFns__ = [];
166
-
167
- /* style */
168
- const __vue_inject_styles__ = undefined;
169
- /* scoped */
170
- const __vue_scope_id__ = undefined;
171
- /* module identifier */
172
- const __vue_module_identifier__ = undefined;
173
- /* functional template */
174
- const __vue_is_functional_template__ = false;
175
- /* style inject */
176
-
177
- /* style inject SSR */
178
-
179
- /* style inject shadow dom */
180
-
181
-
182
-
183
- const __vue_component__ = __vue_normalize__(
184
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
185
- __vue_inject_styles__,
186
- __vue_script__,
187
- __vue_scope_id__,
188
- __vue_is_functional_template__,
189
- __vue_module_identifier__,
190
- false,
191
- undefined,
192
- undefined,
193
- undefined
194
- );
195
-
196
- export default __vue_component__;