diff --git a/package-lock.json b/package-lock.json index 655538c4..060d071e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4850,6 +4850,11 @@ } } }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, "clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -6782,6 +6787,11 @@ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", "dev": true }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -7430,6 +7440,11 @@ } } }, + "easy-bem": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.0.2.tgz", + "integrity": "sha512-tHtLDhcEHZIMKdiiZElQoR8TcZ/6rvcNp7//93Vx/mqNLah9BOFGhhzTUfWLJs7uxZiKMdP/KzGOtzq14DrrqQ==" + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -18311,6 +18326,16 @@ "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", "dev": true }, + "vue-advanced-cropper": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vue-advanced-cropper/-/vue-advanced-cropper-1.3.0.tgz", + "integrity": "sha512-KALBnQVfiIr98uNqhbpJq5yOGxANOuTC0wsJx9SCvw6k1MAp8Nv8b4Qi8rJ8AXqS5OQ4451XDyLsr0jemYjWkw==", + "requires": { + "classnames": "^2.2.6", + "debounce": "^1.2.0", + "easy-bem": "^1.0.2" + } + }, "vue-class-component": { "version": "7.2.6", "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz", diff --git a/package.json b/package.json index f0bc7644..bf8fd12b 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "tailwindcss-typography": "^3.1.0", "v-lazy-image": "^1.4.0", "v-scroll-lock": "^1.3.1", + "vue-advanced-cropper": "^1.3.0", "vue-mq": "^1.0.1", "vue-multiselect": "^2.1.6", "vue-observe-visibility": "^0.4.6", diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 932041f9..8610a2c3 100644 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -140,7 +140,6 @@ module.exports = { { normalSuffix: '/', indexSuffix: '/', - notFoundPath: '/404/', }, ], [ diff --git a/src/.vuepress/theme/enhanceApp.js b/src/.vuepress/theme/enhanceApp.js index db18e887..4a2a8bec 100644 --- a/src/.vuepress/theme/enhanceApp.js +++ b/src/.vuepress/theme/enhanceApp.js @@ -6,10 +6,13 @@ import VueMq from 'vue-mq' import { VLazyImagePlugin } from 'v-lazy-image' import VueObserveVisibility from 'vue-observe-visibility' import VueSocialSharing from 'vue-social-sharing' +import ImageCrop from '@theme/layouts/ImageCrop' import Transition from '@theme/components/directives/Transition.js' export default ({ Vue, router, siteData }) => { + router.addRoutes([{ path: '/image-crop', component: ImageCrop }]) + const { breakpoints } = siteData.themeConfig /** diff --git a/src/.vuepress/theme/layouts/Blog.vue b/src/.vuepress/theme/layouts/Blog.vue index 77ab509b..a3327c6c 100644 --- a/src/.vuepress/theme/layouts/Blog.vue +++ b/src/.vuepress/theme/layouts/Blog.vue @@ -44,17 +44,6 @@ Load More - diff --git a/src/.vuepress/theme/layouts/ImageCrop.vue b/src/.vuepress/theme/layouts/ImageCrop.vue new file mode 100644 index 00000000..a1c7a13e --- /dev/null +++ b/src/.vuepress/theme/layouts/ImageCrop.vue @@ -0,0 +1,191 @@ + + + + + + + + + Download + + + Load a new image + + + + + + + + + + + + + + + + + + + + + + + Drag and drop an image + (or click to browse) + + + + + + + diff --git a/src/.vuepress/theme/layouts/404.vue b/src/.vuepress/theme/layouts/NotFound.vue similarity index 100% rename from src/.vuepress/theme/layouts/404.vue rename to src/.vuepress/theme/layouts/NotFound.vue diff --git a/src/.vuepress/theme/svg-icon/save-icon.svg b/src/.vuepress/theme/svg-icon/save-icon.svg new file mode 100644 index 00000000..0e7e5f80 --- /dev/null +++ b/src/.vuepress/theme/svg-icon/save-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/theme/svg-icon/trash-icon.svg b/src/.vuepress/theme/svg-icon/trash-icon.svg new file mode 100644 index 00000000..b5e50e93 --- /dev/null +++ b/src/.vuepress/theme/svg-icon/trash-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/theme/svg-icon/zoom-in.svg b/src/.vuepress/theme/svg-icon/zoom-in.svg new file mode 100644 index 00000000..91d38536 --- /dev/null +++ b/src/.vuepress/theme/svg-icon/zoom-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/theme/svg-icon/zoom-out.svg b/src/.vuepress/theme/svg-icon/zoom-out.svg new file mode 100644 index 00000000..5cb2ad39 --- /dev/null +++ b/src/.vuepress/theme/svg-icon/zoom-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/test/README.md b/src/test/README.md deleted file mode 100644 index 0d0c7640..00000000 --- a/src/test/README.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar: auto -# sidebarDepth: 2 ---- - -# Hello from test - -## Level 2 - -## Level 3 - -## Level 4