diff --git a/package-lock.json b/package-lock.json index c93674b..46157d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2695,6 +2695,11 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, + "blueimp-gallery": { + "version": "2.44.0", + "resolved": "https://registry.npmjs.org/blueimp-gallery/-/blueimp-gallery-2.44.0.tgz", + "integrity": "sha512-msLsEV/7hpOokS/MimNbbrIv1lFnNe/45HeLJUvHUfuJklbPRiodXYSBs0Ibwe05un5bFRryQmmzhUZBiFaZmg==" + }, "bn.js": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", @@ -7566,6 +7571,11 @@ "is-wsl": "^1.1.0" } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + }, "opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -10640,6 +10650,15 @@ "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.5.tgz", "integrity": "sha512-0CSftHY0bDTD+4FbYkuFf6+iKDjZ4h2in2YYJDRMk5daZIjrgT9LjFHvP7Rzqy9/s1pij3zDtTSLRUjsPWMwqg==" }, + "vue-gallery": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vue-gallery/-/vue-gallery-2.0.1.tgz", + "integrity": "sha512-e6PADJlb4tcrPP7rmkYHDZI7KeDW//CIYRt7ZtcEvbc9eg0msyW/s9K+ZIWzSUyujnhKroePq/wQuh6BvXbxLA==", + "requires": { + "blueimp-gallery": "^2.33.0", + "opencollective-postinstall": "^2.0.2" + } + }, "vue-hot-reload-api": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", diff --git a/package.json b/package.json index 46b1822..43b3ecd 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "lottie-vuejs": "^0.3.7", "vue": "^2.6.11", "vue-class-component": "^7.2.3", + "vue-gallery": "^2.0.1", "vue-property-decorator": "^8.4.2", "vue-router": "^3.2.0", "vuescroll": "^4.16.1", diff --git a/src/components/Photo.vue b/src/components/Photo.vue index 61bf070..492da4d 100644 --- a/src/components/Photo.vue +++ b/src/components/Photo.vue @@ -2,7 +2,8 @@
+ ref="element" + @click="onClick">
@@ -49,6 +50,10 @@ export default class Photo extends Vue { } } + onClick() { + this.$emit('clickPhoto', this.album.files.indexOf(this.file)); + } + mounted() { this.updateHeight(); } diff --git a/src/views/Album.vue b/src/views/Album.vue index a26ad48..7cd81f2 100644 --- a/src/views/Album.vue +++ b/src/views/Album.vue @@ -6,15 +6,25 @@ :picture="picture">
- +
+ + Next + @@ -112,3 +138,11 @@ export default class AlbumPage extends Vue { flex-wrap: wrap; } + + diff --git a/tsconfig.json b/tsconfig.json index 8c93ef5..a584ce9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,7 +25,10 @@ "dom", "dom.iterable", "scripthost" - ] + ], + "typeRoots": [ + "src/types" + ], }, "include": [ "src/**/*.ts",