@eturnity/eturnity_reusable_components 9.34.7 → 9.37.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "9.34.7",
3
+ "version": "9.37.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -1,5 +1,33 @@
1
1
  <template>
2
2
  <ContainerWrapper @click="$emit('on-container-click')">
3
+ <PageSizeContainer v-if="pageSizeOptions && pageSizeOptions.length">
4
+ <SelectComponent
5
+ align-items="vertical"
6
+ :data-id="componentName + '_page_size_select'"
7
+ :data-qa-id="componentName + '_page_size_select'"
8
+ font-size="13px"
9
+ :is-searchable="false"
10
+ :label="$gettext('Shown')"
11
+ select-height="36px"
12
+ select-width="100%"
13
+ @click.stop
14
+ @input-change="$emit('on-page-size-change', $event)"
15
+ >
16
+ <template #selector>
17
+ <OptionTitle> {{ pageSize }} {{ pageSizeUnit }} </OptionTitle>
18
+ </template>
19
+ <template #dropdown>
20
+ <Option
21
+ v-for="(item, idx) in pageSizeOptions"
22
+ :key="idx + '_page_size'"
23
+ :data-id="`${componentName}_page_size_option_${idx + 1}`"
24
+ :value="item"
25
+ >
26
+ {{ item }} {{ pageSizeUnit }}
27
+ </Option>
28
+ </template>
29
+ </SelectComponent>
30
+ </PageSizeContainer>
3
31
  <UpperContainer v-if="filterViews && filterViews.length">
4
32
  <ViewContainer v-if="showActiveFilter" :max-width="activeView.length">
5
33
  <SelectComponent
@@ -564,6 +592,12 @@
564
592
  padding: 10px 14px;
565
593
  `
566
594
 
595
+ const PageSizeContainer = styled.div`
596
+ padding: 10px 14px;
597
+ border-bottom: 1px solid ${(props) => props.theme.colors.grey4};
598
+ max-width: 300px;
599
+ `
600
+
567
601
  const ResetButton = styled.div`
568
602
  display: inline-flex;
569
603
  gap: 16px;
@@ -578,6 +612,7 @@
578
612
  name: 'FilterSettings',
579
613
  components: {
580
614
  ContainerWrapper,
615
+ PageSizeContainer,
581
616
  ColumnWrapper,
582
617
  ColumnTitle,
583
618
  ColumnContainer,
@@ -642,6 +677,28 @@
642
677
  type: String,
643
678
  required: false,
644
679
  },
680
+ /** Current page size; shown on the selector. */
681
+ pageSize: {
682
+ type: [Number, String],
683
+ required: false,
684
+ default: null,
685
+ },
686
+ /**
687
+ * Selectable page sizes. Empty (the default) hides the control, so hosts
688
+ * that do not paginate are unaffected. Include the host's current value —
689
+ * otherwise the selector shows a size the user cannot pick again.
690
+ */
691
+ pageSizeOptions: {
692
+ type: Array,
693
+ required: false,
694
+ default: () => [],
695
+ },
696
+ /** Already-translated noun for the counted rows, e.g. "components". */
697
+ pageSizeUnit: {
698
+ type: String,
699
+ required: false,
700
+ default: '',
701
+ },
645
702
  },
646
703
  data() {
647
704
  return {
@@ -17,6 +17,9 @@
17
17
  :filter-data="filterData"
18
18
  :filter-views="filterViews"
19
19
  :has-active-view="hasActiveView"
20
+ :page-size="pageSize"
21
+ :page-size-options="pageSizeOptions"
22
+ :page-size-unit="pageSizeUnit"
20
23
  :settings-translations="settingsTranslations"
21
24
  :show-active-filter="showActiveFilter"
22
25
  @on-apply-current-view="onApplyCurrentView()"
@@ -24,6 +27,7 @@
24
27
  @on-container-click="onContainerClick()"
25
28
  @on-drag-change="$emit('on-drag-change', $event)"
26
29
  @on-filter-change="onFilterChange($event)"
30
+ @on-page-size-change="$emit('on-page-size-change', $event)"
27
31
  @on-prevent-close="onPreventClose($event)"
28
32
  @on-reset-filters="onResetFilters()"
29
33
  @on-save-new-view="$emit('on-save-new-view')"
@@ -56,6 +60,24 @@
56
60
  dropdownText: {
57
61
  required: false,
58
62
  },
63
+ /** Current page size; shown on the selector. */
64
+ pageSize: {
65
+ type: [Number, String],
66
+ required: false,
67
+ default: null,
68
+ },
69
+ /** Selectable page sizes. Empty (the default) hides the control. */
70
+ pageSizeOptions: {
71
+ type: Array,
72
+ required: false,
73
+ default: () => [],
74
+ },
75
+ /** Already-translated noun for the counted rows, e.g. "components". */
76
+ pageSizeUnit: {
77
+ type: String,
78
+ required: false,
79
+ default: '',
80
+ },
59
81
  filterViews: {
60
82
  required: true,
61
83
  },