@gitlab/ui 39.3.0 → 39.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/components/base/modal/modal.js +14 -2
- package/package.json +4 -11
- package/src/components/base/modal/modal.spec.js +20 -0
- package/src/components/base/modal/modal.vue +14 -1
- package/dist/components/base/accordion/accordion.documentation.js +0 -8
- package/dist/components/base/accordion/accordion_item.documentation.js +0 -7
- package/dist/components/base/alert/alert.documentation.js +0 -13
- package/dist/components/base/avatar/avatar.documentation.js +0 -8
- package/dist/components/base/avatar_labeled/avatar_labeled.documentation.js +0 -8
- package/dist/components/base/avatar_link/avatar_link.documentation.js +0 -8
- package/dist/components/base/avatars_inline/avatars_inline.documentation.js +0 -13
- package/dist/components/base/badge/badge.documentation.js +0 -8
- package/dist/components/base/banner/banner.documentation.js +0 -8
- package/dist/components/base/breadcrumb/breadcrumb.documentation.js +0 -8
- package/dist/components/base/broadcast_message/broadcast_message.documentation.js +0 -8
- package/dist/components/base/button/button.documentation.js +0 -24
- package/dist/components/base/button_group/button_group.documentation.js +0 -8
- package/dist/components/base/card/card.documentation.js +0 -13
- package/dist/components/base/carousel/carousel.documentation.js +0 -8
- package/dist/components/base/collapse/collapse.documentation.js +0 -7
- package/dist/components/base/datepicker/datepicker.documentation.js +0 -7
- package/dist/components/base/daterange_picker/daterange_picker.documentation.js +0 -8
- package/dist/components/base/drawer/drawer.documentation.js +0 -8
- package/dist/components/base/dropdown/dropdown.documentation.js +0 -8
- package/dist/components/base/dropdown/dropdown_item.documentation.js +0 -7
- package/dist/components/base/filtered_search/filtered_search.documentation.js +0 -13
- package/dist/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -7
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -7
- package/dist/components/base/filtered_search/filtered_search_term.documentation.js +0 -12
- package/dist/components/base/filtered_search/filtered_search_token.documentation.js +0 -12
- package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -12
- package/dist/components/base/form/form.documentation.js +0 -7
- package/dist/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -8
- package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -12
- package/dist/components/base/form/form_combobox/form_combobox.documentation.js +0 -13
- package/dist/components/base/form/form_group/form_group.documentation.js +0 -7
- package/dist/components/base/form/form_input/form_input.documentation.js +0 -8
- package/dist/components/base/form/form_input_group/form_input_group.documentation.js +0 -8
- package/dist/components/base/form/form_radio/form_radio.documentation.js +0 -8
- package/dist/components/base/form/form_radio_group/form_radio_group.documentation.js +0 -8
- package/dist/components/base/form/form_select/form_select.documentation.js +0 -8
- package/dist/components/base/form/form_text/form_text.documentation.js +0 -14
- package/dist/components/base/form/form_textarea/form_textarea.documentation.js +0 -7
- package/dist/components/base/form/input_group_text/input_group_text.documentation.js +0 -12
- package/dist/components/base/icon/icon.documentation.js +0 -8
- package/dist/components/base/infinite_scroll/examples/index.js +0 -49
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.all_items.example.js +0 -49
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.basic.example.js +0 -62
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.finite_total_items.example.js +0 -72
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.large_fetched_items.example.js +0 -62
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.reverse.example.js +0 -63
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.small_fetched_items.example.js +0 -62
- package/dist/components/base/infinite_scroll/examples/infinite_scroll.two_way.example.js +0 -94
- package/dist/components/base/infinite_scroll/infinite_scroll.documentation.js +0 -8
- package/dist/components/base/keyset_pagination/keyset_pagination.documentation.js +0 -13
- package/dist/components/base/label/label.documentation.js +0 -8
- package/dist/components/base/link/link.documentation.js +0 -7
- package/dist/components/base/loading_icon/loading_icon.documentation.js +0 -8
- package/dist/components/base/markdown/markdown.documentation.js +0 -12
- package/dist/components/base/modal/modal.documentation.js +0 -8
- package/dist/components/base/nav/nav.documentation.js +0 -12
- package/dist/components/base/navbar/navbar.documentation.js +0 -12
- package/dist/components/base/paginated_list/paginated_list.documentation.js +0 -7
- package/dist/components/base/pagination/pagination.documentation.js +0 -8
- package/dist/components/base/path/path.documentation.js +0 -8
- package/dist/components/base/popover/popover.documentation.js +0 -5
- package/dist/components/base/search_box_by_click/search_box_by_click.documentation.js +0 -8
- package/dist/components/base/search_box_by_type/search_box_by_type.documentation.js +0 -8
- package/dist/components/base/segmented_control/segmented_control.documentation.js +0 -8
- package/dist/components/base/skeleton_loader/skeleton_loader.documentation.js +0 -13
- package/dist/components/base/skeleton_loading/skeleton_loading.documentation.js +0 -7
- package/dist/components/base/sorting/sorting.documentation.js +0 -7
- package/dist/components/base/sorting/sorting_item.documentation.js +0 -8
- package/dist/components/base/table/table.documentation.js +0 -8
- package/dist/components/base/table_lite/table_lite.documentation.js +0 -13
- package/dist/components/base/tabs/tabs/tabs.documentation.js +0 -8
- package/dist/components/base/toast/toast.documentation.js +0 -8
- package/dist/components/base/toggle/toggle.documentation.js +0 -13
- package/dist/components/base/token/token.documentation.js +0 -5
- package/dist/components/base/token_selector/token_selector.documentation.js +0 -12
- package/dist/components/base/tooltip/tooltip.documentation.js +0 -8
- package/dist/components/charts/area/area.documentation.js +0 -5
- package/dist/components/charts/bar/bar.documentation.js +0 -8
- package/dist/components/charts/chart/chart.documentation.js +0 -7
- package/dist/components/charts/column/column.documentation.js +0 -5
- package/dist/components/charts/discrete_scatter/discrete_scatter.documentation.js +0 -5
- package/dist/components/charts/gauge/gauge.documentation.js +0 -12
- package/dist/components/charts/heatmap/heatmap.documentation.js +0 -8
- package/dist/components/charts/line/line.documentation.js +0 -8
- package/dist/components/charts/series_label/series_label.documentation.js +0 -7
- package/dist/components/charts/single_stat/single_stat.documentation.js +0 -7
- package/dist/components/charts/sparkline/sparkline.documentation.js +0 -8
- package/dist/components/charts/stacked_column/stacked_column.documentation.js +0 -8
- package/dist/components/charts/tooltip/tooltip.documentation.js +0 -8
- package/dist/components/editors/rich_text_editor/rich_text_editor.documentation.js +0 -12
- package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.documentation.js +0 -7
- package/dist/components/regions/empty_state/empty_state.documentation.js +0 -7
- package/dist/components/utilities/animated_number/animated_number.documentation.js +0 -13
- package/dist/components/utilities/friendly_wrap/friendly_wrap.documentation.js +0 -7
- package/dist/components/utilities/intersection_observer/intersection_observer.documentation.js +0 -12
- package/dist/components/utilities/intersperse/intersperse.documentation.js +0 -8
- package/dist/components/utilities/sprintf/sprintf.documentation.js +0 -8
- package/dist/components/utilities/truncate/truncate.documentation.js +0 -7
- package/dist/directives/hover_load/hover_load.documentation.js +0 -13
- package/dist/directives/outside/outside.documentation.js +0 -13
- package/dist/directives/resize_observer/resize_observer.documentation.js +0 -8
- package/dist/directives/safe_html/safe_html.documentation.js +0 -8
- package/dist/directives/safe_link/safe_link.documentation.js +0 -8
- package/documentation/all_components.js +0 -8
- package/documentation/components/component_documentation_generator.vue +0 -321
- package/documentation/components/example_display.vue +0 -231
- package/documentation/components/example_explorer.vue +0 -63
- package/documentation/components_documentation.js +0 -111
- package/documentation/index.js +0 -8
- package/src/components/base/accordion/accordion.documentation.js +0 -6
- package/src/components/base/accordion/accordion_item.documentation.js +0 -5
- package/src/components/base/alert/alert.documentation.js +0 -6
- package/src/components/base/avatar/avatar.documentation.js +0 -6
- package/src/components/base/avatar_labeled/avatar_labeled.documentation.js +0 -6
- package/src/components/base/avatar_link/avatar_link.documentation.js +0 -6
- package/src/components/base/avatars_inline/avatars_inline.documentation.js +0 -6
- package/src/components/base/badge/badge.documentation.js +0 -6
- package/src/components/base/banner/banner.documentation.js +0 -6
- package/src/components/base/breadcrumb/breadcrumb.documentation.js +0 -6
- package/src/components/base/broadcast_message/broadcast_message.documentation.js +0 -6
- package/src/components/base/button/button.documentation.js +0 -24
- package/src/components/base/button_group/button_group.documentation.js +0 -6
- package/src/components/base/card/card.documentation.js +0 -6
- package/src/components/base/carousel/carousel.documentation.js +0 -6
- package/src/components/base/collapse/collapse.documentation.js +0 -5
- package/src/components/base/datepicker/datepicker.documentation.js +0 -5
- package/src/components/base/daterange_picker/daterange_picker.documentation.js +0 -6
- package/src/components/base/drawer/drawer.documentation.js +0 -6
- package/src/components/base/dropdown/dropdown.documentation.js +0 -6
- package/src/components/base/dropdown/dropdown_item.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search.documentation.js +0 -6
- package/src/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search_term.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search_token.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -5
- package/src/components/base/form/form.documentation.js +0 -5
- package/src/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -6
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -5
- package/src/components/base/form/form_combobox/form_combobox.documentation.js +0 -6
- package/src/components/base/form/form_group/form_group.documentation.js +0 -5
- package/src/components/base/form/form_input/form_input.documentation.js +0 -6
- package/src/components/base/form/form_input_group/form_input_group.documentation.js +0 -6
- package/src/components/base/form/form_radio/form_radio.documentation.js +0 -6
- package/src/components/base/form/form_radio_group/form_radio_group.documentation.js +0 -6
- package/src/components/base/form/form_select/form_select.documentation.js +0 -6
- package/src/components/base/form/form_text/form_text.documentation.js +0 -7
- package/src/components/base/form/form_textarea/form_textarea.documentation.js +0 -5
- package/src/components/base/form/input_group_text/input_group_text.documentation.js +0 -5
- package/src/components/base/icon/icon.documentation.js +0 -6
- package/src/components/base/infinite_scroll/examples/index.js +0 -57
- package/src/components/base/infinite_scroll/examples/infinite_scroll.all_items.example.vue +0 -25
- package/src/components/base/infinite_scroll/examples/infinite_scroll.basic.example.vue +0 -43
- package/src/components/base/infinite_scroll/examples/infinite_scroll.finite_total_items.example.vue +0 -44
- package/src/components/base/infinite_scroll/examples/infinite_scroll.large_fetched_items.example.vue +0 -43
- package/src/components/base/infinite_scroll/examples/infinite_scroll.reverse.example.vue +0 -46
- package/src/components/base/infinite_scroll/examples/infinite_scroll.small_fetched_items.example.vue +0 -43
- package/src/components/base/infinite_scroll/examples/infinite_scroll.two_way.example.vue +0 -75
- package/src/components/base/infinite_scroll/infinite_scroll.documentation.js +0 -6
- package/src/components/base/keyset_pagination/keyset_pagination.documentation.js +0 -6
- package/src/components/base/label/label.documentation.js +0 -6
- package/src/components/base/link/link.documentation.js +0 -5
- package/src/components/base/loading_icon/loading_icon.documentation.js +0 -6
- package/src/components/base/markdown/markdown.documentation.js +0 -5
- package/src/components/base/modal/modal.documentation.js +0 -6
- package/src/components/base/nav/nav.documentation.js +0 -5
- package/src/components/base/navbar/navbar.documentation.js +0 -5
- package/src/components/base/paginated_list/paginated_list.documentation.js +0 -5
- package/src/components/base/pagination/pagination.documentation.js +0 -6
- package/src/components/base/path/path.documentation.js +0 -6
- package/src/components/base/popover/popover.documentation.js +0 -3
- package/src/components/base/search_box_by_click/search_box_by_click.documentation.js +0 -6
- package/src/components/base/search_box_by_type/search_box_by_type.documentation.js +0 -6
- package/src/components/base/segmented_control/segmented_control.documentation.js +0 -6
- package/src/components/base/skeleton_loader/skeleton_loader.documentation.js +0 -6
- package/src/components/base/skeleton_loading/skeleton_loading.documentation.js +0 -5
- package/src/components/base/sorting/sorting.documentation.js +0 -5
- package/src/components/base/sorting/sorting_item.documentation.js +0 -6
- package/src/components/base/table/table.documentation.js +0 -6
- package/src/components/base/table_lite/table_lite.documentation.js +0 -6
- package/src/components/base/tabs/tabs/tabs.documentation.js +0 -6
- package/src/components/base/toast/toast.documentation.js +0 -6
- package/src/components/base/toggle/toggle.documentation.js +0 -6
- package/src/components/base/token/token.documentation.js +0 -3
- package/src/components/base/token_selector/token_selector.documentation.js +0 -5
- package/src/components/base/tooltip/tooltip.documentation.js +0 -6
- package/src/components/charts/area/area.documentation.js +0 -3
- package/src/components/charts/bar/bar.documentation.js +0 -6
- package/src/components/charts/chart/chart.documentation.js +0 -5
- package/src/components/charts/column/column.documentation.js +0 -3
- package/src/components/charts/discrete_scatter/discrete_scatter.documentation.js +0 -3
- package/src/components/charts/gauge/gauge.documentation.js +0 -5
- package/src/components/charts/heatmap/heatmap.documentation.js +0 -6
- package/src/components/charts/line/line.documentation.js +0 -6
- package/src/components/charts/series_label/series_label.documentation.js +0 -5
- package/src/components/charts/single_stat/single_stat.documentation.js +0 -5
- package/src/components/charts/sparkline/sparkline.documentation.js +0 -6
- package/src/components/charts/stacked_column/stacked_column.documentation.js +0 -6
- package/src/components/charts/tooltip/tooltip.documentation.js +0 -6
- package/src/components/editors/rich_text_editor/rich_text_editor.documentation.js +0 -5
- package/src/components/regions/dashboard_skeleton/dashboard_skeleton.documentation.js +0 -5
- package/src/components/regions/empty_state/empty_state.documentation.js +0 -5
- package/src/components/utilities/animated_number/animated_number.documentation.js +0 -6
- package/src/components/utilities/friendly_wrap/friendly_wrap.documentation.js +0 -5
- package/src/components/utilities/intersection_observer/intersection_observer.documentation.js +0 -5
- package/src/components/utilities/intersperse/intersperse.documentation.js +0 -6
- package/src/components/utilities/sprintf/sprintf.documentation.js +0 -6
- package/src/components/utilities/truncate/truncate.documentation.js +0 -5
- package/src/directives/hover_load/hover_load.documentation.js +0 -6
- package/src/directives/outside/outside.documentation.js +0 -6
- package/src/directives/resize_observer/resize_observer.documentation.js +0 -6
- package/src/directives/safe_html/safe_html.documentation.js +0 -6
- package/src/directives/safe_link/safe_link.documentation.js +0 -6
package/src/components/base/infinite_scroll/examples/infinite_scroll.large_fetched_items.example.vue
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
const ITEMS_BATCH_SIZE = 1200;
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
data() {
|
|
6
|
-
return {
|
|
7
|
-
isLoading: false,
|
|
8
|
-
fetchedItems: ITEMS_BATCH_SIZE,
|
|
9
|
-
loadTimer: null,
|
|
10
|
-
};
|
|
11
|
-
},
|
|
12
|
-
methods: {
|
|
13
|
-
bottomReached() {
|
|
14
|
-
clearTimeout(this.loadTimer);
|
|
15
|
-
this.isLoading = true;
|
|
16
|
-
this.loadTimer = setTimeout(() => {
|
|
17
|
-
this.fetchedItems += ITEMS_BATCH_SIZE;
|
|
18
|
-
this.isLoading = false;
|
|
19
|
-
}, 500);
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
</script>
|
|
24
|
-
<template>
|
|
25
|
-
<gl-infinite-scroll
|
|
26
|
-
:max-list-height="285"
|
|
27
|
-
:fetched-items="fetchedItems"
|
|
28
|
-
@bottomReached="bottomReached"
|
|
29
|
-
>
|
|
30
|
-
<template #items>
|
|
31
|
-
<ul class="list-group list-group-flushed list-unstyled">
|
|
32
|
-
<li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
|
|
33
|
-
</ul>
|
|
34
|
-
</template>
|
|
35
|
-
|
|
36
|
-
<template #default>
|
|
37
|
-
<div class="gl-mt-3">
|
|
38
|
-
<gl-loading-icon v-if="isLoading" />
|
|
39
|
-
<span v-else>Showing {{ fetchedItems }} of 1000+ items</span>
|
|
40
|
-
</div>
|
|
41
|
-
</template>
|
|
42
|
-
</gl-infinite-scroll>
|
|
43
|
-
</template>
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
const ITEMS_BATCH_SIZE = 5;
|
|
3
|
-
const INIT_ITEMS_COUNT = 10;
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
data() {
|
|
7
|
-
return {
|
|
8
|
-
isLoading: false,
|
|
9
|
-
fetchedItems: INIT_ITEMS_COUNT,
|
|
10
|
-
loadTimer: null,
|
|
11
|
-
};
|
|
12
|
-
},
|
|
13
|
-
methods: {
|
|
14
|
-
topReached() {
|
|
15
|
-
clearTimeout(this.loadTimer);
|
|
16
|
-
this.isLoading = true;
|
|
17
|
-
this.loadTimer = setTimeout(() => {
|
|
18
|
-
this.fetchedItems += ITEMS_BATCH_SIZE;
|
|
19
|
-
this.isLoading = false;
|
|
20
|
-
}, 2000);
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
</script>
|
|
25
|
-
<template>
|
|
26
|
-
<gl-infinite-scroll :max-list-height="285" :fetched-items="fetchedItems" @topReached="topReached">
|
|
27
|
-
<template #header>
|
|
28
|
-
<div class="gl-h-6">
|
|
29
|
-
<gl-loading-icon v-if="isLoading" />
|
|
30
|
-
</div>
|
|
31
|
-
</template>
|
|
32
|
-
<template #items>
|
|
33
|
-
<ul class="list-group list-group-flushed list-unstyled">
|
|
34
|
-
<li v-for="item in fetchedItems" :key="item" class="list-group-item">
|
|
35
|
-
Item #{{ Math.abs(item - fetchedItems) + 1 }}
|
|
36
|
-
</li>
|
|
37
|
-
</ul>
|
|
38
|
-
</template>
|
|
39
|
-
|
|
40
|
-
<template #default>
|
|
41
|
-
<div class="gl-mt-3">
|
|
42
|
-
<span>{{ fetchedItems }} items loaded, scroll up for more</span>
|
|
43
|
-
</div>
|
|
44
|
-
</template>
|
|
45
|
-
</gl-infinite-scroll>
|
|
46
|
-
</template>
|
package/src/components/base/infinite_scroll/examples/infinite_scroll.small_fetched_items.example.vue
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
const ITEMS_BATCH_SIZE = 60;
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
data() {
|
|
6
|
-
return {
|
|
7
|
-
isLoading: false,
|
|
8
|
-
fetchedItems: ITEMS_BATCH_SIZE,
|
|
9
|
-
loadTimer: null,
|
|
10
|
-
};
|
|
11
|
-
},
|
|
12
|
-
methods: {
|
|
13
|
-
bottomReached() {
|
|
14
|
-
clearTimeout(this.loadTimer);
|
|
15
|
-
this.isLoading = true;
|
|
16
|
-
this.loadTimer = setTimeout(() => {
|
|
17
|
-
this.fetchedItems += ITEMS_BATCH_SIZE;
|
|
18
|
-
this.isLoading = false;
|
|
19
|
-
}, 500);
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
</script>
|
|
24
|
-
<template>
|
|
25
|
-
<gl-infinite-scroll
|
|
26
|
-
:max-list-height="285"
|
|
27
|
-
:fetched-items="fetchedItems"
|
|
28
|
-
@bottomReached="bottomReached"
|
|
29
|
-
>
|
|
30
|
-
<template #items>
|
|
31
|
-
<ul class="list-group list-group-flushed list-unstyled">
|
|
32
|
-
<li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
|
|
33
|
-
</ul>
|
|
34
|
-
</template>
|
|
35
|
-
|
|
36
|
-
<template #default>
|
|
37
|
-
<div class="gl-mt-3">
|
|
38
|
-
<gl-loading-icon v-if="isLoading" />
|
|
39
|
-
<span v-else>Showing {{ fetchedItems }} of 1000+ items</span>
|
|
40
|
-
</div>
|
|
41
|
-
</template>
|
|
42
|
-
</gl-infinite-scroll>
|
|
43
|
-
</template>
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
const ITEMS_BATCH_SIZE = 10;
|
|
3
|
-
const INIT_ITEMS_COUNT = 20;
|
|
4
|
-
|
|
5
|
-
const colors = ['Violet', 'Indigo', 'Blue', 'Green', 'Yellow', 'Orange', 'Red'];
|
|
6
|
-
const planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'];
|
|
7
|
-
|
|
8
|
-
let key = 0;
|
|
9
|
-
const createItem = () => {
|
|
10
|
-
key += 1;
|
|
11
|
-
return {
|
|
12
|
-
key,
|
|
13
|
-
content: `${colors[key % colors.length]} ${planets[key % planets.length]}`,
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const createArray = (num) => {
|
|
18
|
-
const res = [];
|
|
19
|
-
for (let i = 0; i < num; i += 1) {
|
|
20
|
-
res.push(createItem());
|
|
21
|
-
}
|
|
22
|
-
return res;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export default {
|
|
26
|
-
data() {
|
|
27
|
-
return {
|
|
28
|
-
isLoading: false,
|
|
29
|
-
fetchedItems: createArray(INIT_ITEMS_COUNT),
|
|
30
|
-
loadTimer: null,
|
|
31
|
-
};
|
|
32
|
-
},
|
|
33
|
-
methods: {
|
|
34
|
-
topReached() {
|
|
35
|
-
clearTimeout(this.loadTimer);
|
|
36
|
-
this.isLoading = true;
|
|
37
|
-
this.loadTimer = setTimeout(() => {
|
|
38
|
-
this.fetchedItems.unshift(...createArray(ITEMS_BATCH_SIZE));
|
|
39
|
-
this.isLoading = false;
|
|
40
|
-
}, 1000);
|
|
41
|
-
},
|
|
42
|
-
bottomReached() {
|
|
43
|
-
clearTimeout(this.loadTimer);
|
|
44
|
-
this.isLoading = true;
|
|
45
|
-
this.loadTimer = setTimeout(() => {
|
|
46
|
-
this.fetchedItems.push(...createArray(ITEMS_BATCH_SIZE));
|
|
47
|
-
this.isLoading = false;
|
|
48
|
-
}, 1000);
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
</script>
|
|
53
|
-
<template>
|
|
54
|
-
<gl-infinite-scroll
|
|
55
|
-
:max-list-height="285"
|
|
56
|
-
:fetched-items="fetchedItems.length"
|
|
57
|
-
@topReached="topReached"
|
|
58
|
-
@bottomReached="bottomReached"
|
|
59
|
-
>
|
|
60
|
-
<template #items>
|
|
61
|
-
<ul class="list-group list-group-flushed list-unstyled">
|
|
62
|
-
<li v-for="item in fetchedItems" :key="item.key" class="list-group-item">
|
|
63
|
-
{{ item.content }}
|
|
64
|
-
</li>
|
|
65
|
-
</ul>
|
|
66
|
-
</template>
|
|
67
|
-
|
|
68
|
-
<template #default>
|
|
69
|
-
<div class="gl-mt-3">
|
|
70
|
-
<gl-loading-icon v-if="isLoading" />
|
|
71
|
-
<span v-else>{{ fetchedItems.length }} items loaded, scroll up or down for more</span>
|
|
72
|
-
</div>
|
|
73
|
-
</template>
|
|
74
|
-
</gl-infinite-scroll>
|
|
75
|
-
</template>
|