@sedoo/unidoo 0.1.64 → 0.1.66
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/dist/unidoo/unidoo.common.js +5 -5
- package/dist/unidoo/unidoo.umd.js +5 -5
- package/dist/unidoo/unidoo.umd.min.js +5 -5
- package/package.json +1 -1
- package/src/components/UnidooConfirmDialog.vue +1 -1
- package/src/components/unidoo-player/UnidooPlayer.vue +6 -0
- package/src/components/unidoo-player/unidoo-player-layout/ThumbnailEntries.vue +59 -0
- package/src/components/unidoo-player/unidoo-player-layout/UnidooPlayerLayout.vue +18 -0
- package/src/components/unidoo-player/unidoo-simple-player/UnidooSimplePlayer.vue +7 -0
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-dialog v-model="confirmDialog" persistent :width="width">
|
|
2
|
+
<v-dialog v-model="confirmDialog" persistent :width="width" @keydown.enter="confirm">
|
|
3
3
|
<v-card>
|
|
4
4
|
<v-card-title :class="titleClasses">{{title}}</v-card-title>
|
|
5
5
|
<v-card-text>{{message}}</v-card-text>
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
class="constrained"
|
|
16
16
|
:label="label"
|
|
17
17
|
:entries="entries"
|
|
18
|
+
:displayThumbnails="displayThumbnails"
|
|
18
19
|
>
|
|
19
20
|
|
|
20
21
|
<template v-slot:customField>
|
|
@@ -69,6 +70,11 @@ export default {
|
|
|
69
70
|
isLoading: {
|
|
70
71
|
type: Boolean,
|
|
71
72
|
default: false
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
displayThumbnails: {
|
|
76
|
+
type: Boolean,
|
|
77
|
+
default: false
|
|
72
78
|
}
|
|
73
79
|
},
|
|
74
80
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container class="d-flex justify-start flex-wrap">
|
|
3
|
+
<v-img
|
|
4
|
+
class="thumbnail ma-1"
|
|
5
|
+
:style="selected === index ? activeStyle : ''"
|
|
6
|
+
v-for="(link, index) in links"
|
|
7
|
+
:lazy-src="link"
|
|
8
|
+
:src="link"
|
|
9
|
+
:key="link"
|
|
10
|
+
:max-width="100"
|
|
11
|
+
contain
|
|
12
|
+
@click="select(index)"
|
|
13
|
+
></v-img>
|
|
14
|
+
</v-container>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script>
|
|
18
|
+
export default {
|
|
19
|
+
name: "thumbnail-entries",
|
|
20
|
+
props: {
|
|
21
|
+
entries: { type: Array, required: true },
|
|
22
|
+
value: { type: Number, default: 0 }
|
|
23
|
+
},
|
|
24
|
+
data() {
|
|
25
|
+
return {
|
|
26
|
+
selected: null,
|
|
27
|
+
activeStyle: "border: 3px solid black; border-radius: 3px;"
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
created() {
|
|
31
|
+
this.selected = this.value;
|
|
32
|
+
},
|
|
33
|
+
computed: {
|
|
34
|
+
links() {
|
|
35
|
+
return this.entries.map((entry) => entry.media.content);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
watch: {
|
|
39
|
+
value(val) {
|
|
40
|
+
this.selected = val;
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
select(link) {
|
|
45
|
+
this.selected = link;
|
|
46
|
+
this.$emit("select", link);
|
|
47
|
+
},
|
|
48
|
+
isActive(index) {
|
|
49
|
+
return this.selected === index;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<style scoped>
|
|
56
|
+
.thumbnail {
|
|
57
|
+
cursor: pointer;
|
|
58
|
+
}
|
|
59
|
+
</style>
|
|
@@ -111,6 +111,12 @@
|
|
|
111
111
|
<v-divider style="order: 5;"></v-divider>
|
|
112
112
|
</div>
|
|
113
113
|
</div>
|
|
114
|
+
<thumbnail-entries
|
|
115
|
+
v-if="displayThumbnails"
|
|
116
|
+
:value.sync="value"
|
|
117
|
+
:entries="entries"
|
|
118
|
+
@select="updateFromThumbnail"
|
|
119
|
+
></thumbnail-entries>
|
|
114
120
|
</div>
|
|
115
121
|
</div>
|
|
116
122
|
|
|
@@ -118,9 +124,14 @@
|
|
|
118
124
|
|
|
119
125
|
<script>
|
|
120
126
|
import Vue from 'vue'
|
|
127
|
+
import ThumbnailEntries from "./ThumbnailEntries.vue";
|
|
121
128
|
|
|
122
129
|
export default {
|
|
123
130
|
|
|
131
|
+
components: {
|
|
132
|
+
ThumbnailEntries
|
|
133
|
+
},
|
|
134
|
+
|
|
124
135
|
props: {
|
|
125
136
|
frequency: { type: Number, default: 1000 },
|
|
126
137
|
min: { type: Number, default: 0 },
|
|
@@ -133,6 +144,8 @@ export default {
|
|
|
133
144
|
progressBarTitle: { type: String, default: 'Loading image' },
|
|
134
145
|
clickableFrame: { type: Boolean, default: true },
|
|
135
146
|
playerBarTop: { type: Boolean, default: true },
|
|
147
|
+
entries: { type: Array, default: null },
|
|
148
|
+
displayThumbnails: { type: Boolean, default: false }
|
|
136
149
|
},
|
|
137
150
|
|
|
138
151
|
data: () => ({
|
|
@@ -321,6 +334,11 @@ export default {
|
|
|
321
334
|
this.clickedValue = this.value;
|
|
322
335
|
},
|
|
323
336
|
|
|
337
|
+
updateFromThumbnail(index) {
|
|
338
|
+
this.value = index;
|
|
339
|
+
this.playOrStopSlider();
|
|
340
|
+
},
|
|
341
|
+
|
|
324
342
|
reinit() {
|
|
325
343
|
this.value = this.min;
|
|
326
344
|
this.stop();
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
:graduation="graduation"
|
|
11
11
|
:frequency="300"
|
|
12
12
|
:loadedFrames="loadedFrames"
|
|
13
|
+
:entries="entries"
|
|
14
|
+
:displayThumbnails="displayThumbnails"
|
|
13
15
|
@reload-frames="refreshPreload(loadIndex)"
|
|
14
16
|
progressBarTitle="Loading image"
|
|
15
17
|
>
|
|
@@ -62,6 +64,11 @@ export default {
|
|
|
62
64
|
entries: {
|
|
63
65
|
type: Array,
|
|
64
66
|
default: () => null
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
displayThumbnails: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: false
|
|
65
72
|
}
|
|
66
73
|
},
|
|
67
74
|
|