@saooti/octopus-sdk 33.1.1 → 33.1.2
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/README.md +1 -0
- package/index.ts +62 -167
- package/package.json +1 -1
- package/src/App.vue +1 -1
- package/src/assets/bootstrap-diff.scss +0 -1
- package/src/assets/form.scss +0 -4
- package/src/assets/general.scss +0 -51
- package/src/components/display/comments/CommentBasicView.vue +2 -1
- package/src/components/display/comments/CommentInput.vue +1 -1
- package/src/components/display/comments/CommentItem.vue +2 -1
- package/src/components/display/comments/CommentPlayer.vue +1 -1
- package/src/components/display/comments/CommentSection.vue +1 -1
- package/src/components/display/edit/EditCommentBox.vue +1 -1
- package/src/components/display/emission/EmissionInlineList.vue +1 -1
- package/src/components/display/emission/EmissionItem.vue +2 -1
- package/src/components/display/emission/EmissionPlayerItem.vue +2 -1
- package/src/components/display/filter/ProductorSearch.vue +1 -1
- package/src/components/display/live/LiveItem.vue +1 -1
- package/src/components/display/organisation/OrganisationChooser.vue +2 -1
- package/src/components/display/participant/ParticipantItem.vue +2 -1
- package/src/components/display/playlist/PlaylistItem.vue +2 -1
- package/src/components/display/podcasts/PodcastImage.vue +1 -1
- package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
- package/src/components/display/podcasts/PodcastModuleBox.vue +1 -1
- package/src/components/display/podcasts/PodcastPlayBar.vue +1 -1
- package/src/components/display/podcasts/TagList.vue +1 -1
- package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
- package/src/components/display/sharing/ShareButtons.vue +1 -1
- package/src/components/display/sharing/ShareButtonsIntern.vue +1 -1
- package/src/components/display/sharing/ShareDistribution.vue +1 -1
- package/src/components/misc/Footer.vue +1 -1
- package/src/components/misc/LeftMenu.vue +1 -1
- package/src/components/misc/TopBar.vue +2 -2
- package/src/components/misc/modal/ClipboardModal.vue +1 -1
- package/src/components/misc/modal/NewsletterModal.vue +1 -1
- package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
- package/src/components/misc/player/PlayerCompact.vue +1 -1
- package/src/components/misc/player/PlayerLarge.vue +1 -1
- package/src/components/mixins/cookies.ts +21 -0
- package/src/components/mixins/displayMethods.ts +16 -0
- package/src/components/mixins/imageProxy.ts +15 -0
- package/src/components/mixins/init.ts +2 -2
- package/src/components/mixins/organisationFilter.ts +1 -1
- package/src/components/mixins/player/playerLogic.ts +1 -1
- package/src/components/mixins/selenium.ts +7 -0
- package/src/components/mixins/tagOfMixins.ts +1 -1
- package/src/components/pages/Emission.vue +2 -1
- package/src/components/pages/Participant.vue +2 -1
- package/src/components/pages/Playlist.vue +2 -1
- package/src/components/display/sharing/SplitButton.vue +0 -42
- package/src/components/mixins/functions.ts +0 -62
package/README.md
CHANGED
package/index.ts
CHANGED
|
@@ -1,186 +1,81 @@
|
|
|
1
1
|
//Pages
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
export const getLives = () => import("./src/components/pages/Lives.vue");
|
|
3
|
+
export const getPodcast = () => import("./src/components/pages/Podcast.vue");
|
|
4
|
+
export const getPodcasts = () => import("./src/components/pages/Podcasts.vue");
|
|
5
|
+
export const getEmission = () => import("./src/components/pages/Emission.vue");
|
|
6
|
+
export const getEmissions = () => import("./src/components/pages/Emissions.vue");
|
|
7
|
+
export const getPlaylist = () => import("./src/components/pages/Playlist.vue");
|
|
8
|
+
export const getPlaylists = () => import("./src/components/pages/Playlists.vue");
|
|
9
|
+
export const getParticipant = () => import("./src/components/pages/Participant.vue");
|
|
10
|
+
export const getParticipants = () => import("./src/components/pages/Participants.vue");
|
|
11
|
+
export const getSearch = () => import("./src/components/pages/Search.vue");
|
|
12
|
+
export const getHome = () => import("./src/components/pages/Home.vue");
|
|
13
|
+
export const getCategory = () => import("./src/components/pages/Category.vue");
|
|
14
|
+
export const getRubrique = () => import("./src/components/pages/Rubrique.vue");
|
|
15
|
+
export const getError403Page = () => import("./src/components/pages/Error403Page.vue");
|
|
16
|
+
|
|
16
17
|
//Misc
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
export const getFooter = () => import("./src/components/misc/Footer.vue");
|
|
19
|
+
export const getLeftMenu = () => import("./src/components/misc/LeftMenu.vue");
|
|
20
|
+
export const getPlayer = () => import("./src/components/misc/player/Player.vue");
|
|
21
|
+
export const getSnackbar = () => import("./src/components/misc/Snackbar.vue");
|
|
22
|
+
export const getTopBar = () => import("./src/components/misc/TopBar.vue");
|
|
23
|
+
export const getHomeDropdown = () => import("./src/components/misc/HomeDropdown.vue");
|
|
24
|
+
export const getMessageModal = () => import("./src/components/misc/modal/MessageModal.vue");
|
|
25
|
+
export const getErrorMessage = () => import("./src/components/misc/ErrorMessage.vue");
|
|
26
|
+
export const getPopover = () => import("./src/components/misc/Popover.vue");
|
|
27
|
+
|
|
28
|
+
|
|
26
29
|
//Display
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
export const getCategoryChooser = () => import("./src/components/display/categories/CategoryChooser.vue");
|
|
31
|
+
export const getCategoryList = () => import("./src/components/display/categories/CategoryList.vue");
|
|
32
|
+
export const getCategoryFilter = () => import("./src/components/display/categories/CategoryFilter.vue");
|
|
33
|
+
export const getEmissionChooser = () => import("./src/components/display/emission/EmissionChooser.vue");
|
|
34
|
+
export const getEmissionList = () => import("./src/components/display/emission/EmissionList.vue");
|
|
35
|
+
export const getOrganisationChooser = () => import("./src/components/display/organisation/OrganisationChooser.vue");
|
|
36
|
+
export const getPodcastFilterList = () => import("./src/components/display/podcasts/PodcastFilterList.vue");
|
|
37
|
+
export const getPodcastInlineList = () => import("./src/components/display/podcasts/PodcastInlineList.vue");
|
|
38
|
+
export const getPodcastList = () => import("./src/components/display/podcasts/PodcastList.vue");
|
|
39
|
+
export const getShareButtons = () => import("./src/components/display/sharing/ShareButtons.vue");
|
|
40
|
+
export const getEmissionInlineList = () => import("./src/components/display/emission/EmissionInlineList.vue");
|
|
41
|
+
export const getRubriqueChooser = () => import("./src/components/display/rubriques/RubriqueChooser.vue");
|
|
42
|
+
export const getCommentList = () => import("./src/components/display/comments/CommentList.vue");
|
|
43
|
+
export const getCommentInput = () => import("./src/components/display/comments/CommentInput.vue");
|
|
44
|
+
export const getPodcastPlaylistInlineList = () => import("./src/components/display/playlist/PodcastPlaylistInlineList.vue");
|
|
45
|
+
|
|
42
46
|
|
|
43
47
|
//AdvancedSearch
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
export const getAdvancedSearch = () => import("./src/components/display/filter/AdvancedSearch.vue");
|
|
49
|
+
export const getRubriqueFilter = () => import("./src/components/display/filter/RubriqueFilter.vue");
|
|
50
|
+
export const getDateFilter = () => import("./src/components/display/filter/DateFilter.vue");
|
|
51
|
+
export const getSearchOrder = () => import("./src/components/display/filter/SearchOrder.vue");
|
|
48
52
|
|
|
49
53
|
//form
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
export const getClassicSearch = () => import("./src/components/form/ClassicSearch.vue");
|
|
55
|
+
export const getClassicCheckbox = () => import("./src/components/form/ClassicCheckbox.vue");
|
|
56
|
+
export const getClassicRadio = () => import("./src/components/form/ClassicRadio.vue");
|
|
57
|
+
export const getClassicLoading = () => import("./src/components/form/ClassicLoading.vue");
|
|
58
|
+
export const getClassicSelect = () => import("./src/components/form/ClassicSelect.vue");
|
|
59
|
+
export const getPaginate = () => import("./src/components/display/list/Paginate.vue");
|
|
60
|
+
export const getListPaginate = () => import("./src/components/display/list/ListPaginate.vue");
|
|
61
|
+
|
|
57
62
|
|
|
58
63
|
//mixins
|
|
59
|
-
import {selenium} from "./src/components/mixins/functions";
|
|
60
|
-
import {cookies} from "./src/components/mixins/functions";
|
|
61
|
-
import {displayMethods} from "./src/components/mixins/functions";
|
|
62
|
-
import {imageProxy} from "./src/components/mixins/functions";
|
|
63
|
-
import {orgaFilter} from "./src/components/mixins/organisationFilter";
|
|
64
|
-
import {initSDK} from "./src/components/mixins/init";
|
|
65
|
-
import {tagOfMixins} from "./src/components/mixins/tagOfMixins";
|
|
66
64
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Playlists,
|
|
75
|
-
Participant,
|
|
76
|
-
Participants,
|
|
77
|
-
Search,
|
|
78
|
-
Home,
|
|
79
|
-
Category,
|
|
80
|
-
Footer,
|
|
81
|
-
LeftMenu,
|
|
82
|
-
Player,
|
|
83
|
-
TopBar,
|
|
84
|
-
CategoryChooser,
|
|
85
|
-
CategoryList,
|
|
86
|
-
PodcastInlineList,
|
|
87
|
-
EmissionChooser,
|
|
88
|
-
EmissionList,
|
|
89
|
-
/* EmissionItem, */
|
|
90
|
-
OrganisationChooser,
|
|
91
|
-
PodcastFilterList,
|
|
92
|
-
ShareButtons,
|
|
93
|
-
PodcastList,
|
|
94
|
-
EmissionInlineList,
|
|
95
|
-
RubriqueChooser,
|
|
96
|
-
Snackbar,
|
|
97
|
-
selenium,
|
|
98
|
-
cookies,
|
|
99
|
-
MessageModal,
|
|
100
|
-
CommentList,
|
|
101
|
-
CommentInput,
|
|
102
|
-
HomeDropdown,
|
|
103
|
-
ErrorMessage,
|
|
104
|
-
displayMethods,
|
|
105
|
-
imageProxy,
|
|
106
|
-
Rubrique,
|
|
107
|
-
CategoryFilter,
|
|
108
|
-
orgaFilter,
|
|
109
|
-
initSDK,
|
|
110
|
-
Popover,
|
|
111
|
-
tagOfMixins,
|
|
112
|
-
ClassicSearch,
|
|
113
|
-
ClassicCheckbox,
|
|
114
|
-
ClassicRadio,
|
|
115
|
-
ClassicLoading,
|
|
116
|
-
AdvancedSearch,
|
|
117
|
-
PodcastPlaylistInlineList,
|
|
118
|
-
ClassicSelect,
|
|
119
|
-
Error403Page,
|
|
120
|
-
Paginate,
|
|
121
|
-
ListPaginate,
|
|
122
|
-
RubriqueFilter,
|
|
123
|
-
DateFilter,
|
|
124
|
-
SearchOrder
|
|
125
|
-
}
|
|
126
|
-
export default components;
|
|
65
|
+
import selenium from "./src/components/mixins/selenium";
|
|
66
|
+
import cookies from "./src/components/mixins/cookies";
|
|
67
|
+
import displayMethods from "./src/components/mixins/displayMethods";
|
|
68
|
+
import imageProxy from "./src/components/mixins/imageProxy";
|
|
69
|
+
import orgaFilter from "./src/components/mixins/organisationFilter";
|
|
70
|
+
import initSDK from "./src/components/mixins/init";
|
|
71
|
+
import tagOfMixins from "./src/components/mixins/tagOfMixins";
|
|
127
72
|
|
|
128
73
|
export {
|
|
129
|
-
Lives,
|
|
130
|
-
Podcast,
|
|
131
|
-
Podcasts,
|
|
132
|
-
Emission,
|
|
133
|
-
Emissions,
|
|
134
|
-
Playlist,
|
|
135
|
-
Playlists,
|
|
136
|
-
Participant,
|
|
137
|
-
Participants,
|
|
138
|
-
Search,
|
|
139
|
-
Home,
|
|
140
|
-
Category,
|
|
141
|
-
Footer,
|
|
142
|
-
LeftMenu,
|
|
143
|
-
Player,
|
|
144
|
-
TopBar,
|
|
145
|
-
CategoryChooser,
|
|
146
|
-
CategoryList,
|
|
147
|
-
PodcastInlineList,
|
|
148
|
-
EmissionChooser,
|
|
149
|
-
/* EmissionItem, */
|
|
150
|
-
EmissionList,
|
|
151
|
-
OrganisationChooser,
|
|
152
|
-
PodcastFilterList,
|
|
153
|
-
ShareButtons,
|
|
154
|
-
PodcastList,
|
|
155
|
-
EmissionInlineList,
|
|
156
|
-
RubriqueChooser,
|
|
157
|
-
Snackbar,
|
|
158
74
|
selenium,
|
|
159
75
|
cookies,
|
|
160
|
-
MessageModal,
|
|
161
|
-
CommentList,
|
|
162
|
-
CommentInput,
|
|
163
|
-
HomeDropdown,
|
|
164
|
-
ErrorMessage,
|
|
165
76
|
displayMethods,
|
|
166
77
|
imageProxy,
|
|
167
|
-
Rubrique,
|
|
168
|
-
CategoryFilter,
|
|
169
78
|
orgaFilter,
|
|
170
79
|
initSDK,
|
|
171
|
-
|
|
172
|
-
tagOfMixins,
|
|
173
|
-
ClassicSearch,
|
|
174
|
-
ClassicCheckbox,
|
|
175
|
-
ClassicRadio,
|
|
176
|
-
ClassicLoading,
|
|
177
|
-
AdvancedSearch,
|
|
178
|
-
PodcastPlaylistInlineList,
|
|
179
|
-
ClassicSelect,
|
|
180
|
-
Error403Page,
|
|
181
|
-
Paginate,
|
|
182
|
-
ListPaginate,
|
|
183
|
-
RubriqueFilter,
|
|
184
|
-
DateFilter,
|
|
185
|
-
SearchOrder
|
|
80
|
+
tagOfMixins
|
|
186
81
|
};
|
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -28,7 +28,7 @@ import { state } from './store/paramStore';
|
|
|
28
28
|
import { Rubriquage } from './store/class/rubrique/rubriquage';
|
|
29
29
|
import { RubriquageFilter } from './store/class/rubrique/rubriquageFilter';
|
|
30
30
|
import { Rubrique } from './store/class/rubrique/rubrique';
|
|
31
|
-
import
|
|
31
|
+
import initSDK from './components/mixins/init';
|
|
32
32
|
import { defineAsyncComponent, defineComponent } from 'vue'
|
|
33
33
|
import { Category } from './store/class/general/category';
|
|
34
34
|
const LeftMenu = defineAsyncComponent(() => import('@/components/misc/LeftMenu.vue'));
|
package/src/assets/form.scss
CHANGED
|
@@ -40,10 +40,6 @@
|
|
|
40
40
|
max-width: 100%;
|
|
41
41
|
padding: 0.25rem 0.4rem;
|
|
42
42
|
position: relative;
|
|
43
|
-
-webkit-transition: background 0.2s, border 0.2s, color 0.2s, -webkit-box-shadow 0.2s;
|
|
44
|
-
transition: background 0.2s, border 0.2s, color 0.2s, -webkit-box-shadow 0.2s;
|
|
45
|
-
transition: background 0.2s, border 0.2s, box-shadow 0.2s, color 0.2s;
|
|
46
|
-
transition: background 0.2s, border 0.2s, box-shadow 0.2s, color 0.2s, -webkit-box-shadow 0.2s;
|
|
47
43
|
width: 100%;
|
|
48
44
|
}
|
|
49
45
|
|
package/src/assets/general.scss
CHANGED
|
@@ -269,57 +269,6 @@ body{
|
|
|
269
269
|
margin-bottom: 0.2rem;
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
|
-
.btn-split{
|
|
273
|
-
display: inline-block;
|
|
274
|
-
cursor: default;
|
|
275
|
-
padding: 0;
|
|
276
|
-
position: relative;
|
|
277
|
-
text-align: center;
|
|
278
|
-
min-width: 400px;
|
|
279
|
-
@media (max-width: 400px) {
|
|
280
|
-
min-width: auto;
|
|
281
|
-
}
|
|
282
|
-
&:hover, &.mobileHover{
|
|
283
|
-
.label{
|
|
284
|
-
opacity: 0;
|
|
285
|
-
transition: opacity .5s .125s ease-out;
|
|
286
|
-
}
|
|
287
|
-
.btn {
|
|
288
|
-
margin: 0 0.3rem !important;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
.btn{
|
|
292
|
-
transition:
|
|
293
|
-
background-color .5s ease-out,
|
|
294
|
-
border-radius .5s .25s ease-out,
|
|
295
|
-
margin .5s .25s ease-out;
|
|
296
|
-
margin: 0 !important;
|
|
297
|
-
&.first {
|
|
298
|
-
margin-left: 0;
|
|
299
|
-
}
|
|
300
|
-
&.last {
|
|
301
|
-
margin-right: 0;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
.label {
|
|
305
|
-
position: absolute;
|
|
306
|
-
display: flex;
|
|
307
|
-
align-items: center;
|
|
308
|
-
justify-content: center;
|
|
309
|
-
padding: 0.5rem;
|
|
310
|
-
border-radius: 4px;
|
|
311
|
-
font-weight: bold;
|
|
312
|
-
background: $octopus-secondary-color;
|
|
313
|
-
top: 0;
|
|
314
|
-
left: 0;
|
|
315
|
-
right: 0;
|
|
316
|
-
bottom: 0;
|
|
317
|
-
opacity: 1;
|
|
318
|
-
pointer-events: none;
|
|
319
|
-
transition: opacity .5s .75s ease-out;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
272
|
@media (max-width: 960px) {
|
|
324
273
|
.d-flex:not(.flex-column){
|
|
325
274
|
flex-wrap: wrap;
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
</template>
|
|
49
49
|
|
|
50
50
|
<script lang="ts">
|
|
51
|
-
import
|
|
51
|
+
import selenium from '../../mixins/selenium';
|
|
52
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
52
53
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
53
54
|
import moment from 'moment';
|
|
54
55
|
import Popover from '../../misc/Popover.vue';
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<script lang="ts">
|
|
92
92
|
import octopusApi from '@saooti/octopus-api';
|
|
93
93
|
import crudApi from '@/api/classicCrud';
|
|
94
|
-
import
|
|
94
|
+
import cookies from '../../mixins/cookies';
|
|
95
95
|
import { state } from '../../../store/paramStore';
|
|
96
96
|
import { Podcast } from '@/store/class/general/podcast';
|
|
97
97
|
import { Conference } from '@/store/class/conference/conference';
|
|
@@ -130,7 +130,8 @@
|
|
|
130
130
|
|
|
131
131
|
<script lang="ts">
|
|
132
132
|
import { state } from '../../../store/paramStore';
|
|
133
|
-
import
|
|
133
|
+
import selenium from '../../mixins/selenium';
|
|
134
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
134
135
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
135
136
|
import { Podcast } from '@/store/class/general/podcast';
|
|
136
137
|
import { Conference } from '@/store/class/conference/conference';
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
<script lang="ts">
|
|
39
39
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
40
|
-
import
|
|
40
|
+
import selenium from '../../mixins/selenium';
|
|
41
41
|
import { defineComponent } from 'vue'
|
|
42
42
|
export default defineComponent({
|
|
43
43
|
name: 'CommentPlayer',
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<script lang="ts">
|
|
38
38
|
import CommentList from './CommentList.vue';
|
|
39
39
|
import CommentInput from './CommentInput.vue';
|
|
40
|
-
import
|
|
40
|
+
import cookies from '../../mixins/cookies';
|
|
41
41
|
import { Podcast } from '@/store/class/general/podcast';
|
|
42
42
|
import { Conference } from '@/store/class/conference/conference';
|
|
43
43
|
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
</template>
|
|
69
69
|
|
|
70
70
|
<script lang="ts">
|
|
71
|
-
import
|
|
71
|
+
import selenium from '../../mixins/selenium';
|
|
72
72
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
73
73
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
74
74
|
const MessageModal = defineAsyncComponent(
|
|
@@ -68,7 +68,7 @@ import { Emission } from '@/store/class/general/emission';
|
|
|
68
68
|
import { Rubrique } from '@/store/class/rubrique/rubrique';
|
|
69
69
|
import { defineComponent } from 'vue'
|
|
70
70
|
import { AxiosError } from 'axios';
|
|
71
|
-
import
|
|
71
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
72
72
|
import { Rubriquage } from '@/store/class/rubrique/rubriquage';
|
|
73
73
|
export default defineComponent({
|
|
74
74
|
name: 'EmissionInlineList',
|
|
@@ -63,7 +63,8 @@ import { orgaComputed } from '../../mixins/orgaComputed';
|
|
|
63
63
|
import { Emission } from '@/store/class/general/emission';
|
|
64
64
|
import { state } from '../../../store/paramStore';
|
|
65
65
|
import octopusApi from '@saooti/octopus-api';
|
|
66
|
-
import
|
|
66
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
67
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
67
68
|
import { defineComponent } from 'vue'
|
|
68
69
|
import { Podcast } from '@/store/class/general/podcast';
|
|
69
70
|
export default defineComponent({
|
|
@@ -143,7 +143,8 @@ import { Emission } from '@/store/class/general/emission';
|
|
|
143
143
|
import { Podcast } from '@/store/class/general/podcast';
|
|
144
144
|
import { state } from '../../../store/paramStore';
|
|
145
145
|
import PodcastPlayBar from '../podcasts/PodcastPlayBar.vue';
|
|
146
|
-
import
|
|
146
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
147
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
147
148
|
import { defineComponent } from 'vue'
|
|
148
149
|
export default defineComponent({
|
|
149
150
|
name: 'EmissionPlayerItem',
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<script lang="ts">
|
|
43
43
|
import ClassicSearch from '../../form/ClassicSearch.vue';
|
|
44
44
|
import { state } from '../../../store/paramStore';
|
|
45
|
-
import
|
|
45
|
+
import orgaFilter from '../../mixins/organisationFilter';
|
|
46
46
|
import { Organisation } from '@/store/class/general/organisation';
|
|
47
47
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
48
48
|
const OrganisationChooser = defineAsyncComponent(() => import('../organisation/OrganisationChooser.vue'));
|
|
@@ -130,7 +130,7 @@ import crudApi from '@/api/classicCrud';
|
|
|
130
130
|
import moment from 'moment';
|
|
131
131
|
// @ts-ignore
|
|
132
132
|
import humanizeDuration from 'humanize-duration';
|
|
133
|
-
import
|
|
133
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
134
134
|
import { Podcast } from '@/store/class/general/podcast';
|
|
135
135
|
import { Participant } from '@/store/class/general/participant';
|
|
136
136
|
|
|
@@ -109,7 +109,8 @@
|
|
|
109
109
|
</template>
|
|
110
110
|
|
|
111
111
|
<script lang="ts">
|
|
112
|
-
import
|
|
112
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
113
|
+
import selenium from '../../mixins/selenium';
|
|
113
114
|
import { orgaComputed } from '../../mixins/orgaComputed';
|
|
114
115
|
//@ts-ignore
|
|
115
116
|
import VueMultiselect from 'vue-multiselect';
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
import octopusApi from '@saooti/octopus-api';
|
|
58
58
|
import { Participant } from '@/store/class/general/participant';
|
|
59
59
|
import { state } from '../../../store/paramStore';
|
|
60
|
-
import
|
|
60
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
61
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
61
62
|
import { orgaComputed } from '../../mixins/orgaComputed';
|
|
62
63
|
import { defineComponent } from 'vue'
|
|
63
64
|
import { Podcast } from '@/store/class/general/podcast';
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
<script lang="ts">
|
|
62
62
|
import { Playlist } from '@/store/class/general/playlist';
|
|
63
63
|
import { state } from '../../../store/paramStore';
|
|
64
|
-
import
|
|
64
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
65
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
65
66
|
import { defineComponent } from 'vue'
|
|
66
67
|
export default defineComponent({
|
|
67
68
|
name: 'PlaylistItem',
|
|
@@ -91,7 +91,7 @@ import { state } from '../../../store/paramStore';
|
|
|
91
91
|
import {StoreState} from '@/store/classStore/typeAppStore';
|
|
92
92
|
import { Podcast } from '@/store/class/general/podcast';
|
|
93
93
|
import { Conference } from '@/store/class/conference/conference';
|
|
94
|
-
import
|
|
94
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
95
95
|
import { defineComponent } from 'vue'
|
|
96
96
|
export default defineComponent({
|
|
97
97
|
name: 'PodcastImage',
|
|
@@ -55,7 +55,7 @@ import ClassicLoading from '../../form/ClassicLoading.vue';
|
|
|
55
55
|
const PHONE_WIDTH = 960;
|
|
56
56
|
import { state } from '../../../store/paramStore';
|
|
57
57
|
import { Podcast } from '@/store/class/general/podcast';
|
|
58
|
-
import
|
|
58
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
59
59
|
import { defineComponent } from 'vue'
|
|
60
60
|
export default defineComponent({
|
|
61
61
|
name: 'PodcastInlineListClassic',
|
|
@@ -138,7 +138,7 @@ import { state } from '../../../store/paramStore';
|
|
|
138
138
|
import moment from 'moment';
|
|
139
139
|
// @ts-ignore
|
|
140
140
|
import humanizeDuration from 'humanize-duration';
|
|
141
|
-
import
|
|
141
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
142
142
|
import { orgaComputed } from '../../mixins/orgaComputed';
|
|
143
143
|
import { Podcast } from '@/store/class/general/podcast';
|
|
144
144
|
import { Conference } from '@/store/class/conference/conference';
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
<script lang="ts">
|
|
35
35
|
import DurationHelper from '../../../helper/duration';
|
|
36
|
-
import
|
|
36
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
37
37
|
import { state } from '../../../store/paramStore';
|
|
38
38
|
import { defineComponent } from 'vue'
|
|
39
39
|
export default defineComponent({
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
<script lang="ts">
|
|
38
38
|
import Popover from '../../misc/Popover.vue';
|
|
39
|
-
import
|
|
39
|
+
import tagOfMixins from '../../mixins/tagOfMixins';
|
|
40
40
|
import { defineComponent } from 'vue'
|
|
41
41
|
export default defineComponent({
|
|
42
42
|
name: 'TagList',
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
</template>
|
|
68
68
|
|
|
69
69
|
<script lang="ts">
|
|
70
|
-
import
|
|
70
|
+
import selenium from '../../mixins/selenium';
|
|
71
71
|
//@ts-ignore
|
|
72
72
|
import VueMultiselect from 'vue-multiselect';
|
|
73
73
|
import { Rubrique } from '@/store/class/rubrique/rubrique';
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
import { Emission } from '@/store/class/general/emission';
|
|
55
55
|
import { Podcast } from '@/store/class/general/podcast';
|
|
56
56
|
import { state } from '../../../store/paramStore';
|
|
57
|
-
import
|
|
57
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
58
58
|
import Popover from '../../misc/Popover.vue';
|
|
59
59
|
import ShareButtonsIntern from './ShareButtonsIntern.vue';
|
|
60
60
|
import { defineComponent } from 'vue';
|
|
@@ -89,7 +89,7 @@ import { Emission } from '@/store/class/general/emission';
|
|
|
89
89
|
import { Podcast } from '@/store/class/general/podcast';
|
|
90
90
|
import { state } from '../../../store/paramStore';
|
|
91
91
|
import Snackbar from '../../misc/Snackbar.vue';
|
|
92
|
-
import
|
|
92
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
93
93
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
94
94
|
import { Playlist } from '@/store/class/general/playlist';
|
|
95
95
|
const ClipboardModal = defineAsyncComponent(() => import('../../misc/modal/ClipboardModal.vue'));
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
import { state } from '../../../store/paramStore';
|
|
38
38
|
import octopusApi from '@saooti/octopus-api';
|
|
39
39
|
import Snackbar from '../../misc/Snackbar.vue';
|
|
40
|
-
import
|
|
40
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
41
41
|
import { Emission } from '@/store/class/general/emission';
|
|
42
42
|
|
|
43
43
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
</template>
|
|
93
93
|
|
|
94
94
|
<script lang="ts">
|
|
95
|
-
import
|
|
95
|
+
import cookies from '../mixins/cookies';
|
|
96
96
|
import ClassicSelect from '../form/ClassicSelect.vue';
|
|
97
97
|
import Player from './player/Player.vue';
|
|
98
98
|
import { state } from '../../store/paramStore';
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
|
|
48
48
|
<script lang="ts">
|
|
49
49
|
import { state } from '../../store/paramStore';
|
|
50
|
-
import
|
|
50
|
+
import orgaFilter from '../mixins/organisationFilter';
|
|
51
51
|
import { Category } from '@/store/class/general/category';
|
|
52
52
|
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
53
53
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
import { state } from '../../store/paramStore';
|
|
75
75
|
import HomeDropdown from './HomeDropdown.vue';
|
|
76
76
|
import { Organisation } from '@/store/class/general/organisation';
|
|
77
|
-
import
|
|
78
|
-
import
|
|
77
|
+
import orgaFilter from '../mixins/organisationFilter';
|
|
78
|
+
import imageProxy from '../mixins/imageProxy';
|
|
79
79
|
import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
|
|
80
80
|
import { defineComponent,defineAsyncComponent } from 'vue';
|
|
81
81
|
const OrganisationChooserLight = defineAsyncComponent(() => import('../display/organisation/OrganisationChooserLight.vue'));
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
<script lang="ts">
|
|
41
41
|
import { Emission } from '@/store/class/general/emission';
|
|
42
|
-
import
|
|
42
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
43
43
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
44
44
|
import { state } from '../../../store/paramStore';
|
|
45
45
|
const RssSection = defineAsyncComponent(() => import('@/components/display/aggregator/RssSection.vue'));
|
|
@@ -105,7 +105,7 @@ import moment from 'moment';
|
|
|
105
105
|
import VSwatches from 'vue3-swatches';
|
|
106
106
|
// @ts-ignore
|
|
107
107
|
import humanizeDuration from 'humanize-duration';
|
|
108
|
-
import
|
|
108
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
109
109
|
import { Participant } from '@/store/class/general/participant';
|
|
110
110
|
import { Podcast } from '@/store/class/general/podcast';
|
|
111
111
|
import { state } from '../../../store/paramStore';
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
|
|
95
95
|
<script lang="ts">
|
|
96
96
|
import Snackbar from '../Snackbar.vue';
|
|
97
|
-
import
|
|
97
|
+
import displayMethods from '../../mixins/displayMethods';
|
|
98
98
|
|
|
99
99
|
import QrCode from '../../display/sharing/QrCode.vue';
|
|
100
100
|
import { defineComponent } from 'vue'
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
<script lang="ts">
|
|
78
78
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
79
79
|
import { playerDisplay } from '../../mixins/player/playerDisplay';
|
|
80
|
-
import
|
|
80
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
81
81
|
import PlayerProgressBar from './PlayerProgressBar.vue';
|
|
82
82
|
import PlayerTimeline from './PlayerTimeline.vue';
|
|
83
83
|
import { defineComponent } from 'vue';
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
</template>
|
|
84
84
|
<script lang="ts">
|
|
85
85
|
import { playerDisplay } from '../../mixins/player/playerDisplay';
|
|
86
|
-
import
|
|
86
|
+
import imageProxy from '../../mixins/imageProxy';
|
|
87
87
|
import PlayerProgressBar from './PlayerProgressBar.vue';
|
|
88
88
|
import PlayerTimeline from './PlayerTimeline.vue';
|
|
89
89
|
import { defineComponent } from 'vue';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export default{
|
|
2
|
+
methods: {
|
|
3
|
+
setCookie(name: string, value: string, domain= ""): void {
|
|
4
|
+
const date = new Date();
|
|
5
|
+
date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
|
|
6
|
+
const expires = '; expires=' + date.toUTCString();
|
|
7
|
+
document.cookie = name + '=' + (value || '') + expires +domain+ '; path=/';
|
|
8
|
+
},
|
|
9
|
+
getCookie(name: string): string|null {
|
|
10
|
+
const nameEQ = name + '=';
|
|
11
|
+
const ca = document.cookie.split(';');
|
|
12
|
+
for (let cookieValue of ca) {
|
|
13
|
+
let c = cookieValue;
|
|
14
|
+
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
|
|
15
|
+
if (0 === c.indexOf(nameEQ))
|
|
16
|
+
return c.substring(nameEQ.length, c.length);
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
export default{
|
|
3
|
+
methods: {
|
|
4
|
+
urlify(text: string): string {
|
|
5
|
+
const urlRegex = /(https?:\/\/[^\s<]+)/g;
|
|
6
|
+
if (!text) return '';
|
|
7
|
+
return text.replace(urlRegex, (url: string) => {
|
|
8
|
+
return '<a href="' + url + '" target="_blank" rel="noopener">' + url + '</a>';
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
async onCopyCode(link: string, callback: () => void): Promise<void> {
|
|
12
|
+
await navigator.clipboard.writeText(link);
|
|
13
|
+
return callback();
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { state } from '../../store/paramStore';
|
|
2
|
+
export default {
|
|
3
|
+
methods: {
|
|
4
|
+
proxyImageUrl(url:string, width:string, height?:string): string{
|
|
5
|
+
if(!url){
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
if(state.octopusApi.imageUrl && url.includes('http')){
|
|
9
|
+
const size = height ? "height="+height:"width="+width;
|
|
10
|
+
return state.octopusApi.imageUrl+"image/"+btoa(url)+"?"+size+"&useWebp=true";
|
|
11
|
+
}
|
|
12
|
+
return url;
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
import { Category } from "@/store/class/general/category";
|
|
3
|
-
import
|
|
3
|
+
import orgaFilter from '../mixins/organisationFilter';
|
|
4
4
|
import octopusApi from '@saooti/octopus-api';
|
|
5
5
|
import { state } from '../../store/paramStore';
|
|
6
6
|
import { defineComponent } from 'vue';
|
|
7
|
-
export
|
|
7
|
+
export default defineComponent({
|
|
8
8
|
mixins: [orgaFilter],
|
|
9
9
|
methods: {
|
|
10
10
|
async initSdk() {
|
|
@@ -5,7 +5,7 @@ import octopusApi from '@saooti/octopus-api';
|
|
|
5
5
|
import { defineComponent } from 'vue'
|
|
6
6
|
import { AxiosError } from 'axios';
|
|
7
7
|
import { Organisation } from '@/store/class/general/organisation';
|
|
8
|
-
export
|
|
8
|
+
export default defineComponent({
|
|
9
9
|
mixins: [handle403],
|
|
10
10
|
methods: {
|
|
11
11
|
async selectOrganisation(organisationId: string): Promise<void> {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mapState } from 'vuex';
|
|
2
2
|
import octopusApi from '@saooti/octopus-api';
|
|
3
3
|
import { CommentPodcast } from '@/store/class/general/comment';
|
|
4
|
-
import
|
|
4
|
+
import cookies from '../selenium';
|
|
5
5
|
import { playerLive } from './playerLive';
|
|
6
6
|
import { playerComment } from './playerComment';
|
|
7
7
|
import { defineComponent } from 'vue';
|
|
@@ -81,7 +81,8 @@
|
|
|
81
81
|
<script lang="ts">
|
|
82
82
|
import octopusApi from '@saooti/octopus-api';
|
|
83
83
|
import { state } from '../../store/paramStore';
|
|
84
|
-
import
|
|
84
|
+
import displayMethods from '../mixins/displayMethods';
|
|
85
|
+
import imageProxy from '../mixins/imageProxy';
|
|
85
86
|
import { orgaComputed } from '../mixins/orgaComputed';
|
|
86
87
|
import { handle403 } from '../mixins/handle403';
|
|
87
88
|
import { Emission } from '@/store/class/general/emission';
|
|
@@ -63,7 +63,8 @@
|
|
|
63
63
|
<script lang="ts">
|
|
64
64
|
import octopusApi from '@saooti/octopus-api';
|
|
65
65
|
import { state } from '../../store/paramStore';
|
|
66
|
-
import
|
|
66
|
+
import displayMethods from '../mixins/displayMethods';
|
|
67
|
+
import imageProxy from '../mixins/imageProxy';
|
|
67
68
|
import { orgaComputed } from '../mixins/orgaComputed';
|
|
68
69
|
import { handle403 } from '../mixins/handle403';
|
|
69
70
|
import { Participant } from '@/store/class/general/participant';
|
|
@@ -55,7 +55,8 @@ import ClassicLoading from '../form/ClassicLoading.vue';
|
|
|
55
55
|
import PodcastList from '../display/playlist/PodcastList.vue';
|
|
56
56
|
import octopusApi from '@saooti/octopus-api';
|
|
57
57
|
import { state } from '../../store/paramStore';
|
|
58
|
-
import
|
|
58
|
+
import displayMethods from '../mixins/displayMethods';
|
|
59
|
+
import imageProxy from '../mixins/imageProxy';
|
|
59
60
|
import { handle403 } from '../mixins/handle403';
|
|
60
61
|
import { Playlist } from '@/store/class/general/playlist';
|
|
61
62
|
import { defineComponent, defineAsyncComponent } from 'vue';
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="btn-split"
|
|
4
|
-
@mouseleave="mobileHoverEffect=false"
|
|
5
|
-
>
|
|
6
|
-
<div class="d-flex flex-wrap">
|
|
7
|
-
<slot name="inside-button" />
|
|
8
|
-
</div>
|
|
9
|
-
<div class="label">
|
|
10
|
-
{{ title }}
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
</template>
|
|
14
|
-
|
|
15
|
-
<script lang="ts">
|
|
16
|
-
import { defineComponent } from 'vue';
|
|
17
|
-
export default defineComponent({
|
|
18
|
-
props: {
|
|
19
|
-
title: { default: '', type:String},
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
data() {
|
|
23
|
-
return {
|
|
24
|
-
mobileHoverEffect:false as boolean,
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
computed:{
|
|
28
|
-
isMobile(): boolean {
|
|
29
|
-
return window.matchMedia('(hover: none)').matches;
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
methods: {
|
|
34
|
-
linkClick(event: { preventDefault: () => void; }){
|
|
35
|
-
if(this.isMobile && !this.mobileHoverEffect){
|
|
36
|
-
this.mobileHoverEffect = true;
|
|
37
|
-
event.preventDefault();
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
})
|
|
42
|
-
</script>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { state } from '../../store/paramStore';
|
|
2
|
-
|
|
3
|
-
export const selenium ={
|
|
4
|
-
methods: {
|
|
5
|
-
seleniumFormat(string: string): string {
|
|
6
|
-
return string.toLowerCase().replace(/\s/g, '');
|
|
7
|
-
},
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
export const imageProxy ={
|
|
11
|
-
methods: {
|
|
12
|
-
proxyImageUrl(url:string, width:string, height?:string): string{
|
|
13
|
-
if(!url){
|
|
14
|
-
return "";
|
|
15
|
-
}
|
|
16
|
-
if(state.octopusApi.imageUrl && url.includes('http')){
|
|
17
|
-
const size = height ? "height="+height:"width="+width;
|
|
18
|
-
return state.octopusApi.imageUrl+"image/"+btoa(url)+"?"+size+"&useWebp=true";
|
|
19
|
-
}
|
|
20
|
-
return url;
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
export const cookies =
|
|
25
|
-
{
|
|
26
|
-
methods: {
|
|
27
|
-
setCookie(name: string, value: string, domain= ""): void {
|
|
28
|
-
const date = new Date();
|
|
29
|
-
date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
|
|
30
|
-
const expires = '; expires=' + date.toUTCString();
|
|
31
|
-
document.cookie = name + '=' + (value || '') + expires +domain+ '; path=/';
|
|
32
|
-
},
|
|
33
|
-
getCookie(name: string): string|null {
|
|
34
|
-
const nameEQ = name + '=';
|
|
35
|
-
const ca = document.cookie.split(';');
|
|
36
|
-
for (let cookieValue of ca) {
|
|
37
|
-
let c = cookieValue;
|
|
38
|
-
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
|
|
39
|
-
if (0 === c.indexOf(nameEQ))
|
|
40
|
-
return c.substring(nameEQ.length, c.length);
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export const displayMethods ={
|
|
48
|
-
methods: {
|
|
49
|
-
urlify(text: string): string {
|
|
50
|
-
const urlRegex = /(https?:\/\/[^\s<]+)/g;
|
|
51
|
-
if (!text) return '';
|
|
52
|
-
return text.replace(urlRegex, (url: string) => {
|
|
53
|
-
return '<a href="' + url + '" target="_blank" rel="noopener">' + url + '</a>';
|
|
54
|
-
});
|
|
55
|
-
},
|
|
56
|
-
async onCopyCode(link: string, callback: () => void): Promise<void> {
|
|
57
|
-
await navigator.clipboard.writeText(link);
|
|
58
|
-
return callback();
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
|