@saooti/octopus-sdk 35.2.8 → 35.2.9

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": "@saooti/octopus-sdk",
3
- "version": "35.2.8",
3
+ "version": "35.2.9",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -75,7 +75,7 @@
75
75
  {
76
76
  position: absolute;
77
77
  right: 10px;
78
- top: 0.4rem;
78
+ top: 0.5rem;
79
79
  }
80
80
 
81
81
 
@@ -220,6 +220,8 @@
220
220
  .multiselect__tags {
221
221
  min-height: 45px;
222
222
  display: flex;
223
+ padding-right: 40px;
224
+ padding-left: 5px;
223
225
  align-items: center;
224
226
  border-radius: 0.3em;
225
227
  border: 0.1rem solid #dee2e6;
@@ -327,8 +329,6 @@
327
329
  .multiselect__placeholder {
328
330
  color: #757575;
329
331
  display: inline-block;
330
- margin-bottom: 10px;
331
- padding-top: 2px;
332
332
  }
333
333
 
334
334
  .multiselect--active .multiselect__placeholder {
@@ -7,7 +7,7 @@
7
7
  v-if="filterIab || filterRubrique.length"
8
8
  class="octopus-breadcrumb d-flex align-items-center flex-wrap"
9
9
  >
10
- <li>
10
+ <li class="octopus-breadcrumb-li">
11
11
  <a
12
12
  href="#"
13
13
  @click="removeFilter(-1, $event)"
@@ -15,13 +15,14 @@
15
15
  </li>
16
16
  <li
17
17
  v-if="filterIab"
18
+ class="octopus-breadcrumb-li"
18
19
  >
19
20
  {{ filterIab.name }}
20
21
  </li>
21
22
  <li
22
23
  v-for="(filter, index) in filterRubrique"
23
24
  :key="filter.rubriqueId"
24
- class="d-flex align-items-center"
25
+ class="d-flex align-items-center octopus-breadcrumb-li"
25
26
  :class="filterRubrique.length-1 === index ? 'active':''"
26
27
  >
27
28
  <a
@@ -148,7 +149,7 @@ export default defineComponent({
148
149
  padding: 1rem;
149
150
  align-items: center;
150
151
  background: #FAFAFA;
151
- li{
152
+ .octopus-breadcrumb-li{
152
153
  list-style: none;
153
154
  &:after {
154
155
  content: "/";
@@ -25,7 +25,7 @@
25
25
  :internal-search="false"
26
26
  :clear-on-select="false"
27
27
  :close-on-select="true"
28
- :options-limit="200"
28
+ :options-limit="rubriqueLimit"
29
29
  :max-height="600"
30
30
  :show-no-results="true"
31
31
  :hide-selected="true"
@@ -62,6 +62,19 @@
62
62
  <template #caret>
63
63
  <span class="saooti-down octopus-arrow-down octopus-arrow-down-absolute" />
64
64
  </template>
65
+ <template #afterList="">
66
+ <div
67
+ v-if="rubriques.length > rubriqueLimit"
68
+ class="multiselect-remaining-elements"
69
+ >
70
+ {{
71
+ $t(
72
+ 'Count more elements matched your query, please make a more specific search.',
73
+ { count: rubriques.length - rubriqueLimit }
74
+ )
75
+ }}
76
+ </div>
77
+ </template>
65
78
  </VueMultiselect>
66
79
  </div>
67
80
  </template>
@@ -101,6 +114,7 @@ export default defineComponent({
101
114
 
102
115
  data() {
103
116
  return {
117
+ rubriqueLimit: 250 as number,
104
118
  rubriques: [] as Array<Rubrique>,
105
119
  rubrique: getDefaultRubrique(this.defaultanswer),
106
120
  rubriqueForArray: [] as Array<Rubrique>,
@@ -44,6 +44,16 @@
44
44
  :is-fixed="true"
45
45
  :left-pos="true"
46
46
  >
47
+ <RubriqueChooser
48
+ v-if="hidenRubriques.length"
49
+ :multiple="false"
50
+ :rubriquage-id="rubriquage.rubriquageId"
51
+ :all-rubriques="hidenRubriques"
52
+ :cannot-be-undefined="true"
53
+ class="mb-3"
54
+ width="auto"
55
+ @selected="addFilter(index,$event)"
56
+ />
47
57
  <button
48
58
  v-for="rubrique in hidenRubriques"
49
59
  :key="rubrique.rubriqueId"
@@ -63,12 +73,14 @@ import { Rubriquage } from '@/stores/class/rubrique/rubriquage';
63
73
  import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';
64
74
  import { useFilterStore } from '@/stores/FilterStore';
65
75
  import { mapState, mapActions } from 'pinia';
66
- import { defineComponent } from 'vue';
76
+ import { defineAsyncComponent, defineComponent } from 'vue';
77
+ const RubriqueChooser = defineAsyncComponent(() => import('../rubriques/RubriqueChooser.vue'));
67
78
  export default defineComponent({
68
79
  name: 'RubriqueList',
69
80
 
70
81
  components:{
71
- Popover
82
+ Popover,
83
+ RubriqueChooser
72
84
  },
73
85
 
74
86
  props: {
@@ -11,19 +11,33 @@
11
11
  </template>
12
12
  <template v-else>
13
13
  <PodcastInlineList
14
- v-for="r in rubriqueDisplay"
14
+ v-for="r in rubriqueToShow"
15
15
  :key="r.rubriqueId"
16
16
  :rubrique-id="rubriqueId.concat(r.rubriqueId)"
17
17
  :title="r.name"
18
18
  :button-text="$t('All podcast button', { name: r.name })"
19
19
  />
20
20
  <PodcastInlineList
21
- v-if="rubriqueDisplay && rubriqueDisplay.length"
21
+ v-if="!tooManyRubrique"
22
22
  :no-rubriquage-id="[rubriqueDisplay[0].rubriquageId]"
23
23
  :rubrique-id="rubriqueId"
24
24
  :title="$t('Without rubric')"
25
25
  :button-text="$t('All podcast button', { name: $t('Without rubric') })"
26
26
  />
27
+ <router-link
28
+ v-else
29
+ :to="{
30
+ name: 'podcasts',
31
+ query: { productor: filterOrgaId,
32
+ iabId: filterIab?.id,
33
+ rubriquesId: this.rubriqueQueryParam },
34
+ }"
35
+ class="btn btn-primary align-self-center width-fit-content mt-5 m-auto"
36
+ >
37
+ {{
38
+ $t('See more')
39
+ }}
40
+ </router-link>
27
41
  </template>
28
42
  </div>
29
43
  </template>
@@ -47,14 +61,30 @@ export default defineComponent({
47
61
  data() {
48
62
  return {
49
63
  rubriqueId: [] as Array<number>,
64
+ rubriqueMaxDisplay: 20 as number,
50
65
  };
51
66
  },
52
67
  computed: {
53
68
  ...mapState(useGeneralStore, ['storedCategories']),
54
69
  ...mapState(useFilterStore, ['filterRubriquage', 'filterOrgaId', 'filterRubrique', 'filterRubriqueDisplay', 'filterIab']),
70
+ rubriqueQueryParam(): string|undefined{
71
+ if(this.filterRubrique?.length){
72
+ return this.filterRubrique.map((value: RubriquageFilter) => value.rubriquageId+':'+value.rubriqueId).join();
73
+ }
74
+ return undefined;
75
+ },
76
+ tooManyRubrique(): boolean{
77
+ return this.rubriqueDisplay && this.rubriqueDisplay.length >this.rubriqueMaxDisplay;
78
+ },
55
79
  rubriqueDisplay(): Array<Rubrique>{
56
80
  return this.filterRubriqueDisplay.filter((rubrique: Rubrique) => 0 !== rubrique.podcastCount );
57
81
  },
82
+ rubriqueToShow(): Array<Rubrique>{
83
+ if(!this.tooManyRubrique){
84
+ return this.rubriqueDisplay ?? [];
85
+ }
86
+ return this.rubriqueDisplay.slice(0, this.rubriqueMaxDisplay);
87
+ },
58
88
  rubriquageFilter(): Array<Rubriquage>{
59
89
  return this.filterOrgaId? this.filterRubriquage :[];
60
90
  },