@eturnity/eturnity_reusable_components 9.34.4 → 9.34.5

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.4",
3
+ "version": "9.34.5",
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,13 @@
564
592
  padding: 10px 14px;
565
593
  `
566
594
 
595
+ /** First row of the panel; separated from the view/filter controls below. */
596
+ const PageSizeContainer = styled.div`
597
+ padding: 10px 14px;
598
+ border-bottom: 1px solid ${(props) => props.theme.colors.grey4};
599
+ max-width: 300px;
600
+ `
601
+
567
602
  const ResetButton = styled.div`
568
603
  display: inline-flex;
569
604
  gap: 16px;
@@ -578,6 +613,7 @@
578
613
  name: 'FilterSettings',
579
614
  components: {
580
615
  ContainerWrapper,
616
+ PageSizeContainer,
581
617
  ColumnWrapper,
582
618
  ColumnTitle,
583
619
  ColumnContainer,
@@ -642,6 +678,28 @@
642
678
  type: String,
643
679
  required: false,
644
680
  },
681
+ /** Current page size; shown on the selector. */
682
+ pageSize: {
683
+ type: [Number, String],
684
+ required: false,
685
+ default: null,
686
+ },
687
+ /**
688
+ * Selectable page sizes. Empty (the default) hides the control, so hosts
689
+ * that do not paginate are unaffected. Include the host's current value —
690
+ * otherwise the selector shows a size the user cannot pick again.
691
+ */
692
+ pageSizeOptions: {
693
+ type: Array,
694
+ required: false,
695
+ default: () => [],
696
+ },
697
+ /** Already-translated noun for the counted rows, e.g. "components". */
698
+ pageSizeUnit: {
699
+ type: String,
700
+ required: false,
701
+ default: '',
702
+ },
645
703
  },
646
704
  data() {
647
705
  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
  },