vue components refactoring

This commit is contained in:
Čarodej
2022-04-13 16:19:10 +02:00
parent 6a4bfa8bfe
commit 338f8664b7
251 changed files with 1068 additions and 1943 deletions

View File

@@ -1,75 +1,75 @@
{
"/js/main.js": "/js/main.js",
"/chunks/request.js": "/chunks/request.js?id=faab026c7f8e266c",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=aa9e376ed29686ee",
"/chunks/request.js": "/chunks/request.js?id=388b9e59eeb719e5",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=501663f9e43072f8",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
"/chunks/status-check.js": "/chunks/status-check.js?id=f82f9939c1326fe2",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=df5bd89528649783",
"/chunks/database.js": "/chunks/database.js?id=15cc488117dccf7b",
"/chunks/environment.js": "/chunks/environment.js?id=6ad94421572d1bf4",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=15938ff1ad2d6ed2",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=916450217130f3b8",
"/chunks/shared.js": "/chunks/shared.js?id=ec06bf0d3ada0f65",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=11b8eb58eaf3608a",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=b6445167f46a0480",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=672e931a9fb0b672",
"/chunks/not-found.js": "/chunks/not-found.js?id=9f6ce23ce5d969f1",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=f564565faa09d6d6",
"/chunks/admin.js": "/chunks/admin.js?id=3f9153ced94aa636",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=28169f03aee0e3a0",
"/chunks/invoices.js": "/chunks/invoices.js?id=a4785aea6257404e",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=51b6098a72f1fcdb",
"/chunks/pages.js": "/chunks/pages.js?id=4529e647b15e5c98",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=fb3f9eda3dc1d15c",
"/chunks/plans.js": "/chunks/plans.js?id=64803e40b7a125e5",
"/chunks/users.js": "/chunks/users.js?id=8bc57edd89c4ca11",
"/chunks/user-create.js": "/chunks/user-create.js?id=8dd9d29f024132f5",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=c994595021a98ce6",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=d9f1bcb1fe44a6ae",
"/chunks/user.js": "/chunks/user.js?id=c191b906a0496fe5",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=d53bfd58090b79e2",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=a8e0bce4703232a0",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=3ef8231d279d83bb",
"/chunks/user-password.js": "/chunks/user-password.js?id=23d3aee39f539a3c",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=6bea6f8cadf4d74f",
"/chunks/plan.js": "/chunks/plan.js?id=4b267375ea9f19b3",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=fea2f8eaae2f3334",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=715ee86991d5e4db",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=1ad77372d342326f",
"/chunks/payments.js": "/chunks/payments.js?id=dc4586691c25de6f",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=dd6c9d6a29a47808",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=022ba98937be861c",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=55da23af2b076069",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=a694a01f3641712c",
"/chunks/app-index.js": "/chunks/app-index.js?id=efdbfa062749ca00",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=d9fc887db8c48c55",
"/chunks/app-others.js": "/chunks/app-others.js?id=7c24086983398158",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=1cfffc99465b9a7a",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=a5dc9e715f8561bd",
"/chunks/app-server.js": "/chunks/app-server.js?id=3a41e04bde0d3536",
"/chunks/app-language.js": "/chunks/app-language.js?id=6f8d8b8e3541ca0c",
"/chunks/homepage.js": "/chunks/homepage.js?id=832072b46053df76",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2504793131107b1f",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=9adc7e145be4e160",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=25b805ade5230382",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=f4562229776d9f56",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=d064f84d1c4bf908",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=1b2d9edfb2723d1b",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=50a1bc5e4ed86ec9",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=f652de052dba55c1",
"/chunks/settings.js": "/chunks/settings.js?id=690a8653abdace7e",
"/chunks/profile.js": "/chunks/profile.js?id=0eca231475e267ab",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=3755d41eaf50a5b1",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=994b669a56fd417b",
"/chunks/billing.js": "/chunks/billing.js?id=a983c29d1a4f87ba",
"/chunks/platform.js": "/chunks/platform.js?id=9b86daee18ab692c",
"/chunks/files.js": "/chunks/files.js?id=b0ad99a9aedbc2d8",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=70457fa45709a1ba",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6dab4621467b1be7",
"/chunks/trash.js": "/chunks/trash.js?id=d2c999817715fa28",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=3ecbc23e85b78144",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=93a10fd7afed9534",
"/chunks/invitation.js": "/chunks/invitation.js?id=d5c845919b343941",
"/chunks/status-check.js": "/chunks/status-check.js?id=f40938d1fb43820f",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=ba76b9a8adbfdc0b",
"/chunks/database.js": "/chunks/database.js?id=5113b0d4284f764f",
"/chunks/environment.js": "/chunks/environment.js?id=8728f6fab2becf79",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
"/chunks/shared.js": "/chunks/shared.js?id=a25f225ef2d9824c",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=b8c1f7904c027f05",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
"/chunks/admin.js": "/chunks/admin.js?id=915956155957c4f7",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
"/chunks/pages.js": "/chunks/pages.js?id=bb5cc8327ca846a3",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=0bdc8a5935fd2197",
"/chunks/plans.js": "/chunks/plans.js?id=1d04fbdca84afd42",
"/chunks/users.js": "/chunks/users.js?id=b6629338e26b8313",
"/chunks/user-create.js": "/chunks/user-create.js?id=40254ae98547761e",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=18f9d1ab17996507",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=40e9f287b5258a40",
"/chunks/user.js": "/chunks/user.js?id=cf9a2a0d8c1fa1d9",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=ff6c1fc63a372d96",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=4f76194837113969",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=797d77ff2b1c08cc",
"/chunks/user-password.js": "/chunks/user-password.js?id=900ae71c3d4199ea",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=a3091617207684e5",
"/chunks/plan.js": "/chunks/plan.js?id=3e7b0b34c2247e6c",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=36d925def6a82cb2",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=df990f928a77c355",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=630deb1fc4e17ed9",
"/chunks/payments.js": "/chunks/payments.js?id=d59a2a18b680d65c",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=27d6c1b58dbd1e6c",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=450162f937b7b2fd",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=b0d1082fdcbbd17c",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=8ba3feb2cc81a2c3",
"/chunks/app-index.js": "/chunks/app-index.js?id=0c50096e8de09288",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=aa2f94fe3a554166",
"/chunks/app-others.js": "/chunks/app-others.js?id=dd23507db4551d0a",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=f79027ce1f1f4c4b",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=c7e7dc2975317062",
"/chunks/app-server.js": "/chunks/app-server.js?id=ff66d34e90ff98a0",
"/chunks/app-language.js": "/chunks/app-language.js?id=46d7fc713d36cea8",
"/chunks/homepage.js": "/chunks/homepage.js?id=0dabc3156ab1336c",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=9553d7a2912cb901",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=ea99d85aa3500595",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=c26cb144101e7c79",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=170d814982e1c475",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=5f7111f8ee7639bf",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=80da89f329c514fc",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
"/chunks/settings.js": "/chunks/settings.js?id=f41a6b2dbce5b05d",
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
"/chunks/platform.js": "/chunks/platform.js?id=90be0534e0d399f8",
"/chunks/files.js": "/chunks/files.js?id=59bd6469922431e4",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=f7f85cc9ce14c054",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=5afd3b2bcc62f265",
"/chunks/trash.js": "/chunks/trash.js?id=4ad4825cf154937b",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=8d851b9dce2f819d",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=49838b3807bb7797",
"/chunks/invitation.js": "/chunks/invitation.js?id=424b2783d9785a09",
"/css/tailwind.css": "/css/tailwind.css",
"/css/app.css": "/css/app.css"
}

View File

@@ -22,13 +22,13 @@
</template>
<script>
import ToasterWrapper from './components/Others/Notifications/ToasterNotifications'
import ToasterWrapper from './components/Toaster/ToasterNotifications'
import RestrictionWarningBar from './components/Subscription/RestrictionWarningBar'
import SidebarNavigation from "./components/Sidebar/SidebarNavigation"
import CookieDisclaimer from './components/Others/CookieDisclaimer'
import Spinner from './components/FilesView/Spinner'
import Vignette from './components/Others/Vignette'
import Alert from './components/FilesView/Alert'
import CookieDisclaimer from './components/UI/Others/CookieDisclaimer'
import Spinner from './components/UI/Others/Spinner'
import Vignette from './components/UI/Others/Vignette'
import Alert from './components/Popups/Alert'
import { mapGetters } from 'vuex'
import { events } from './bus'

View File

@@ -1,30 +0,0 @@
<template>
<div class="widget-card w-full">
<div class="widget-content bg-white dark:bg-dark-foreground">
<div class="flex items-center">
<users-icon v-if="icon === 'users'" size="16" class="vue-feather text-theme mr-3" />
<star-icon v-if="icon === 'star'" size="16" class="vue-feather text-theme mr-3" />
<hard-drive-icon v-if="icon === 'hard-drive'" size="16" class="vue-feather text-theme mr-3" />
<b class="text-base font-bold">
{{ title }}
</b>
</div>
<slot></slot>
</div>
</div>
</template>
<script>
import { UsersIcon, StarIcon, HardDriveIcon, ChevronRightIcon } from 'vue-feather-icons'
export default {
name: 'WidgetWrapper',
props: ['icon', 'title'],
components: {
ChevronRightIcon,
HardDriveIcon,
StarIcon,
UsersIcon,
},
}
</script>

View File

@@ -56,7 +56,7 @@
</template>
<script>
import {ThumbsUpIcon} from 'vue-feather-icons'
import ColorLabel from '../Others/ColorLabel'
import ColorLabel from '../UI/Labels/ColorLabel'
import {mapGetters} from "vuex";
export default {

View File

@@ -236,11 +236,11 @@
</template>
<script>
import DatatableCellImage from '../Others/Tables/DatatableCellImage'
import DatatableWrapper from '../Others/Tables/DatatableWrapper'
import ColorLabel from '../Others/ColorLabel'
import DatatableCellImage from '../../UI/Table/DatatableCellImage'
import DatatableWrapper from '../../UI/Table/DatatableWrapper'
import ColorLabel from '../../UI/Labels/ColorLabel'
import { Trash2Icon, Edit2Icon } from 'vue-feather-icons'
import MemberAvatar from '../FilesView/MemberAvatar'
import MemberAvatar from '../../UI/Others/MemberAvatar'
import { mapGetters } from 'vuex'
export default {

View File

@@ -72,12 +72,12 @@
</template>
<script>
import DatatableCellImage from '../Others/Tables/DatatableCellImage'
import DatatableWrapper from '../Others/Tables/DatatableWrapper'
import ColorLabel from '../Others/ColorLabel'
import DatatableCellImage from '../../UI/Table/DatatableCellImage'
import DatatableWrapper from '../../UI/Table/DatatableWrapper'
import ColorLabel from '../../UI/Labels/ColorLabel'
import { Trash2Icon, Edit2Icon } from 'vue-feather-icons'
import MemberAvatar from '../FilesView/MemberAvatar'
import InfoBox from '../Others/Forms/InfoBox'
import MemberAvatar from '../../UI/Others/MemberAvatar'
import InfoBox from '../../UI/Others/InfoBox'
import { mapGetters } from 'vuex'
export default {

View File

@@ -1,17 +0,0 @@
<template>
<div class="popover-wrapper">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'PopoverWrapper',
}
</script>
<style scoped lang="scss">
.popover-wrapper {
position: relative;
}
</style>

View File

@@ -1,25 +0,0 @@
<template>
<div class="toolbar-button-wrapper">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'ToolbarWrapper',
}
</script>
<style scoped lang="scss">
.toolbar-button-wrapper {
margin-left: 28px;
display: flex;
align-items: center;
}
@media only screen and (max-width: 1024px) {
.toolbar-button-wrapper {
margin-left: 25px;
}
}
</style>

View File

@@ -1,21 +0,0 @@
<template>
<div class="toolbar-tools">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'ToolbarWrapper',
}
</script>
<style scoped lang="scss">
@import 'resources/sass/vuefilemanager/_variables';
@import 'resources/sass/vuefilemanager/_mixins';
.toolbar-tools {
text-align: right;
display: flex;
}
</style>

View File

@@ -86,7 +86,7 @@
</template>
<script>
import Spinner from '../FilesView/Spinner'
import Spinner from '../UI/Others/Spinner'
import Emoji from './Emoji'
import { debounce, groupBy } from 'lodash'
import { XIcon } from 'vue-feather-icons'

View File

@@ -2,7 +2,7 @@
<div class="flex items-center justify-center fixed top-20 bottom-0 left-0 right-0 md:px-0 px-4" v-if="isLoading || isEmpty">
<!--Show message for user-->
<div v-if="!isLoading" class="text-content text-center">
<slot></slot>
<slot />
</div>
<!--Show spinner when loading content-->
@@ -13,7 +13,7 @@
</template>
<script>
import Spinner from './Spinner'
import Spinner from '../UI/Others/Spinner'
import { mapGetters } from 'vuex'
export default {

View File

@@ -31,8 +31,8 @@
<script>
import { events } from '../../bus'
import ItemList from './ItemList'
import ItemGrid from './ItemGrid'
import ItemList from '../UI/Entries/ItemList'
import ItemGrid from '../UI/Entries/ItemGrid'
import { mapGetters } from 'vuex'
export default {

View File

@@ -79,10 +79,10 @@ import {
UsersIcon,
XIcon,
} from 'vue-feather-icons'
import TreeMenuNavigator from '../../../components/Others/TreeMenuNavigator'
import ContentSidebar from '../../../components/Sidebar/ContentSidebar'
import ContentGroup from '../../../components/Sidebar/ContentGroup'
import { events } from '../../../bus'
import TreeMenuNavigator from '../UI/Trees/TreeMenuNavigator'
import ContentSidebar from '../Sidebar/ContentSidebar'
import ContentGroup from '../Sidebar/ContentGroup'
import { events } from '../../bus'
import { mapGetters } from 'vuex'
export default {

View File

@@ -107,10 +107,10 @@ import {
UsersIcon,
XIcon,
} from 'vue-feather-icons'
import TreeMenuNavigator from '../../../components/Others/TreeMenuNavigator'
import ContentSidebar from '../../../components/Sidebar/ContentSidebar'
import ContentGroup from '../../../components/Sidebar/ContentGroup'
import { events } from '../../../bus'
import TreeMenuNavigator from '../UI/Trees/TreeMenuNavigator'
import ContentSidebar from '../Sidebar/ContentSidebar'
import ContentGroup from '../Sidebar/ContentGroup'
import { events } from '../../bus'
import { mapGetters } from 'vuex'
export default {

View File

@@ -55,12 +55,12 @@
<script>
import { ChevronLeftIcon, ChevronRightIcon } from 'vue-feather-icons'
import ToolbarButton from '../FilesView/ToolbarButton'
import ItemGrid from "../FilesView/ItemGrid"
import ToolbarButton from '../UI/Buttons/ToolbarButton'
import ItemGrid from "../UI/Entries/ItemGrid"
import ImageFile from './Media/ImageFile'
import Audio from './Media/Audio'
import Video from './Media/Video'
import Spinner from '../FilesView/Spinner'
import Spinner from '../UI/Others/Spinner'
import { mapGetters } from 'vuex'
import { events } from '../../bus'

View File

@@ -103,12 +103,12 @@
</template>
<script>
import PopoverWrapper from '../Desktop/PopoverWrapper'
import PopoverItem from '../Desktop/PopoverItem'
import OptionGroup from '../FilesView/OptionGroup'
import Option from '../FilesView/Option'
import PopoverWrapper from '../UI/Popover/PopoverWrapper'
import PopoverItem from '../UI/Popover/PopoverItem'
import OptionGroup from '../Menus/Components/OptionGroup'
import Option from '../Menus/Components/Option'
import ToolbarButton from '../FilesView/ToolbarButton'
import ToolbarButton from '../UI/Buttons/ToolbarButton'
import { XIcon, MoreHorizontalIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'
import { events } from '../../bus'

View File

@@ -241,9 +241,9 @@
<script>
import {ValidationObserver, ValidationProvider} from 'vee-validate/dist/vee-validate.full'
import SelectInput from '../Others/Forms/SelectInput'
import AppInputText from '../Admin/AppInputText'
import FormLabel from '../Others/Forms/FormLabel'
import SelectInput from '../Inputs/SelectInput'
import AppInputText from './Layouts/AppInputText'
import FormLabel from '../UI/Labels/FormLabel'
export default {
name: 'MailSetup',

View File

@@ -157,9 +157,9 @@
<script>
import {ValidationObserver, ValidationProvider} from 'vee-validate/dist/vee-validate.full'
import SelectInput from '../Others/Forms/SelectInput'
import AppInputText from '../Admin/AppInputText'
import FormLabel from '../Others/Forms/FormLabel'
import SelectInput from '../Inputs/SelectInput'
import AppInputText from './Layouts/AppInputText'
import FormLabel from '../UI/Labels/FormLabel'
export default {
name: 'StorageSetup',

View File

@@ -6,8 +6,8 @@
</template>
<script>
import VueFolderTeamIcon from '../Icons/VueFolderTeamIcon'
import VueFolderIcon from '../Icons/VueFolderIcon'
import VueFolderTeamIcon from './VueFolderTeamIcon'
import VueFolderIcon from './VueFolderIcon'
export default {
name: 'FolderIcon',

View File

@@ -34,7 +34,7 @@
<script>
import HardDriveIcon from 'vue-feather-icons/icons/HardDriveIcon'
import PageTitle from './Components/PageTitle'
import AuthButton from '../Auth/AuthButton'
import AuthButton from '../UI/Buttons/AuthButton'
import { CreditCardIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'

View File

@@ -25,7 +25,7 @@
<script>
import PricingTables from './Components/PricingTables'
import AuthButton from '../Auth/AuthButton'
import AuthButton from '../UI/Buttons/AuthButton'
import { CloudIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'

View File

@@ -88,7 +88,7 @@
<script>
import { DownloadIcon, CameraIcon, CopyIcon, CheckIcon, SendIcon, MoreHorizontalIcon, CodeIcon } from 'vue-feather-icons'
import { events } from '../../../bus'
import { events } from '../../bus'
export default {
name: 'CopyShareLink',

View File

@@ -32,7 +32,7 @@
<script>
import { XIcon } from 'vue-feather-icons'
import { events } from '../../../bus'
import { events } from '../../bus'
export default {
name: 'MultiEmailInput',

View File

@@ -41,9 +41,9 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
@import '../../../../sass/vuefilemanager/forms';
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
@import '../../../sass/vuefilemanager/forms';
.search-bar {
position: relative;

View File

@@ -36,10 +36,10 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
@import '../../../../sass/vuefilemanager/inapp-forms';
@import '../../../../sass/vuefilemanager/forms';
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
@import '../../../sass/vuefilemanager/inapp-forms';
@import '../../../sass/vuefilemanager/forms';
.select-box {
display: flex;

View File

@@ -115,8 +115,8 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
/* TODO: refactor to the tailwind */

View File

@@ -39,8 +39,8 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
.input-wrapper {
display: flex;

View File

@@ -1,6 +1,6 @@
<template>
<div v-if="isVisible" class="w-full max-w-xl text-center">
<slot></slot>
<slot />
</div>
</template>

View File

@@ -1,6 +1,6 @@
<template>
<div class="flex items-center justify-center px-2.5 md:px-6">
<slot></slot>
<slot />
</div>
</template>

View File

@@ -0,0 +1,20 @@
<template>
<div class="page-tab">
<div id="loader" v-show="isLoading">
<Spinner />
</div>
<slot v-show="!isLoading" />
</div>
</template>
<script>
import Spinner from '../UI/Others/Spinner'
export default {
name: 'PageTab',
props: ['isLoading'],
components: {
Spinner,
},
}
</script>

View File

@@ -1,6 +1,6 @@
<template>
<div class="page-tab-group">
<slot></slot>
<slot />
</div>
</template>
@@ -11,8 +11,8 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
.page-tab-group {
margin-bottom: 65px;

View File

@@ -103,14 +103,14 @@
</template>
<script>
import FilePreviewDetail from '../Others/FilePreviewDetail'
import CopyShareLink from '../Others/Forms/CopyShareLink'
import FilePreviewDetail from '../../Others/FilePreviewDetail'
import CopyShareLink from '../../Inputs/CopyShareLink'
import {Edit2Icon, LockIcon, UnlockIcon, EyeOffIcon} from 'vue-feather-icons'
import ImageMetaData from './ImageMetaData'
import TitlePreview from './TitlePreview'
import TeamMembersPreview from '../Teams/Components/TeamMembersPreview'
import ListInfoItem from '../Others/ListInfoItem'
import MemberAvatar from './MemberAvatar'
import ImageMetaData from '../../UI/Others/ImageMetaData'
import TitlePreview from '../../UI/Labels/TitlePreview'
import TeamMembersPreview from '../../Teams/Components/TeamMembersPreview'
import ListInfoItem from '../../UI/List/ListInfoItem'
import MemberAvatar from '../../UI/Others/MemberAvatar'
import {mapGetters} from 'vuex'
export default {

View File

@@ -94,10 +94,10 @@
<script>
import { Edit2Icon, LockIcon, UnlockIcon, EyeOffIcon } from 'vue-feather-icons'
import FilePreviewDetail from '../Others/FilePreviewDetail'
import ListInfoItem from '../Others/ListInfoItem'
import ImageMetaData from './ImageMetaData'
import TitlePreview from './TitlePreview'
import FilePreviewDetail from '../../Others/FilePreviewDetail'
import ListInfoItem from '../../UI/List/ListInfoItem'
import ImageMetaData from '../../UI/Others/ImageMetaData'
import TitlePreview from '../../UI/Labels/TitlePreview'
import { mapGetters } from 'vuex'
export default {

View File

@@ -27,7 +27,7 @@
</PopoverWrapper>
<!--Search bar-->
<SearchBar class="ml-5 hidden lg:block xl:ml-8" />
<SearchBarButton class="ml-5 hidden lg:block xl:ml-8" />
<!--File Controls-->
<div class="ml-5 flex items-center xl:ml-8">
@@ -78,23 +78,24 @@
</template>
<script>
import PopoverWrapper from '../Desktop/PopoverWrapper'
import FileSortingOptions from './FileSortingOptions'
import PopoverItem from '../Desktop/PopoverItem'
import UploadProgress from './UploadProgress'
import PopoverWrapper from '../../UI/Popover/PopoverWrapper'
import FileSortingOptions from '../../Menus/FileSortingOptions'
import PopoverItem from '../../UI/Popover/PopoverItem'
import UploadProgress from '../../UI/Others/UploadProgress'
import NavigationBar from './NavigationBar'
import ToolbarButton from './ToolbarButton'
import OptionUpload from './OptionUpload'
import OptionGroup from './OptionGroup'
import SearchBar from './SearchBar'
import { events } from '../../bus'
import ToolbarButton from '../../UI/Buttons/ToolbarButton'
import OptionUpload from '../../Menus/Components/OptionUpload'
import OptionGroup from '../../Menus/Components/OptionGroup'
import SearchBarButton from '../../UI/Buttons/SearchBarButton'
import { events } from '../../../bus'
import { mapGetters } from 'vuex'
import Option from './Option'
import Option from '../../Menus/Components/Option'
export default {
name: 'DesktopSharepageToolbar',
components: {
FileSortingOptions,
SearchBarButton,
UploadProgress,
PopoverWrapper,
NavigationBar,
@@ -102,7 +103,6 @@ export default {
OptionUpload,
OptionGroup,
PopoverItem,
SearchBar,
Option,
},
computed: {

View File

@@ -55,7 +55,7 @@
</PopoverWrapper>
<!--Search bar-->
<SearchBar class="ml-5 hidden lg:block xl:ml-8" />
<SearchBarButton class="ml-5 hidden lg:block xl:ml-8" />
<!--File Controls-->
<div class="ml-5 flex items-center xl:ml-8">
@@ -158,20 +158,20 @@
</template>
<script>
import TeamMembersButton from '../Teams/Components/TeamMembersButton'
import TeamFolderPreview from '../Teams/Components/TeamFolderPreview'
import PopoverWrapper from '../Desktop/PopoverWrapper'
import FileSortingOptions from './FileSortingOptions'
import PopoverItem from '../Desktop/PopoverItem'
import UploadProgress from './UploadProgress'
import TeamMembersButton from '../../Teams/Components/TeamMembersButton'
import TeamFolderPreview from '../../Teams/Components/TeamFolderPreview'
import PopoverWrapper from '../../UI/Popover/PopoverWrapper'
import FileSortingOptions from '../../Menus/FileSortingOptions'
import PopoverItem from '../../UI/Popover/PopoverItem'
import UploadProgress from '../../UI/Others/UploadProgress'
import NavigationBar from './NavigationBar'
import ToolbarButton from './ToolbarButton'
import OptionUpload from './OptionUpload'
import OptionGroup from './OptionGroup'
import SearchBar from './SearchBar'
import { events } from '../../bus'
import ToolbarButton from '../../UI/Buttons/ToolbarButton'
import OptionUpload from '../../Menus/Components/OptionUpload'
import OptionGroup from '../../Menus/Components/OptionGroup'
import SearchBarButton from '../../UI/Buttons/SearchBarButton'
import { events } from '../../../bus'
import { mapGetters } from 'vuex'
import Option from './Option'
import Option from '../../Menus/Components/Option'
export default {
name: 'DesktopToolbar',
@@ -179,6 +179,7 @@ export default {
FileSortingOptions,
TeamMembersButton,
TeamFolderPreview,
SearchBarButton,
UploadProgress,
PopoverWrapper,
NavigationBar,
@@ -186,7 +187,6 @@ export default {
OptionUpload,
OptionGroup,
PopoverItem,
SearchBar,
Option,
},
computed: {

View File

@@ -84,19 +84,18 @@
</template>
<script>
import PopoverWrapper from '../Desktop/PopoverWrapper'
import FileSortingOptions from './FileSortingOptions'
import PopoverItem from '../Desktop/PopoverItem'
import UploadProgress from './UploadProgress'
import PopoverWrapper from '../../UI/Popover/PopoverWrapper'
import FileSortingOptions from '../../Menus/FileSortingOptions'
import PopoverItem from '../../UI/Popover/PopoverItem'
import UploadProgress from '../../UI/Others/UploadProgress'
import NavigationBar from './NavigationBar'
import ToolbarButton from './ToolbarButton'
import MemberAvatar from "./MemberAvatar"
import OptionUpload from './OptionUpload'
import OptionGroup from './OptionGroup'
import SearchBar from './SearchBar'
import { events } from '../../bus'
import ToolbarButton from '../../UI/Buttons/ToolbarButton'
import MemberAvatar from "../../UI/Others/MemberAvatar"
import OptionUpload from '../../Menus/Components/OptionUpload'
import OptionGroup from '../../Menus/Components/OptionGroup'
import { events } from '../../../bus'
import { mapGetters } from 'vuex'
import Option from './Option'
import Option from '../../Menus/Components/Option'
export default {
name: 'DesktopUploadRequestToolbar',
@@ -110,7 +109,6 @@ export default {
OptionUpload,
OptionGroup,
PopoverItem,
SearchBar,
Option,
},
computed: {

View File

@@ -16,7 +16,7 @@
</template>
<script>
import ToolbarButton from './ToolbarButton'
import ToolbarButton from '../../UI/Buttons/ToolbarButton'
import { mapGetters } from 'vuex'
export default {
@@ -36,8 +36,8 @@ export default {
</script>
<style scoped lang="scss">
@import 'resources/sass/vuefilemanager/_variables';
@import 'resources/sass/vuefilemanager/_mixins';
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
.multiselect-actions {
display: flex;

View File

@@ -24,8 +24,8 @@
</template>
<script>
import TeamMembersPreview from '../Teams/Components/TeamMembersPreview'
import TeamMembersButton from '../Teams/Components/TeamMembersButton'
import TeamMembersPreview from '../../Teams/Components/TeamMembersPreview'
import TeamMembersButton from '../../Teams/Components/TeamMembersButton'
import { MenuIcon } from 'vue-feather-icons'
import NavigationBar from './NavigationBar'

View File

@@ -7,8 +7,8 @@
</template>
<script>
import TeamMembersPreview from '../Teams/Components/TeamMembersPreview'
import TeamMembersButton from '../Teams/Components/TeamMembersButton'
import TeamMembersPreview from '../../Teams/Components/TeamMembersPreview'
import TeamMembersButton from '../../Teams/Components/TeamMembersButton'
import { MenuIcon } from 'vue-feather-icons'
import NavigationBar from './NavigationBar'

View File

@@ -41,7 +41,7 @@
</template>
<script>
import { mapGetters } from 'vuex'
import { events } from '../../bus'
import { events } from '../../../bus'
import { MenuIcon, ChevronLeftIcon, MoreHorizontalIcon } from 'vue-feather-icons'
export default {

View File

@@ -244,7 +244,7 @@
</template>
<script>
import AlphabetIcon from '../Icons/AlphabetIcon'
import AlphabetIcon from '../../Icons/AlphabetIcon'
import {
UserMinusIcon,
UserCheckIcon,

View File

@@ -4,7 +4,7 @@
{{ title }}
</b>
<ul class="option-group py-1">
<slot></slot>
<slot />
</ul>
</div>
</template>

View File

@@ -34,7 +34,7 @@
</template>
<script>
import FolderUploadIcon from '../Icons/FolderUploadIcon'
import FolderUploadIcon from '../../Icons/FolderUploadIcon'
import { UploadCloudIcon } from 'vue-feather-icons'
export default {

View File

@@ -53,9 +53,9 @@
<script>
import MenuMobileGroup from '../Mobile/MenuMobileGroup'
import OptionGroup from '../FilesView/OptionGroup'
import OptionGroup from './Components/OptionGroup'
import MenuMobile from '../Mobile/MenuMobile'
import Option from '../FilesView/Option'
import Option from './Components/Option'
import { mapGetters } from 'vuex'
export default {

View File

@@ -12,7 +12,7 @@ import MenuMobileGroup from '../Mobile/MenuMobileGroup'
import MenuMobile from '../Mobile/MenuMobile'
export default {
name: 'FilterSortingMobile',
name: 'FileSortingMobile',
components: {
FileSortingOptions,
MenuMobileGroup,

View File

@@ -32,8 +32,8 @@
</template>
<script>
import OptionGroup from './OptionGroup'
import Option from './Option'
import OptionGroup from './Components/OptionGroup'
import Option from './Components/Option'
import { ArrowUpIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'

View File

@@ -3,22 +3,22 @@
<ThumbnailItem class="m-5" :item="clipboard[0]" />
<MenuMobileGroup v-if="$slots.default">
<slot></slot>
<slot />
</MenuMobileGroup>
<MenuMobileGroup v-if="$slots.editor && $checkPermission('editor')">
<slot name="editor"></slot>
<slot name="editor" />
</MenuMobileGroup>
<MenuMobileGroup v-if="$slots.visitor && $checkPermission('visitor')">
<slot name="visitor"></slot>
<slot name="visitor" />
</MenuMobileGroup>
</MenuMobile>
</template>
<script>
import MenuMobileGroup from '../Mobile/MenuMobileGroup'
import ThumbnailItem from '../Others/ThumbnailItem'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import MenuMobile from '../Mobile/MenuMobile'
import { mapGetters } from 'vuex'

View File

@@ -3,7 +3,7 @@
<TeamFolderPreview />
<MenuMobileGroup v-if="$slots.default">
<slot></slot>
<slot />
</MenuMobileGroup>
</MenuMobile>
</template>

View File

@@ -26,8 +26,8 @@
</template>
<script>
import MobileActionButton from './MobileActionButton'
import UploadProgress from './UploadProgress'
import MobileActionButton from '../UI/Buttons/MobileActionButton'
import UploadProgress from '../UI/Others/UploadProgress'
import { mapGetters } from 'vuex'
export default {

View File

@@ -1,6 +1,6 @@
<template>
<div class="menu-options">
<slot></slot>
<slot />
</div>
</template>

View File

@@ -156,11 +156,11 @@
</template>
<script>
import MenuMobileGroup from '../Mobile/MenuMobileGroup'
import OptionGroup from '../FilesView/OptionGroup'
import UserHeadline from '../Sidebar/UserHeadline'
import MenuMobile from '../Mobile/MenuMobile'
import Option from '../FilesView/Option'
import MenuMobileGroup from './MenuMobileGroup'
import OptionGroup from '../Menus/Components/OptionGroup'
import UserHeadline from '../UI/Others/UserHeadline'
import MenuMobile from './MenuMobile'
import Option from '../Menus/Components/Option'
import { ChevronLeftIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'

View File

@@ -87,8 +87,8 @@
</template>
<script>
import { RefreshCwIcon, TrendingUpIcon, GiftIcon, CheckIcon, XIcon, MailIcon, UserPlusIcon, UploadCloudIcon, ChevronRightIcon, AlertTriangleIcon } from 'vue-feather-icons'
import MemberAvatar from '../FilesView/MemberAvatar'
import {events} from "../../bus";
import MemberAvatar from '../../UI/Others/MemberAvatar'
import {events} from "../../../bus";
export default {
name: 'Notification',

View File

@@ -41,8 +41,8 @@
</template>
<script>
import MobileActionButton from "../FilesView/MobileActionButton"
import Notification from "./Notification"
import MobileActionButton from "../UI/Buttons/MobileActionButton"
import Notification from "./Components/Notification"
import vClickOutside from 'v-click-outside'
import {mapGetters} from "vuex";

View File

@@ -52,13 +52,13 @@
</template>
<script>
import MobileActionButton from '../FilesView/MobileActionButton'
import Notification from '../Notifications/Notification'
import ButtonBase from '../FilesView/ButtonBase'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import MobileActionButton from '../UI/Buttons/MobileActionButton'
import Notification from './Components/Notification'
import ButtonBase from '../UI/Buttons/ButtonBase'
import PopupWrapper from '../Popups/Components/PopupWrapper'
import PopupActions from '../Popups/Components/PopupActions'
import PopupContent from '../Popups/Components/PopupContent'
import PopupHeader from '../Popups/Components/PopupHeader'
import vClickOutside from 'v-click-outside'
import { mapGetters } from 'vuex'

View File

@@ -1,132 +0,0 @@
<template>
<div class="color-pick-wrapper">
<label class="main-label">{{ $t('popup_rename.color_pick_label') }}:</label>
<ul class="color-wrapper">
<li v-for="(color, i) in colors" :key="i" @click="setColor(color)" class="single-color">
<check-icon v-if="color === selectedColor" class="color-icon" size="22" />
<span :style="{ background: color }" class="color-box"></span>
</li>
</ul>
</div>
</template>
<script>
import { CheckIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'
export default {
name: 'ColorPicker',
props: ['pickedColor'],
components: { CheckIcon },
computed: {
...mapGetters(['config']),
},
data() {
return {
selectedColor: this.pickedColor,
colors: [
'#FE6F6F',
'#FE6F91',
'#FE6FC0',
'#FE6FF0',
'#DD6FFE',
'#AD6FFE',
'#7D6FFE',
'#6F90FE',
'#6FC0FE',
'#6FF0FE',
'#6FFEDD',
'#6FFEAD',
'#6FFE7D',
'#90FE6F',
'#C0FE6F',
'#F0FE6F',
'#FEDD6F',
'#FEAD6F',
'#FE7D6F',
'#4c4c4c',
'#06070B',
],
}
},
methods: {
setColor(value) {
this.selectedColor = value
this.$emit('input', value)
},
},
created() {
this.colors.push(this.config.app_color)
},
}
</script>
<style lang="scss" scoped>
@import '../../../sass/vuefilemanager/inapp-forms';
@import '../../../sass/vuefilemanager/forms';
.color-pick-wrapper {
.color-wrapper {
margin-bottom: 20px;
display: grid;
grid-template-columns: repeat(auto-fill, 32px);
justify-content: space-between;
gap: 7px;
.single-color {
height: 31px;
list-style: none;
border-radius: 8px;
cursor: pointer;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
.color-icon {
z-index: 2;
polyline {
stroke: white;
}
}
.color-box {
width: 100%;
height: 100%;
position: absolute;
display: block;
}
}
}
}
.main-label {
@include font-size(14);
font-weight: 700;
margin-bottom: 8px;
display: block;
}
.set-folder-icon {
position: relative;
}
.dark {
.color-pick-wrapper {
.color-wrapper {
.single-color {
&.active-color {
border: 2px solid;
}
&:hover {
border: 2px solid $dark_mode_text_primary;
}
}
}
}
}
</style>

View File

@@ -10,7 +10,7 @@
<h1 class="title">{{ title }}</h1>
<h2 class="description">{{ description }}</h2>
</div>
<slot></slot>
<slot />
</div>
</div>
</template>

View File

@@ -1,142 +0,0 @@
<template>
<div class="setup-box" :class="theme">
<b class="title">{{ title }}</b>
<p class="description">{{ description }}</p>
<slot></slot>
</div>
</template>
<script>
export default {
name: 'SetupBox',
props: ['title', 'description', 'theme'],
}
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
.setup-box {
padding: 20px;
border-radius: 8px;
margin-bottom: 30px;
.title {
@include font-size(21);
margin-bottom: 5px;
display: block;
font-weight: 700;
}
.description {
@include font-size(15);
line-height: 1.5;
margin-bottom: 20px;
}
&.base {
background: $light_background;
}
&.danger {
background: $light_background;
.title {
color: $danger;
}
}
/deep/ input {
&[type='text'],
&[type='number'],
.input-area {
background: white;
}
}
/deep/ .input-area {
background: white;
}
/deep/ .form {
margin-top: 20px;
&.block-form {
max-width: 450px;
.single-line-form {
display: flex;
.submit-button {
margin-left: 20px;
}
}
}
}
}
@media only screen and (max-width: 960px) {
.setup-box {
/deep/ .form {
&.block-form {
max-width: 100%;
}
input {
min-width: initial;
}
}
}
}
@media only screen and (max-width: 690px) {
.setup-box {
padding: 15px;
.title {
@include font-size(17);
margin-bottom: 10px;
}
.description {
@include font-size(14);
}
/deep/ .form.block-form {
.single-line-form {
display: block;
.submit-button {
margin-left: 0;
margin-top: 10px;
}
}
}
}
}
.dark {
.setup-box {
&.base {
background: $dark_mode_foreground;
}
&.danger {
background: $dark_mode_foreground;
}
/deep/ input {
&[type='text'],
&[type='number'],
.input-area {
background: $dark_mode_background;
}
}
/deep/ .input-area {
background: $dark_mode_background;
}
}
}
</style>

View File

@@ -1,25 +0,0 @@
<template>
<div class="page-tab">
<div id="loader" v-show="isLoading">
<Spinner></Spinner>
</div>
<slot v-show="!isLoading"></slot>
</div>
</template>
<script>
import Spinner from '../../FilesView/Spinner'
export default {
name: 'PageTab',
props: ['isLoading'],
components: {
Spinner,
},
}
</script>
<style lang="scss" scoped>
@import '../../../../sass/vuefilemanager/variables';
@import '../../../../sass/vuefilemanager/mixins';
</style>

View File

@@ -1,83 +0,0 @@
<template>
<div class="page-header">
<div class="go-back" v-if="canBack" @click="$router.back()">
<chevron-left-icon size="17" />
</div>
<div class="content">
<h1 class="title">{{ title }}</h1>
</div>
</div>
</template>
<script>
import { ChevronLeftIcon } from 'vue-feather-icons'
export default {
name: 'PageHeader',
props: ['title', 'canBack'],
components: {
ChevronLeftIcon,
},
}
</script>
<style lang="scss" scoped>
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
.page-header {
display: flex;
align-items: center;
background: white;
z-index: 9;
width: 100%;
position: sticky;
top: 0;
padding-top: 20px;
padding-bottom: 20px;
.title {
@include font-size(18);
font-weight: 700;
color: $text;
}
.go-back {
margin-right: 10px;
cursor: pointer;
svg {
vertical-align: middle;
margin-top: -4px;
}
}
}
@media only screen and (max-width: 960px) {
.page-header {
.title {
@include font-size(18);
}
}
}
@media only screen and (max-width: 690px) {
.page-header {
display: none;
}
}
.dark {
.page-header {
background: $dark_mode_background;
.title {
color: $dark_mode_text_primary;
}
.icon path {
fill: $theme;
}
}
}
</style>

View File

@@ -1,220 +0,0 @@
<template>
<div class="plans-wrapper" v-if="plans">
<article class="plan" v-for="(plan, i) in plans" :key="i">
<div class="plan-wrapper">
<header class="plan-header">
<div class="icon">
<hard-drive-icon class="text-theme" size="26" />
</div>
<h1 class="title">{{ plan.data.attributes.name }}</h1>
<h2 class="description">
{{ plan.data.attributes.description }}
</h2>
</header>
<section class="plan-features">
<b class="storage-size">{{ plan.data.attributes.capacity_formatted }}</b>
<span class="storage-description">{{ $t('page_pricing_tables.storage_capacity') }}</span>
</section>
<footer class="plan-footer">
<b class="price text-theme">
{{ plan.data.attributes.price }}/{{ $t('mo.') }}
<small v-if="plan.data.attributes.tax_rates.length > 0" class="vat-disclaimer">{{
$t('page_pricing_tables.vat_excluded')
}}</small>
</b>
<ButtonBase
@click.native="selectPlan(plan)"
type="submit"
button-style="secondary"
class="sign-in-button"
>
{{ $t('get_it') }}
</ButtonBase>
</footer>
</div>
</article>
</div>
</template>
<script>
import ButtonBase from '../FilesView/ButtonBase'
import { HardDriveIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'
import axios from 'axios'
export default {
name: 'PlanPricingTables',
components: {
HardDriveIcon,
ButtonBase,
},
props: ['customRoute'],
data() {
return {
plans: undefined,
}
},
computed: {
...mapGetters(['user']),
},
methods: {
selectPlan(plan) {
this.$emit('selected-plan', plan)
let route = this.customRoute ? this.customRoute : 'UpgradeBilling'
this.$router.push({ name: route })
},
},
created() {
axios.get('/api/pricing').then((response) => {
this.plans = response.data.filter((plan) => {
return plan.data.attributes.capacity > this.user.data.attributes.max_storage_amount
})
this.$emit('load', false)
})
},
}
</script>
<style lang="scss" scoped>
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
.plan {
text-align: center;
flex: 0 0 33%;
padding: 0 25px;
margin-bottom: 45px;
.plan-wrapper {
box-shadow: 0 7px 20px 5px hsla(220, 36%, 16%, 0.03);
padding: 25px;
border-radius: 8px;
@include transition;
&:hover {
@include transform(translateY(-20px) scale(1.05));
box-shadow: 0 15px 25px 5px hsla(220, 36%, 16%, 0.08);
}
}
.plan-header {
.icon {
path,
line,
polyline,
rect,
circle {
color: inherit;
}
}
.title {
@include font-size(22);
font-weight: 800;
}
.description {
@include font-size(14);
font-weight: 600;
}
}
.plan-features {
margin: 65px 0;
.storage-size {
@include font-size(48);
font-weight: 900;
line-height: 1.1;
}
.storage-description {
display: block;
@include font-size(15);
font-weight: 800;
}
}
.plan-footer {
.sign-in-button {
width: 100%;
text-align: center;
}
.price {
@include font-size(18);
display: block;
margin-bottom: 20px;
.vat-disclaimer {
@include font-size(11);
color: $text;
display: block;
font-weight: 300;
opacity: 0.45;
margin-top: 5px;
}
}
}
}
.plans-wrapper {
display: flex;
flex-wrap: wrap;
margin: 0 -25px;
justify-content: center;
}
@media only screen and (max-width: 960px) {
.plans-wrapper {
display: block;
margin: 0;
}
}
.dark {
.plan {
.plan-wrapper {
background: $dark_mode_foreground;
}
.plan-header {
.title {
color: $dark_mode_text_primary;
}
.description {
color: $dark_mode_text_secondary;
}
}
.plan-features {
.storage-size {
color: $dark_mode_text_primary;
}
.storage-description {
color: $dark_mode_text_primary;
}
}
.plan-footer {
.sign-in-button {
background: rgba($theme, 0.1);
/deep/ .content {
color: $theme;
}
}
.price {
.vat-disclaimer {
color: $dark_mode_text_primary;
}
}
}
}
}
</style>

View File

@@ -1,20 +0,0 @@
<template>
<div v-if="isActive">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'TabOption',
props: ['title', 'icon', 'selected'],
data() {
return {
isActive: false,
}
},
mounted() {
this.isActive = this.selected
},
}
</script>

View File

@@ -1,124 +0,0 @@
<template>
<div>
<div class="tab-wrapper">
<div
class="tab"
:class="{ active: tab.isActive }"
@click="selectTab(tab)"
v-for="(tab, i) in tabs"
:key="i"
>
<!--Icon-->
<mail-icon v-if="tab.icon === 'email'" class="tab-icon text-theme dark-text-theme" size="17" />
<link-icon v-if="tab.icon === 'link'" class="tab-icon text-theme dark-text-theme" size="17" />
<smile-icon v-if="tab.icon === 'emoji'" class="tab-icon text-theme dark-text-theme" size="17" />
<folder-icon v-if="tab.icon === 'folder'" class="tab-icon text-theme dark-text-theme" size="17" />
<!--Title-->
<b class="tab-title">
{{ tab.title }}
</b>
</div>
</div>
<slot></slot>
</div>
</template>
<script>
import { LinkIcon, MailIcon, SmileIcon, FolderIcon } from 'vue-feather-icons'
export default {
name: 'TabWrapper',
components: {
LinkIcon,
MailIcon,
SmileIcon,
FolderIcon,
},
data() {
return {
tabs: [],
}
},
methods: {
selectTab(selectedTab) {
this.tabs.forEach((tab) => {
tab.isActive = tab.title == selectedTab.title
})
},
},
mounted() {
this.tabs = this.$children
},
}
</script>
<style scoped lang="scss">
@import '../../../sass/vuefilemanager/inapp-forms';
@import '../../../sass/vuefilemanager/forms';
.tab-wrapper {
display: flex;
justify-content: center;
margin-bottom: 20px;
cursor: pointer;
align-items: center;
background: white;
color: $text;
border-radius: 8px;
overflow: hidden;
border: 1px solid #e8e9eb;
.tab-title {
@include font-size(14);
}
.tab {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 8px;
&.active {
background: $light_background;
.tab-title {
color: $text;
}
}
}
.tab-icon {
margin-right: 10px;
path,
circle,
line,
polyline {
color: inherit !important;
}
}
}
.dark {
.tab-wrapper {
background: $dark_mode_foreground;
border-color: transparent;
.tab.active {
background: lighten($dark_mode_foreground, 7%);
.tab-title {
color: $dark_mode_text_primary;
}
}
}
.popup-wrapper {
.tab-wrapper {
background: lighten($dark_mode_foreground, 2%);
}
}
}
</style>

View File

@@ -1,24 +0,0 @@
<template>
<b class="theme-label">
<slot></slot>
</b>
</template>
<script>
export default {
name: 'TextLabel',
}
</script>
<style lang="scss" scoped>
@import '../../../sass/vuefilemanager/variables';
@import '../../../sass/vuefilemanager/mixins';
.theme-label {
@include font-size(14);
color: $theme;
font-weight: 600;
display: block;
margin-bottom: 20px;
}
</style>

View File

@@ -29,9 +29,9 @@
</template>
<script>
import ButtonBase from './ButtonBase'
import ButtonBase from '../UI/Buttons/ButtonBase'
import { events } from '../../bus'
import PopupActions from "../Others/Popup/PopupActions";
import PopupActions from "./Components/PopupActions";
export default {
name: 'AlertPopup',

View File

@@ -25,10 +25,10 @@
</template>
<script>
import PopupWrapper from './PopupWrapper'
import PopupActions from './PopupActions'
import ButtonBase from '../../FilesView/ButtonBase'
import { events } from '../../../bus'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import ButtonBase from '../UI/Buttons/ButtonBase'
import { events } from '../../bus'
export default {
name: 'ConfirmPopup',

View File

@@ -48,18 +48,18 @@
<script>
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import ThumbnailItem from './ThumbnailItem'
import ButtonBase from '../FilesView/ButtonBase'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import ButtonBase from '../UI/Buttons/ButtonBase'
import { required } from 'vee-validate/dist/rules'
import AppInputSwitch from '../Admin/AppInputSwitch'
import AppInputText from '../Admin/AppInputText'
import SwitchInput from './Forms/SwitchInput'
import AppInputSwitch from '../Forms/Layouts/AppInputSwitch'
import AppInputText from '../Forms/Layouts/AppInputText'
import SwitchInput from '../Inputs/SwitchInput'
import { events } from '../../bus'
import EmojiPicker from './EmojiPicker'
import EmojiPicker from '../Emoji/EmojiPicker'
export default {
name: 'CreateFolderPopup',

View File

@@ -57,20 +57,20 @@
</template>
<script>
import AppInputText from '../Admin/AppInputText'
import AppInputText from '../Forms/Layouts/AppInputText'
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import SelectInput from './Forms/SelectInput'
import ButtonBase from '../FilesView/ButtonBase'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import SelectInput from '../Inputs/SelectInput'
import ButtonBase from '../UI/Buttons/ButtonBase'
import { required } from 'vee-validate/dist/rules'
import { events } from '../../bus'
import axios from 'axios'
export default {
name: 'CreateLanguage',
name: 'CreateLanguagePopup',
components: {
ValidationProvider,
ValidationObserver,

View File

@@ -57,15 +57,15 @@
</template>
<script>
import AppInputText from '../Admin/AppInputText'
import AppInputText from '../Forms/Layouts/AppInputText'
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import CopyInput from './Forms/CopyInput'
import ButtonBase from '../FilesView/ButtonBase'
import InfoBox from './Forms/InfoBox'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import CopyInput from '../Inputs/CopyInput'
import ButtonBase from '../UI/Buttons/ButtonBase'
import InfoBox from '../UI/Others/InfoBox'
import { required } from 'vee-validate/dist/rules'
import { events } from '../../bus'
import axios from 'axios'

View File

@@ -44,15 +44,15 @@
</template>
<script>
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import TitlePreview from '../FilesView/TitlePreview'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import ThumbnailItem from './ThumbnailItem'
import ButtonBase from '../FilesView/ButtonBase'
import Spinner from '../FilesView/Spinner'
import TreeMenu from './TreeMenu'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import TitlePreview from '../UI/Labels/TitlePreview'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import ButtonBase from '../UI/Buttons/ButtonBase'
import Spinner from '../UI/Others/Spinner'
import TreeMenu from '../UI/Trees/TreeMenu'
import { isArray } from 'lodash'
import { mapGetters } from 'vuex'
import { events } from '../../bus'

View File

@@ -15,7 +15,7 @@
</template>
<script>
import Spinner from './Spinner'
import Spinner from '../UI/Others/Spinner'
import { mapGetters } from 'vuex'
export default {

View File

@@ -66,17 +66,17 @@
<script>
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import ThumbnailItem from './ThumbnailItem'
import ButtonBase from '../FilesView/ButtonBase'
import AppInputSwitch from '../Admin/AppInputSwitch'
import AppInputText from '../Admin/AppInputText'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import ButtonBase from '../UI/Buttons/ButtonBase'
import AppInputSwitch from '../Forms/Layouts/AppInputSwitch'
import AppInputText from '../Forms/Layouts/AppInputText'
import { required } from 'vee-validate/dist/rules'
import SwitchInput from './Forms/SwitchInput'
import EmojiPicker from './EmojiPicker'
import SwitchInput from '../Inputs/SwitchInput'
import EmojiPicker from '../Emoji/EmojiPicker'
import { XIcon } from 'vue-feather-icons'
import { events } from '../../bus'

View File

@@ -142,22 +142,22 @@
</template>
<script>
import AppInputText from '../Admin/AppInputText'
import AppInputSwitch from '../Admin/AppInputSwitch'
import AppInputText from '../Forms/Layouts/AppInputText'
import AppInputSwitch from '../Forms/Layouts/AppInputSwitch'
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import SelectBoxInput from './Forms/SelectBoxInput'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import MultiEmailInput from './Forms/MultiEmailInput'
import SwitchInput from './Forms/SwitchInput'
import SelectInput from './Forms/SelectInput'
import ThumbnailItem from './ThumbnailItem'
import ActionButton from './ActionButton'
import CopyShareLink from './Forms/CopyShareLink'
import ButtonBase from '../FilesView/ButtonBase'
import InfoBox from './Forms/InfoBox'
import SelectBoxInput from '../Inputs/SelectBoxInput'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import MultiEmailInput from '../Inputs/MultiEmailInput'
import SwitchInput from '../Inputs/SwitchInput'
import SelectInput from '../Inputs/SelectInput'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import ActionButton from '../UI/Buttons/ActionButton'
import CopyShareLink from '../Inputs/CopyShareLink'
import ButtonBase from '../UI/Buttons/ButtonBase'
import InfoBox from '../UI/Others/InfoBox'
import { LinkIcon, MailIcon } from 'vue-feather-icons'
import { required } from 'vee-validate/dist/rules'
import { mapGetters } from 'vuex'

View File

@@ -189,22 +189,22 @@
<script>
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
import MultiEmailInput from './Forms/MultiEmailInput'
import SelectBoxInput from './Forms/SelectBoxInput'
import CopyShareLink from './Forms/CopyShareLink'
import PopupWrapper from './Popup/PopupWrapper'
import PopupActions from './Popup/PopupActions'
import PopupContent from './Popup/PopupContent'
import PopupHeader from './Popup/PopupHeader'
import SwitchInput from './Forms/SwitchInput'
import SelectInput from './Forms/SelectInput'
import ThumbnailItem from './ThumbnailItem'
import ActionButton from './ActionButton'
import ButtonBase from '../FilesView/ButtonBase'
import AppInputSwitch from '../Admin/AppInputSwitch'
import AppInputText from '../Admin/AppInputText'
import MultiEmailInput from '../Inputs/MultiEmailInput'
import SelectBoxInput from '../Inputs/SelectBoxInput'
import CopyShareLink from '../Inputs/CopyShareLink'
import PopupWrapper from './Components/PopupWrapper'
import PopupActions from './Components/PopupActions'
import PopupContent from './Components/PopupContent'
import PopupHeader from './Components/PopupHeader'
import SwitchInput from '../Inputs/SwitchInput'
import SelectInput from '../Inputs/SelectInput'
import ThumbnailItem from '../UI/Entries/ThumbnailItem'
import ActionButton from '../UI/Buttons/ActionButton'
import ButtonBase from '../UI/Buttons/ButtonBase'
import AppInputSwitch from '../Forms/Layouts/AppInputSwitch'
import AppInputText from '../Forms/Layouts/AppInputText'
import { required } from 'vee-validate/dist/rules'
import Spinner from '../FilesView/Spinner'
import Spinner from '../UI/Others/Spinner'
import { events } from '../../bus'
import { mapGetters } from 'vuex'
import axios from 'axios'

View File

@@ -17,7 +17,7 @@
</template>
<script>
import TextLabel from '../Others/TextLabel'
import TextLabel from '../UI/Labels/TextLabel'
import { ChevronUpIcon } from 'vue-feather-icons'
export default {

View File

@@ -3,7 +3,7 @@
class="content-sidebar z-[9] hidden w-52 flex-none select-none overflow-y-auto bg-light-background pt-6 dark:bg-dark-background lg:block xl:w-56"
id="content-sidebar"
>
<slot></slot>
<slot />
</section>
</template>

View File

@@ -72,11 +72,11 @@
</template>
<script>
import MemberAvatar from '../FilesView/MemberAvatar'
import MemberAvatar from '../UI/Others/MemberAvatar'
import {mapGetters} from 'vuex'
import {HardDriveIcon, MoonIcon, PowerIcon, SettingsIcon, SunIcon, UserIcon,} from 'vue-feather-icons'
import NotificationCenter from "../Notifications/NotificationCenter"
import NotificationBell from "./NotificationBell";
import NotificationBell from "../Notifications/Components/NotificationBell";
export default {
name: 'SidebarNavigation',

Some files were not shown because too many files have changed in this diff Show More