diff --git a/package-lock.json b/package-lock.json
index 3e46af67..449348b9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "privacy.sexy",
- "version": "0.1.0",
+ "version": "0.4.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -9792,6 +9792,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.14.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz",
@@ -12164,6 +12169,14 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true
},
+ "vue-js-modal": {
+ "version": "2.0.0-rc.3",
+ "resolved": "https://registry.npmjs.org/vue-js-modal/-/vue-js-modal-2.0.0-rc.3.tgz",
+ "integrity": "sha512-Q9L9FsIUMuzCKSuB41D8LxV+Yc2q+zWHzzUdWaQ2KeHPS+78+X6AAnBztVoophbjt8UXHO7rQSRgER1MMw5qsw==",
+ "requires": {
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
"vue-loader": {
"version": "15.8.3",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.8.3.tgz",
diff --git a/package.json b/package.json
index 162804b4..d6be338c 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"v-tooltip": "^2.0.2",
"vue": "^2.6.11",
"vue-class-component": "^7.1.0",
+ "vue-js-modal": "^2.0.0-rc.3",
"vue-property-decorator": "^8.3.0"
},
"devDependencies": {
diff --git a/src/App.vue b/src/App.vue
index 6f7a6cdd..6f1589ee 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -5,7 +5,7 @@
-
+
@@ -67,6 +67,10 @@ body {
.row {
margin-bottom: 10px;
}
+
+ .code-buttons {
+ padding-bottom: 10px;
+ }
}
}
diff --git a/src/presentation/Bootstrapping/ApplicationBootstrapper.ts b/src/presentation/Bootstrapping/ApplicationBootstrapper.ts
index e566b4f1..cd5b7aeb 100644
--- a/src/presentation/Bootstrapping/ApplicationBootstrapper.ts
+++ b/src/presentation/Bootstrapping/ApplicationBootstrapper.ts
@@ -1,3 +1,4 @@
+import { VModalBootstrapper } from './Modules/VModalBootstrapper';
import { TreeBootstrapper } from './Modules/TreeBootstrapper';
import { IconBootstrapper } from './Modules/IconBootstrapper';
import { VueConstructor, IVueBootstrapper } from './IVueBootstrapper';
@@ -19,6 +20,7 @@ export class ApplicationBootstrapper implements IVueBootstrapper {
new TreeBootstrapper(),
new VueBootstrapper(),
new TooltipBootstrapper(),
+ new VModalBootstrapper(),
];
}
}
diff --git a/src/presentation/Bootstrapping/Modules/VModalBootstrapper.ts b/src/presentation/Bootstrapping/Modules/VModalBootstrapper.ts
new file mode 100644
index 00000000..ba5b73c1
--- /dev/null
+++ b/src/presentation/Bootstrapping/Modules/VModalBootstrapper.ts
@@ -0,0 +1,8 @@
+import VModal from 'vue-js-modal';
+import { VueConstructor, IVueBootstrapper } from './../IVueBootstrapper';
+
+export class VModalBootstrapper implements IVueBootstrapper {
+ public bootstrap(vue: VueConstructor): void {
+ vue.use(VModal, { dynamic: true, injectModalsContainer: true });
+ }
+}
diff --git a/src/presentation/TheFooter.vue b/src/presentation/TheFooter.vue
index ec0a0ca8..087a6fab 100644
--- a/src/presentation/TheFooter.vue
+++ b/src/presentation/TheFooter.vue
@@ -1,20 +1,41 @@
-