diff --git a/package-lock.json b/package-lock.json
index 655538c4..a3dd6db2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15185,6 +15185,11 @@
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"resolve": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
@@ -18362,6 +18367,14 @@
"integrity": "sha512-JNgiEJ5a8YPfk5y2lKyfOAGLmkpAVfhaUi+T4wGpSppRYZ3XSyawSDDketY5KV2CsAiBLAGEIO6jO+0l2hQubg==",
"dev": true
},
+ "vue-js-modal": {
+ "version": "2.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/vue-js-modal/-/vue-js-modal-2.0.0-rc.6.tgz",
+ "integrity": "sha512-bJOm7Yhrl0ur/QyXjoC3gMMmE7UxiVEcS2rl8v9iPXIe9QLvjiCSZElSOvvyps8LNuG1X0rPifZGxI/CWKCFaw==",
+ "requires": {
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
"vue-loader": {
"version": "15.9.3",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz",
diff --git a/src/.vuepress/theme/components/base/Transitions.vue b/src/.vuepress/theme/components/base/Transitions.vue
index f55dea0d..6e393765 100644
--- a/src/.vuepress/theme/components/base/Transitions.vue
+++ b/src/.vuepress/theme/components/base/Transitions.vue
@@ -10,7 +10,9 @@
@leave="leave"
@after-leave="afterLeave"
>
-
+
+
+
@@ -34,6 +36,10 @@ export default {
type: Boolean,
default: false,
},
+ withKey: {
+ type: String,
+ default: null,
+ },
beforeEnter: Func,
enter: Func,
afterEnter: Func,
diff --git a/src/.vuepress/theme/components/blog/Card.vue b/src/.vuepress/theme/components/blog/Card.vue
index 9d2e8a91..1cae8a0a 100644
--- a/src/.vuepress/theme/components/blog/Card.vue
+++ b/src/.vuepress/theme/components/blog/Card.vue
@@ -1,17 +1,23 @@
-
+
diff --git a/src/.vuepress/theme/components/blog/VideoCard.vue b/src/.vuepress/theme/components/blog/VideoCard.vue
new file mode 100644
index 00000000..84d43b0d
--- /dev/null
+++ b/src/.vuepress/theme/components/blog/VideoCard.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
diff --git a/src/.vuepress/theme/components/blog/VideoModal.vue b/src/.vuepress/theme/components/blog/VideoModal.vue
new file mode 100644
index 00000000..cc5c29e9
--- /dev/null
+++ b/src/.vuepress/theme/components/blog/VideoModal.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/.vuepress/theme/components/blog/VideoModalContent.vue b/src/.vuepress/theme/components/blog/VideoModalContent.vue
new file mode 100644
index 00000000..6cc00ef6
--- /dev/null
+++ b/src/.vuepress/theme/components/blog/VideoModalContent.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+ {{ videoModalCard.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/.vuepress/theme/layouts/Blog.vue b/src/.vuepress/theme/layouts/Blog.vue
index d475588a..72481e5d 100644
--- a/src/.vuepress/theme/layouts/Blog.vue
+++ b/src/.vuepress/theme/layouts/Blog.vue
@@ -31,6 +31,7 @@
:key="page.key"
class="mb-4"
:card="page"
+ :open-video-modal="openVideoModal"
all
/>
@@ -55,6 +56,7 @@
v-observe-visibility="handleBottomVisibilityChange"
>
+
@@ -64,6 +66,7 @@ import { mapState } from 'vuex'
import Layout from '@theme/layouts/Layout.vue'
import Card from '@theme/components/blog/Card'
+import VideoModal from '@theme/components/blog/VideoModal'
import SortAndFilter from '@theme/components/blog/SortAndFilter'
import Breadcrumbs from '@theme/components/Breadcrumbs'
import LanguageSelector from '@theme/components/base/LanguageSelector'
@@ -88,6 +91,7 @@ export default {
Breadcrumbs,
SortAndFilter,
LanguageSelector,
+ VideoModal,
},
data: function () {
return {
@@ -108,6 +112,7 @@ export default {
'activeTags',
'searchedText',
'activeAuthor',
+ 'videoModalCard',
]),
tags() {
return getTags(this.publicPages)
@@ -236,6 +241,9 @@ export default {
this.current < this.delayValues.length - 1 ? this.current : -1
return this.delayValues[++this.current]
},
+ openVideoModal: function () {
+ this.$refs.videoModal.openModal()
+ },
},
}
diff --git a/src/.vuepress/theme/layouts/GlobalLayout.vue b/src/.vuepress/theme/layouts/GlobalLayout.vue
index 474b257a..6dc6677a 100644
--- a/src/.vuepress/theme/layouts/GlobalLayout.vue
+++ b/src/.vuepress/theme/layouts/GlobalLayout.vue
@@ -2,7 +2,7 @@
-
+
diff --git a/src/.vuepress/theme/layouts/Layout.vue b/src/.vuepress/theme/layouts/Layout.vue
index 0e1fb31f..137c6b81 100644
--- a/src/.vuepress/theme/layouts/Layout.vue
+++ b/src/.vuepress/theme/layouts/Layout.vue
@@ -1,5 +1,5 @@
-
+
-
+