@paris-ias/list 1.0.11 → 1.0.13

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 (88) hide show
  1. package/README.md +71 -51
  2. package/dist/module.d.mts +8 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +64 -0
  5. package/dist/runtime/components/events/Badges.vue +5 -7
  6. package/dist/runtime/components/events/DateTimePlace.vue +11 -13
  7. package/dist/runtime/components/events/DenseItem.vue +7 -6
  8. package/dist/runtime/components/events/ExpandedItem.vue +3 -5
  9. package/dist/runtime/components/events/ListContainer.vue +6 -6
  10. package/dist/runtime/components/events/RegisterModal.vue +4 -5
  11. package/dist/runtime/components/events/RelatedItem.vue +6 -7
  12. package/dist/runtime/components/events/RowsItem.vue +12 -11
  13. package/dist/runtime/components/events/View.vue +10 -13
  14. package/dist/runtime/components/fellowships/Badges.vue +12 -15
  15. package/dist/runtime/components/fellowships/DenseItem.vue +7 -7
  16. package/dist/runtime/components/fellowships/RegisterModal.vue +3 -2
  17. package/dist/runtime/components/fellowships/RowsItem.vue +19 -21
  18. package/dist/runtime/components/fellowships/View.vue +43 -49
  19. package/dist/runtime/components/list/atoms/FiltersMenu.vue +6 -8
  20. package/dist/runtime/components/list/atoms/SearchInput.vue +42 -50
  21. package/dist/runtime/components/list/atoms/SearchItem.vue +14 -14
  22. package/dist/runtime/components/list/atoms/SearchString.vue +6 -7
  23. package/dist/runtime/components/list/atoms/SortMenu.vue +23 -40
  24. package/dist/runtime/components/list/atoms/ViewMenu.vue +14 -22
  25. package/dist/runtime/components/list/inputs/AutoComplete.vue +9 -9
  26. package/dist/runtime/components/list/inputs/BooleanSwitch.vue +9 -9
  27. package/dist/runtime/components/list/inputs/Checkbox.vue +11 -11
  28. package/dist/runtime/components/list/inputs/Select.vue +11 -11
  29. package/dist/runtime/components/list/molecules/Filters.vue +27 -42
  30. package/dist/runtime/components/list/molecules/Header.vue +5 -7
  31. package/dist/runtime/components/list/molecules/Pagination.vue +60 -102
  32. package/dist/runtime/components/list/organisms/List.vue +28 -36
  33. package/dist/runtime/components/list/views/Dense.vue +1 -14
  34. package/dist/runtime/components/list/views/Grid.vue +3 -3
  35. package/dist/runtime/components/list/views/Rows.vue +3 -3
  36. package/dist/runtime/components/list/views/Table.vue +3 -3
  37. package/dist/runtime/components/misc/atoms/CountUp.vue +89 -144
  38. package/dist/runtime/components/misc/atoms/DateStamp.vue +42 -46
  39. package/dist/runtime/components/misc/atoms/ImageContainer.vue +14 -22
  40. package/dist/runtime/components/misc/atoms/ShareMenu.vue +9 -11
  41. package/dist/runtime/components/misc/atoms/Socials.vue +46 -52
  42. package/dist/runtime/components/misc/molecules/ChipContainer.vue +7 -11
  43. package/dist/runtime/components/misc/molecules/Related.vue +9 -11
  44. package/dist/runtime/components/misc/molecules/RelatedItems.vue +7 -9
  45. package/dist/runtime/components/misc/molecules/SearchItem.vue +2 -2
  46. package/dist/runtime/components/news/DenseItem.vue +15 -15
  47. package/dist/runtime/components/news/ExpandedItem.vue +40 -50
  48. package/dist/runtime/components/news/Header.vue +3 -5
  49. package/dist/runtime/components/news/RelatedItem.vue +6 -7
  50. package/dist/runtime/components/news/RowsItem.vue +14 -16
  51. package/dist/runtime/components/news/View.vue +9 -20
  52. package/dist/runtime/components/people/DenseItem.vue +9 -8
  53. package/dist/runtime/components/people/ExpandedItem.vue +4 -6
  54. package/dist/runtime/components/people/GroupBadges.vue +6 -8
  55. package/dist/runtime/components/people/RelatedItem.vue +6 -7
  56. package/dist/runtime/components/people/RowsItem.vue +12 -19
  57. package/dist/runtime/components/people/View.vue +7 -7
  58. package/dist/runtime/components/projects/ExpandedItem.vue +4 -6
  59. package/dist/runtime/components/projects/RelatedItem.vue +6 -7
  60. package/dist/runtime/components/projects/RowsItem.vue +21 -26
  61. package/dist/runtime/components/projects/View.vue +8 -8
  62. package/dist/runtime/components/publications/RelatedItem.vue +6 -7
  63. package/dist/runtime/components/publications/RowsItem.vue +20 -22
  64. package/dist/runtime/components/publications/View.vue +9 -15
  65. package/dist/runtime/composables/useFetchItem.d.ts +6 -0
  66. package/dist/runtime/composables/useFetchItem.js +49 -0
  67. package/dist/runtime/composables/useIcons.d.ts +1 -0
  68. package/dist/runtime/composables/useIcons.js +30 -0
  69. package/dist/runtime/composables/useUtils.d.ts +12 -0
  70. package/dist/runtime/composables/useUtils.js +47 -0
  71. package/dist/runtime/plugins/pinia.d.ts +2 -0
  72. package/dist/runtime/plugins/{pinia.ts → pinia.js} +29 -48
  73. package/dist/runtime/plugins/vuetify.d.ts +2 -0
  74. package/dist/runtime/server/tsconfig.json +3 -0
  75. package/dist/runtime/stores/factory.d.ts +1 -0
  76. package/dist/runtime/stores/{factory.ts → factory.js} +9 -9
  77. package/dist/runtime/stores/root.d.ts +34 -0
  78. package/dist/runtime/stores/root.js +227 -0
  79. package/dist/types.d.mts +3 -0
  80. package/package.json +55 -26
  81. package/dist/runtime/composables/useFetchItem.ts +0 -64
  82. package/dist/runtime/composables/useIcons.ts +0 -30
  83. package/dist/runtime/composables/useUtils.ts +0 -75
  84. package/dist/runtime/stores/root.ts +0 -353
  85. package/example/.env.example +0 -3
  86. package/example/nuxt.config.ts +0 -19
  87. package/example/pages/index.vue +0 -27
  88. package/index.ts +0 -119
@@ -33,15 +33,13 @@
33
33
  </template>
34
34
 
35
35
  <script setup>
36
- const route = useRoute()
37
-
38
- const filtersOpen = ref(!!Object.keys(route.query)?.length)
39
-
36
+ const route = useRoute();
37
+ const filtersOpen = ref(!!Object.keys(route.query)?.length);
40
38
  const props = defineProps({
41
39
  type: {
42
40
  type: String,
43
41
  required: false,
44
- default: "",
45
- },
46
- })
42
+ default: ""
43
+ }
44
+ });
47
45
  </script>
@@ -77,167 +77,125 @@
77
77
  </template>
78
78
 
79
79
  <script setup>
80
- import { computed } from "vue"
81
- import { useRoute, useRouter } from "vue-router"
82
- import { useRootStore } from "../../../stores/root"
83
-
84
- const route = useRoute()
85
- const router = useRouter()
86
- const rootStore = useRootStore()
87
-
88
- // THIS COMPONENT IS INITIALLY BASED ON https://github.com/ashwinkshenoy/vue-simple/tree/master/packages/vs-pagination
89
- // AND MODIFIED TO FIT INTO OUR NEEDS (Vuetify + nuxt 3)
80
+ import { computed } from "vue";
81
+ import { useRoute, useRouter } from "vue-router";
82
+ import { useRootStore } from "../../../stores/root";
83
+ const route = useRoute();
84
+ const router = useRouter();
85
+ const rootStore = useRootStore();
90
86
  const props = defineProps({
91
87
  totalPages: {
92
88
  type: Number,
93
- required: true,
89
+ required: true
94
90
  },
95
91
  currentPage: {
96
92
  type: Number,
97
- default: 1,
93
+ default: 1
98
94
  },
99
95
  pagePadding: {
100
96
  type: Number,
101
97
  default: 1,
102
98
  validator: (value) => {
103
- return value > 0
104
- },
99
+ return value > 0;
100
+ }
105
101
  },
106
102
  pageGap: {
107
103
  type: Number,
108
104
  default: 2,
109
105
  validator: (value) => {
110
- return value > 0
111
- },
106
+ return value > 0;
107
+ }
112
108
  },
113
109
  hidePrevNext: {
114
110
  type: Boolean,
115
- default: false,
111
+ default: false
116
112
  },
117
113
  type: {
118
114
  type: String,
119
115
  default: "",
120
- required: true,
121
- },
122
- })
123
-
116
+ required: true
117
+ }
118
+ });
124
119
  const renderPages = computed(() => {
125
- const pages = []
120
+ const pages = [];
126
121
  for (let pageIndex = 1; pageIndex <= props.totalPages; pageIndex++) {
127
- if (
128
- pageIndex === props.currentPage ||
129
- pageIndex < props.pageGap ||
130
- pageIndex > props.totalPages - props.pageGap + 1
131
- ) {
132
- pages.push(createPage(pageIndex))
133
- continue
122
+ if (pageIndex === props.currentPage || pageIndex < props.pageGap || pageIndex > props.totalPages - props.pageGap + 1) {
123
+ pages.push(createPage(pageIndex));
124
+ continue;
134
125
  }
135
-
136
- let minimum
137
- let maximum
138
-
126
+ let minimum;
127
+ let maximum;
139
128
  if (props.currentPage <= props.pageGap + props.pagePadding) {
140
- minimum = props.pageGap + 1
141
- maximum = minimum + props.pagePadding * 2
142
- } else if (
143
- props.currentPage >=
144
- props.totalPages - props.pageGap - props.pagePadding
145
- ) {
146
- maximum = props.totalPages - props.pageGap
147
- minimum = maximum - props.pagePadding * 2
129
+ minimum = props.pageGap + 1;
130
+ maximum = minimum + props.pagePadding * 2;
131
+ } else if (props.currentPage >= props.totalPages - props.pageGap - props.pagePadding) {
132
+ maximum = props.totalPages - props.pageGap;
133
+ minimum = maximum - props.pagePadding * 2;
148
134
  } else {
149
- minimum = props.currentPage - props.pagePadding
150
- maximum = props.currentPage + props.pagePadding
135
+ minimum = props.currentPage - props.pagePadding;
136
+ maximum = props.currentPage + props.pagePadding;
151
137
  }
152
-
153
- if (
154
- (pageIndex >= minimum && pageIndex <= props.currentPage) ||
155
- (pageIndex >= props.currentPage && pageIndex <= maximum)
156
- ) {
157
- pages.push(createPage(pageIndex))
158
- continue
138
+ if (pageIndex >= minimum && pageIndex <= props.currentPage || pageIndex >= props.currentPage && pageIndex <= maximum) {
139
+ pages.push(createPage(pageIndex));
140
+ continue;
159
141
  }
160
-
161
142
  if (pageIndex === props.pageGap) {
162
- if (
163
- minimum > props.pageGap + 1 &&
164
- props.currentPage > props.pageGap + props.pagePadding + 1
165
- ) {
166
- pages.push(createGap(pageIndex))
143
+ if (minimum > props.pageGap + 1 && props.currentPage > props.pageGap + props.pagePadding + 1) {
144
+ pages.push(createGap(pageIndex));
167
145
  } else {
168
- pages.push(createPage(pageIndex))
146
+ pages.push(createPage(pageIndex));
169
147
  }
170
-
171
- continue
148
+ continue;
172
149
  }
173
-
174
150
  if (pageIndex === props.totalPages - props.pageGap + 1) {
175
- if (
176
- maximum < props.totalPages - props.pageGap &&
177
- props.currentPage < props.totalPages - props.pageGap - props.pagePadding
178
- ) {
179
- pages.push(createGap(pageIndex))
151
+ if (maximum < props.totalPages - props.pageGap && props.currentPage < props.totalPages - props.pageGap - props.pagePadding) {
152
+ pages.push(createGap(pageIndex));
180
153
  } else {
181
- pages.push(createPage(pageIndex))
154
+ pages.push(createPage(pageIndex));
182
155
  }
183
-
184
- continue
156
+ continue;
185
157
  }
186
158
  }
187
-
188
- return pages
189
- })
190
-
159
+ return pages;
160
+ });
191
161
  const createPage = (pageIndex) => {
192
162
  return {
193
163
  key: pageIndex,
194
164
  current: props.currentPage === pageIndex,
195
- value: pageIndex,
196
- }
197
- }
198
-
165
+ value: pageIndex
166
+ };
167
+ };
199
168
  const firstPageSelected = () => {
200
- return props.currentPage === 1
201
- }
202
-
169
+ return props.currentPage === 1;
170
+ };
203
171
  const lastPageSelected = () => {
204
- return props.currentPage === props.totalPages || props.totalPages === 0
205
- }
206
-
172
+ return props.currentPage === props.totalPages || props.totalPages === 0;
173
+ };
207
174
  const createGap = (pageIndex) => {
208
175
  return {
209
176
  key: pageIndex,
210
- isGap: true,
211
- }
212
- }
213
-
177
+ isGap: true
178
+ };
179
+ };
214
180
  const updatePage = (page) => {
215
- rootStore.updatePage({ page, type: props.type })
216
- }
217
-
181
+ rootStore.updatePage({ page, type: props.type });
182
+ };
218
183
  const getGapPage = (index) => {
219
184
  return Math.floor(
220
- renderPages.value[index - 1].key +
221
- ((renderPages.value[index + 1].key || props.totalPages) -
222
- renderPages.value[index - 1].key) /
223
- 2
224
- )
225
- }
226
- // Watch for changes in the route query and update the currentPage accordingly
185
+ renderPages.value[index - 1].key + ((renderPages.value[index + 1].key || props.totalPages) - renderPages.value[index - 1].key) / 2
186
+ );
187
+ };
227
188
  watch(
228
189
  () => route.query.page,
229
190
  (newPage) => {
230
191
  if (newPage) {
231
- props.currentPage = parseInt(newPage, 10)
192
+ props.currentPage = parseInt(newPage, 10);
232
193
  }
233
194
  },
234
195
  { immediate: true }
235
- )
196
+ );
236
197
  </script>
237
198
 
238
199
  <style>
239
- .active-page {
240
- background-color: #000 !important;
241
- color: #f5f5f5 !important;
242
- }
200
+ .active-page{background-color:#000!important;color:#f5f5f5!important}
243
201
  </style>
@@ -23,23 +23,23 @@
23
23
  />
24
24
  </div>
25
25
  </template>
26
- <script setup>
27
- import { useRootStore } from "../../../stores/root"
28
- import { capitalize } from "../../../composables/useUtils"
29
- const { $stores } = useNuxtApp()
30
- const { locale } = useI18n()
31
26
 
32
- const rootStore = useRootStore()
27
+ <script setup>
28
+ import { useRootStore } from "../../../stores/root";
29
+ import { capitalize } from "../../../composables/useUtils";
30
+ const { $stores } = useNuxtApp();
31
+ const { locale } = useI18n();
32
+ const rootStore = useRootStore();
33
33
  const props = defineProps({
34
34
  addBtn: {
35
35
  type: Boolean,
36
36
  required: false,
37
- default: false,
37
+ default: false
38
38
  },
39
39
  type: {
40
40
  type: String,
41
41
  default: "",
42
- required: true,
42
+ required: true
43
43
  },
44
44
  layout: {
45
45
  type: Object,
@@ -47,46 +47,38 @@ const props = defineProps({
47
47
  default: () => {
48
48
  return {
49
49
  cols: 12,
50
- xl: 12,
51
- }
52
- },
50
+ xl: 12
51
+ };
52
+ }
53
53
  },
54
54
  pagination: {
55
55
  type: Object,
56
56
  required: false,
57
57
  default: () => {
58
- return {}
59
- },
58
+ return {};
59
+ }
60
60
  },
61
61
  addButton: {
62
62
  type: Boolean,
63
63
  required: false,
64
- default: false,
64
+ default: false
65
65
  },
66
- items: [Object],
67
- })
68
-
69
- const view = computed(() =>
70
- resolveComponent("ListViews" + capitalize($stores[props.type].view.name))
71
- )
72
- const itemTemplate = computed(() =>
73
- resolveComponent(
74
- (
75
- capitalize(props.type) +
76
- capitalize($stores[props.type].view.name) +
77
- "Item"
78
- ).toString()
66
+ items: [Object]
67
+ });
68
+ const view = computed(
69
+ () => resolveComponent("ListViews" + capitalize($stores[props.type].view.name))
70
+ );
71
+ const itemTemplate = computed(
72
+ () => resolveComponent(
73
+ (capitalize(props.type) + capitalize($stores[props.type].view.name) + "Item").toString()
79
74
  )
80
- )
81
- const numberOfPages = computed(() => $stores[props.type].numberOfPages)
82
-
83
- const page = computed(() => +$stores[props.type].page)
84
-
85
- const items = computed(() => $stores[props.type].items)
86
-
75
+ );
76
+ const numberOfPages = computed(() => $stores[props.type].numberOfPages);
77
+ const page = computed(() => +$stores[props.type].page);
78
+ const items = computed(() => $stores[props.type].items);
87
79
  try {
88
- await rootStore.update(props.type, locale.value)
80
+ await rootStore.update(props.type, locale.value);
89
81
  } catch (error) {
90
- console.log("error fetching update list: ", error)
82
+ console.log("error fetching update list: ", error);
91
83
  }
92
84
  </script>
@@ -7,19 +7,6 @@
7
7
  </section>
8
8
  </template>
9
9
 
10
- <script setup lang="ts"></script>
11
10
  <style>
12
- section {
13
- display: table;
14
- width: 100%;
15
- }
16
-
17
- section > * {
18
- display: table-row;
19
- }
20
-
21
- section .v-col.dense {
22
- display: table-cell;
23
- vertical-align: middle;
24
- }
11
+ section{display:table;width:100%}section>*{display:table-row}section .v-col.dense{display:table-cell;vertical-align:middle}
25
12
  </style>
@@ -5,9 +5,9 @@
5
5
  </template>
6
6
  </template>
7
7
 
8
- <script setup lang="ts">
8
+ <script setup>
9
9
  const props = defineProps({
10
10
  items: [Object],
11
- type: String,
12
- })
11
+ type: String
12
+ });
13
13
  </script>
@@ -7,7 +7,7 @@
7
7
  </v-row>
8
8
  </template>
9
9
 
10
- <script setup lang="ts">
11
- /* const { signIn } = useSession() */
12
- onMounted(() => {})
10
+ <script setup>
11
+ onMounted(() => {
12
+ });
13
13
  </script>
@@ -5,9 +5,9 @@
5
5
  </template>
6
6
  </template>
7
7
 
8
- <script setup lang="ts">
8
+ <script setup>
9
9
  const props = defineProps({
10
10
  items: [Object],
11
- type: String,
12
- })
11
+ type: String
12
+ });
13
13
  </script>