@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sedoo/unidoo",
3
- "version": "0.1.64",
3
+ "version": "0.1.66",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "build": "npm run build:unidoo && npm run build:auth",
@@ -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