Compare commits

...

5 Commits
v1.1 ... v1.2

Author SHA1 Message Date
MakingCG
ea74c8885f Version 1.2
- Move your items by folder tree
- Fixed bug with image rotation on iOS Device
2020-03-28 12:26:51 +01:00
MakingCG
7cdf463e4e bug fixes 2020-03-16 18:23:22 +01:00
MakingCG
850f910b96 Update Readme.md 2020-03-15 11:11:21 +01:00
MakingCG
4492696e3d readme 2020-03-15 11:09:42 +01:00
MakingCG
dc74020f2d Config update 2020-03-15 10:55:32 +01:00
37 changed files with 1144 additions and 1131 deletions

6
.idea/misc.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" filepath="$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" />
</modules>
</component>
</project>

128
.idea/php.xml generated
View File

@@ -1,128 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/gabrielelana/byte-units" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/vendor/intervention/image" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/vendor/barryvdh/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/teamtnt/laravel-scout-tntsearch-driver" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/teamtnt/tntsearch" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
<path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/league/flysystem" />
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
<path value="$PROJECT_DIR$/vendor/erusev/parsedown" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
<path value="$PROJECT_DIR$/vendor/fzaninotto/faker" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/askedio/laravel-soft-cascade" />
<path value="$PROJECT_DIR$/vendor/laravel/framework" />
<path value="$PROJECT_DIR$/vendor/laravel/scout" />
<path value="$PROJECT_DIR$/vendor/laravel/tinker" />
<path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
<path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/beyondcode/laravel-dump-server" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-color" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-highlighter" />
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/laravel/passport" />
<path value="$PROJECT_DIR$/vendor/league/event" />
<path value="$PROJECT_DIR$/vendor/facade/ignition" />
<path value="$PROJECT_DIR$/vendor/league/oauth2-server" />
<path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
<path value="$PROJECT_DIR$/vendor/defuse/php-encryption" />
<path value="$PROJECT_DIR$/vendor/phpseclib/phpseclib" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
<path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
<path value="$PROJECT_DIR$/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/vendor/symfony/psr-http-message-bridge" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings load_method="CUSTOM_LOADER" configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
</phpunit_settings>
</component>
</project>

6
.idea/vcs.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/defuse/php-encryption" />
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/flare-client-php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/ignition" />
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/ignition-contracts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/firebase/php-jwt" />
<excludeFolder url="file://$MODULE_DIR$/vendor/fruitcake/laravel-cors" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laminas/laminas-diactoros" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/passport" />
<excludeFolder url="file://$MODULE_DIR$/vendor/lcobucci/jwt" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/commonmark" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/event" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/oauth2-server" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nyholm/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpseclib/phpseclib" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/scrivo/highlight.php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/type" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/error-handler" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/psr-http-message-bridge" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions" suppressed-tasks="SCSS" />
</project>

739
.idea/workspace.xml generated
View File

@@ -1,739 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="6ba7f65e-b845-4413-bbbb-cad4b4fb5f38" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.editorconfig" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/FileManagerFile.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/FileManagerFile.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/FileManagerFolder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/FileManagerFolder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/vuefilemanager.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/vuefilemanager.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/css/app.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/css/app.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/main.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/main.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/mix-manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/public/mix-manifest.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/DesktopToolbar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/DesktopToolbar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileInfoPanel.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileInfoPanel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FilesContainer.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FilesContainer.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButton.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButton.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButtonUpload.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButtonUpload.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileOptionList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileOptionList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileToolbar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileToolbar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButton.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButton.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/PageHeader.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/PageHeader.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/router.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/helpers.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/helpers.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/store/modules/filesView.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/store/modules/filesView.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" beforeDir="false" afterPath="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/webpack.mix.js" beforeDir="false" afterPath="$PROJECT_DIR$/webpack.mix.js" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
<execution>
<executable />
</execution>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201">
<caret line="516" column="13" selection-start-line="516" selection-start-column="13" selection-end-line="516" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>SET_AUTHORIZED</find>
<find>error.data</find>
<find>SET_START_DIREC</find>
<find>Nunito:400</find>
<find>context</find>
<find>token</find>
<find>cookie</find>
<find>getAppData</find>
<find>SET_AUT</find>
<find>PublicCloud</find>
<find>Illuminate\Http\Response</find>
<find>$updateText</find>
<find>...map</find>
<find>...mapGetters</find>
<find>access_token</find>
<find>user_account_capacity</find>
<find>'bo</find>
<find>SET_CURRENT</find>
<find>logOut</find>
<find>255</find>
<find>_forms</find>
<find>limit</find>
<find>max_file_uploads</find>
<find>post_max_size</find>
<find>uploadFiles</find>
<find>whereIn</find>
<find>trash</find>
<find>you exceed your storage</find>
<find>deleted_files</find>
<find>trashed_files</find>
</findStrings>
</component>
<component name="FrameworkCommandLineHistory">
<commandsHistory>
<command text="npm update" />
<command text="npm run prod" />
<command text="npm update" />
<command text="npm run prod" />
<command text="npm update" />
<command text="npm run prod" />
<command text="npm remove sass-loader" />
<command text="npm update" />
<command text="npm rebuild" />
<command text="npm run prod" />
<command text="npm run hot" />
<command text="php artisan make:controller AppFunctionsController" />
<command text="php artisan dump-autoload" />
<command text="composer dump-autoload" />
<command text="php artisan serve" />
<command text="composer update" />
<command text="npm run prod" />
<command text="npm run hot" />
<command text="php artisan serve" />
<command text="npm run hot" />
<command text="php artisan serve" />
<command text="npm run hot" />
<command text="npm run prod" />
<command text="npm run hot" />
<command text="npm run prod" />
</commandsHistory>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="mock:///Dummy.txt" root0="SKIP_INSPECTION" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" />
<option value="$PROJECT_DIR$/resources/js/bootstrap.js" />
<option value="$PROJECT_DIR$/app/Http/Middleware/CookieAuth.php" />
<option value="$PROJECT_DIR$/app/Http/Kernel.php" />
<option value="$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/AuthController.php" />
<option value="$PROJECT_DIR$/resources/js/main.js" />
<option value="$PROJECT_DIR$/resources/js/store/modules/app.js" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/FileManagerController.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/UserAccountController.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php" />
<option value="$PROJECT_DIR$/resources/sass/app.scss" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/UserImageInput.vue" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" />
<option value="$PROJECT_DIR$/app/Http/helpers.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" />
<option value="$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php" />
<option value="$PROJECT_DIR$/routes/web.php" />
<option value="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" />
<option value="$PROJECT_DIR$/resources/js/App.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" />
<option value="$PROJECT_DIR$/.env" />
<option value="$USER_HOME$/Desktop/vue-file-manager-file-manager-127.0.0.111-03-2020" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanagerlaravel.hi5ve.digital/.env" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/etc/apache2/sites-available/devvuefilemanager.hi5ve.digital.conf" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/.env" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" />
<option value="$PROJECT_DIR$/app/FileManagerFile.php" />
<option value="$PROJECT_DIR$/routes/api.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/config/vuefilemanager.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/public/info.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/etc/php/7.3/apache2/php.ini" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" />
<option value="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" />
<option value="$PROJECT_DIR$/resources/js/helpers.js" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" />
<option value="$PROJECT_DIR$/webpack.mix.js" />
<option value="$PROJECT_DIR$/public/mix-manifest.json" />
<option value="$PROJECT_DIR$/resources/views/index.blade.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" />
<option value="$PROJECT_DIR$/resources/js/store/modules/filesView.js" />
<option value="$PROJECT_DIR$/app/FileManagerFolder.php" />
<option value="$PROJECT_DIR$/config/vuefilemanager.php" />
<option value="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" />
</list>
</option>
</component>
<component name="PhpWorkspaceProjectConfiguration">
<include_path>
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/gabrielelana/byte-units" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/vendor/intervention/image" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/vendor/barryvdh/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/teamtnt/laravel-scout-tntsearch-driver" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/teamtnt/tntsearch" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
<path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/league/flysystem" />
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
<path value="$PROJECT_DIR$/vendor/erusev/parsedown" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
<path value="$PROJECT_DIR$/vendor/fzaninotto/faker" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/askedio/laravel-soft-cascade" />
<path value="$PROJECT_DIR$/vendor/laravel/framework" />
<path value="$PROJECT_DIR$/vendor/laravel/scout" />
<path value="$PROJECT_DIR$/vendor/laravel/tinker" />
<path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
<path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/beyondcode/laravel-dump-server" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-color" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-highlighter" />
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/laravel/passport" />
<path value="$PROJECT_DIR$/vendor/league/event" />
<path value="$PROJECT_DIR$/vendor/facade/ignition" />
<path value="$PROJECT_DIR$/vendor/league/oauth2-server" />
<path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
<path value="$PROJECT_DIR$/vendor/defuse/php-encryption" />
<path value="$PROJECT_DIR$/vendor/phpseclib/phpseclib" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
<path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
<path value="$PROJECT_DIR$/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/vendor/symfony/psr-http-message-bridge" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
</include_path>
</component>
<component name="ProjectFrameBounds" fullScreen="true">
<option name="width" value="1680" />
<option name="height" value="1050" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="vue-filemanager-laravel-v1.1" type="b2602c69:ProjectViewProjectNode" />
<item name="vue-filemanager-laravel-v1.1" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.highlight.mappings" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.highlight.symlinks" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
<property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
<property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/sass" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="npm" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
<recent name="$PROJECT_DIR$/resources/sass/vue-file-manager" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/sass" />
<recent name="$PROJECT_DIR$/resources/js" />
<recent name="$PROJECT_DIR$/public/assets/images" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/PublicCloud" />
<recent name="$PROJECT_DIR$/app" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="phpunit.xml" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
<TestRunner scope="XML" />
<method v="2" />
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="6ba7f65e-b845-4413-bbbb-cad4b4fb5f38" name="Default Changelist" comment="" />
<created>1582538406416</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1582538406416</updated>
<workItem from="1582538408226" duration="28590000" />
<workItem from="1583169038847" duration="49277000" />
<workItem from="1583771973016" duration="47540000" />
<workItem from="1584014365621" duration="499000" />
<workItem from="1584201902438" duration="1297000" />
<workItem from="1584205890781" duration="1931000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="129134000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1050" extended-state="0" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15654762" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="npm" order="2" side_tool="true" />
<window_info id="Favorites" order="3" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.3295238" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info active="true" anchor="bottom" id="Command Line Tools Console" order="10" visible="true" weight="0.36761904" />
<window_info anchor="bottom" id="Terminal" order="11" weight="0.3295238" />
<window_info anchor="bottom" id="Event Log" order="12" side_tool="true" />
<window_info anchor="bottom" id="File Transfer" order="13" weight="0.3295238" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Database" order="3" />
<window_info anchor="right" id="Remote Host" order="4" weight="0.23869048" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-RlTVKdTenHVQeDuC-8f8b71f93d874c58899eae34ff855b91.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-qu7zENEPpyXacK9u-8acb7489e4354e9fa12b786f4f1014b3.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-PwOYrH3X4Q5MFNnJ-b828ce5c1d014deab79c6b1ac8dd5500.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-PeK8nBe7vKFR2DXN-8480033d08b555735bcc1df441eeec0f.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Ogjq9EIILgeojKDb-nf88xyvvCWOJHY93-kitchen-island.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-NfLjyaaboBPCGi3X-7bec4e11b047456780d83011701a662c.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-md1FYpic11mXzsMH-59352395_2290695347810363_751927439731487941_n.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-lnh7N5vgH74DhOOh-57bad2c20c758f20b83b2344212a2a93.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-ddGQjKsXe6smj3Jx-7bec4e11b047456780d83011701a662c.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-eIXPHBrXEjqxydte-d5410c8079e3a3970303779305d11048.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Fg3cXWFgEn6Cmt5M-6f5362be8aca06dc4ea234865ac49736.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-fNx1iGh1lpGyS66P-af0c68fb4d3b82da011ca4b0c18c8a65.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Gv6TX9lZl8TZ5kCK-8f8b71f93d874c58899eae34ff855b91.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-HlK34TY0sfw4lDk3-nf88xyvvCWOJHY93-kitchen-island.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-i2BdCpXqXyMcS5oB-ea7afab3993a45c3a88ee7eb9ce42a8e.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-IseiNdZqCg7dQRD0-ItWorksOnMyMachine.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Jaupegd57IHxsSGE-57bad2c20c758f20b83b2344212a2a93.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-JVdvcCD7WcFNG6MF-ViewOfElephantinWater.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="363">
<caret line="194" column="9" selection-start-line="194" selection-start-column="9" selection-end-line="194" selection-end-column="9" />
<folding>
<element signature="n#div#0;n#div#0;n#transition#0;n#template#0;n#!!top" />
<element signature="e#3246#3349#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="713">
<caret line="89" column="17" selection-start-line="89" selection-start-column="17" selection-end-line="89" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/helpers.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="116" column="22" selection-start-line="116" selection-start-column="9" selection-end-line="116" selection-end-column="22" />
<folding>
<element signature="n#store_avatar#0;n#!!top" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/helpers.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="148" column="38" selection-start-line="148" selection-start-column="22" selection-end-line="148" selection-end-column="38" />
<folding>
<element signature="e#0#33#0" expanded="true" />
<element signature="e#201#287#0" />
<element signature="e#730#1219#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="10" column="60" selection-start-line="10" selection-start-column="60" selection-end-line="10" selection-end-column="60" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
<caret line="47" column="77" selection-start-line="47" selection-start-column="59" selection-end-line="47" selection-end-column="77" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="672">
<caret line="24" selection-start-line="21" selection-start-column="27" selection-end-line="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.editorconfig">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManager.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="560">
<caret line="20" column="26" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="26" />
<folding>
<element signature="e#618#695#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="57" column="40" selection-start-line="57" selection-start-column="40" selection-end-line="57" selection-end-column="40" />
<folding>
<element signature="e#314#409#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/public/mix-manifest.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="2" column="35" selection-start-line="2" selection-start-column="35" selection-end-line="2" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/DemoPageComponents/MobileMenu.vue">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/main.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/App.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="2" column="31" lean-forward="true" selection-start-line="2" selection-start-column="31" selection-end-line="2" selection-end-column="31" />
<folding>
<element signature="n#style#0;n#VueFileManager#0;n#div#0;n#template#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/webpack.mix.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="17" column="14" lean-forward="true" selection-start-line="17" selection-start-column="14" selection-end-line="17" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.styleci.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/config/auth.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/filesView.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="594">
<caret line="185" column="48" selection-start-line="185" selection-start-column="12" selection-end-line="185" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/userAuth.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2734">
<caret line="101" column="4" selection-start-line="101" selection-start-column="4" selection-end-line="101" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="50" column="51" selection-start-line="50" selection-start-column="51" selection-end-line="50" selection-end-column="51" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-186">
<caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/FileManagerFolder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3342">
<caret line="120" column="5" selection-start-line="120" selection-start-column="5" selection-end-line="120" selection-end-column="5" />
<folding>
<element signature="e#23#41#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/FileManagerFile.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1682">
<caret line="13" column="6" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
<folding>
<element signature="e#23#44#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2678">
<caret line="19" column="6" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3070">
<caret line="14" column="6" selection-start-line="14" selection-start-column="6" selection-end-line="14" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-11946">
<caret line="164" column="49" lean-forward="true" selection-start-line="164" selection-start-column="49" selection-end-line="164" selection-end-column="49" />
<folding>
<element signature="e#40#67#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="326">
<caret line="26" column="46" selection-start-line="26" selection-start-column="46" selection-end-line="26" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/vuefilemanager.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="308">
<caret line="11" column="35" selection-start-line="11" selection-start-column="35" selection-end-line="11" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/web.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/routes/api.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-40">
<caret line="45" column="37" selection-start-line="45" selection-start-column="37" selection-end-line="45" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201">
<caret line="516" column="13" selection-start-line="516" selection-start-column="13" selection-end-line="516" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
</state>
</provider>
</entry>
</component>
</project>

BIN
.rnd Normal file

Binary file not shown.

View File

@@ -1,78 +1,50 @@
<p align="center"><img src="https://res.cloudinary.com/dtfbvvkyp/image/upload/v1566331377/laravel-logolockup-cmyk-red.svg" width="400"></p>
## VueFileManager - Make your own Private Cloud with VueFileManager client powered by Laravel and Vue
For installation, please read [Online Documentation](https://vuefilemanager.hi5ve.digital/docs/).
![VueFileManager](https://vuefilemanager.hi5ve.digital/assets/images/vue-file-manager-in-devices-dark.png)
<p align="center">
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
</p>
**Features:**
## About Laravel
### Drag & Drop
Reorder your files easily, just drag your folder or file and drop to another folder.
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
### List & Grid Preview
You can change from two types of file and folder previews. Show your items in list or grid preview.
- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
### Background Uploading
Your files is uploaded in the background, so nothing will stop you from working with the files.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
### File & Folder searching
Search your items quickly, from anywhere in the app you are.
## Learning Laravel
### Custom Context Menu
Quick actions next to your file on your right click.
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
### File Details
Get preview of your files quickli in right panel next to your files.
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
### Improved Mobile User Experience
Need to quickly upload or get your files on your smartphone? Its not problem.
## Laravel Sponsors
### Laravel PHP Framework
You don't have to create your own API for VueFileManager. You can use our pre-build backend in Laravel PHP Framework.
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
### Vue.js
Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. We ❤️ Vue.
- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
- **[Cubet Techno Labs](https://cubettech.com)**
- **[Cyber-Duck](https://cyber-duck.co.uk)**
- **[British Software Development](https://www.britishsoftware.co)**
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
- **[DevSquad](https://devsquad.com)**
- [UserInsights](https://userinsights.com)
- [Fragrantica](https://www.fragrantica.com)
- [SOFTonSOFA](https://softonsofa.com/)
- [User10](https://user10.com)
- [Soumettre.fr](https://soumettre.fr/)
- [CodeBrisk](https://codebrisk.com)
- [1Forge](https://1forge.com)
- [TECPRESSO](https://tecpresso.co.jp/)
- [Runtime Converter](http://runtimeconverter.com/)
- [WebL'Agence](https://weblagence.com/)
- [Invoice Ninja](https://www.invoiceninja.com)
- [iMi digital](https://www.imi-digital.de/)
- [Earthlink](https://www.earthlink.ro/)
- [Steadfast Collective](https://steadfastcollective.com/)
- [We Are The Robots Inc.](https://watr.mx/)
- [Understand.io](https://www.understand.io/)
- [Abdel Elrafa](https://abdelelrafa.com)
- [Hyper Host](https://hyper.host)
- [Appoly](https://www.appoly.co.uk)
- [OP.GG](https://op.gg)
### Online Documentation
Dont worry, we will explain all things you should know to successfully start your VueFileManager instance.
## Contributing
### Night Mode
We add native support for dark mode. Now, its easy for your eyes to work with your files at night.
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
### User Login & Registration
Let user create their own account with own storage. All these accounts is protected by user login.
## Code of Conduct
### Integrated Trash
Did you delete something by accident or do you want your deleted files back? Restore your files from trash.
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
### Navigation Sidebar
Navigate through your files easily. Add you favourites folder or look on your latest uploads.
## Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
## License
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
### Storage Limits
Set storage limits to your user account to sure, you never exceed your storage limits.

View File

@@ -446,11 +446,11 @@ class FileManagerController extends Controller
$thumbnail = 'thumbnail-' . $filename;
// Create intervention image
$image = Image::make($file->getRealPath());
$image = Image::make($file->getRealPath())->orientate();
$image->resize(256, null, function ($constraint) {
$constraint->aspectRatio();
})->save(null, 90);
})->stream();
// Store thumbnail to s3
Storage::disk('local')->put($directory . '/' . $thumbnail, $image);

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\FileManagerFolder;
use App\User;
use ByteUnits\Metric;
use Illuminate\Http\Request;
@@ -24,14 +25,16 @@ class UserAccountController extends Controller
$user_id = Auth::id();
// Get User
$user = User::with(['favourites', 'latest_uploads'])->where('id', $user_id)->first();
$user = User::with(['favourites', 'latest_uploads'])
->where('id', $user_id)
->first();
return [
'user' => $user->only(['name', 'email', 'avatar']),
'favourites' => $user->favourites->makeHidden(['pivot']),
'latest_uploads' => $user->latest_uploads->makeHidden(['user_id', 'basename']),
'storage' => [
'storage' => [
'used' => Metric::bytes($user->used_capacity)->format(),
'capacity' => format_gigabytes(config('vuefilemanager.user_storage_capacity')),
'percentage' => get_storage_fill_percentage($user->used_capacity, config('vuefilemanager.user_storage_capacity')),
@@ -39,6 +42,28 @@ class UserAccountController extends Controller
];
}
/**
* Get user folder tree
*
* @return array
*/
public function folder_tree() {
$folders = FileManagerFolder::with('folders:id,parent_id,unique_id,name')
->where('parent_id', 0)
->where('user_id', Auth::id())
->get(['id', 'parent_id', 'unique_id', 'name']);
return [
[
'unique_id' => 0,
'name' => 'Home',
'location' => 'base',
'folders' => $folders,
]
];
}
/**
* Update user profile
*

View File

@@ -1,33 +0,0 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class TestMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('peterpapp@makingcg.com')->view('welcome');
}
}

View File

@@ -43,7 +43,7 @@ class ResetPassword extends Notification
$reset_url = url('/create-new-password?token=' . $this->token);
return (new MailMessage)
->subject('Reset password for your account on ' . env('APP_NAME'))
->subject('Reset password for your account on ' . config('vuefilemanager.app_name'))
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', $reset_url)
->line('If you did not request a password reset, no further action is required.');

View File

@@ -2,6 +2,12 @@
return [
// Your app name
'app_name' => 'VueFileManager',
// Your app logo
'app_logo' => '/assets/images/hero.svg',
// Enable or disable user account registration
'registration' => true,

2
public/js/main.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,249 @@
{
"/js/main.js": "/js/main.js?id=cef949b486ef02300d3b",
"/css/app.css": "/css/app.css?id=1864eb943a745d7d07e2"
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/js/main.36df5424dd932bd30f74.hot-update.js": "/js/main.36df5424dd932bd30f74.hot-update.js",
"/js/main.de09a450b740c9685feb.hot-update.js": "/js/main.de09a450b740c9685feb.hot-update.js",
"/js/main.31a3eca7c2342fa121dd.hot-update.js": "/js/main.31a3eca7c2342fa121dd.hot-update.js",
"/js/main.42c65585e8023b9698f0.hot-update.js": "/js/main.42c65585e8023b9698f0.hot-update.js",
"/js/main.f43b15ea8dc57424419c.hot-update.js": "/js/main.f43b15ea8dc57424419c.hot-update.js",
"/js/main.653b4946ab1bc346ca68.hot-update.js": "/js/main.653b4946ab1bc346ca68.hot-update.js",
"/js/main.7c243b5d053a8d0dc2b9.hot-update.js": "/js/main.7c243b5d053a8d0dc2b9.hot-update.js",
"/js/main.3c227ef426613ed5d773.hot-update.js": "/js/main.3c227ef426613ed5d773.hot-update.js",
"/js/main.5bf243e5587d855112c6.hot-update.js": "/js/main.5bf243e5587d855112c6.hot-update.js",
"/js/main.f8ba08f1021af3a3529d.hot-update.js": "/js/main.f8ba08f1021af3a3529d.hot-update.js",
"/js/main.68b09738fdc75c16500c.hot-update.js": "/js/main.68b09738fdc75c16500c.hot-update.js",
"/js/main.6db7b6cf394e21e087fd.hot-update.js": "/js/main.6db7b6cf394e21e087fd.hot-update.js",
"/js/main.e6a5b81289b95501bdb1.hot-update.js": "/js/main.e6a5b81289b95501bdb1.hot-update.js",
"/js/main.95f2b217e5e1e815d550.hot-update.js": "/js/main.95f2b217e5e1e815d550.hot-update.js",
"/js/main.29aae7d3a4bac5cf3715.hot-update.js": "/js/main.29aae7d3a4bac5cf3715.hot-update.js",
"/js/main.1ccd2fe6f216173db7ea.hot-update.js": "/js/main.1ccd2fe6f216173db7ea.hot-update.js",
"/js/main.41f3eb2dede8f28341e0.hot-update.js": "/js/main.41f3eb2dede8f28341e0.hot-update.js",
"/js/main.5c2db1ff09fb420f4a1f.hot-update.js": "/js/main.5c2db1ff09fb420f4a1f.hot-update.js",
"/js/main.486fdd73725da4624738.hot-update.js": "/js/main.486fdd73725da4624738.hot-update.js",
"/js/main.0b4b61f92bfc8af065df.hot-update.js": "/js/main.0b4b61f92bfc8af065df.hot-update.js",
"/js/main.22a296026cdf2e3df0d2.hot-update.js": "/js/main.22a296026cdf2e3df0d2.hot-update.js",
"/js/main.99d7e0b721a99851d7de.hot-update.js": "/js/main.99d7e0b721a99851d7de.hot-update.js",
"/js/main.28a4d19c7b8e2c29d616.hot-update.js": "/js/main.28a4d19c7b8e2c29d616.hot-update.js",
"/js/main.83eff80d8e062bc358d3.hot-update.js": "/js/main.83eff80d8e062bc358d3.hot-update.js",
"/js/main.f90e00f0b87eb215ab02.hot-update.js": "/js/main.f90e00f0b87eb215ab02.hot-update.js",
"/js/main.3f57f62724e54fede92e.hot-update.js": "/js/main.3f57f62724e54fede92e.hot-update.js",
"/js/main.7b8a28e12388efec7afc.hot-update.js": "/js/main.7b8a28e12388efec7afc.hot-update.js",
"/js/main.6f9870778c8c1d4ebda5.hot-update.js": "/js/main.6f9870778c8c1d4ebda5.hot-update.js",
"/js/main.ee042fe50949a7666b82.hot-update.js": "/js/main.ee042fe50949a7666b82.hot-update.js",
"/js/main.927dbadc707e3220b549.hot-update.js": "/js/main.927dbadc707e3220b549.hot-update.js",
"/js/main.f4623e08503ea0ad408a.hot-update.js": "/js/main.f4623e08503ea0ad408a.hot-update.js",
"/js/main.64e698be82fa86830096.hot-update.js": "/js/main.64e698be82fa86830096.hot-update.js",
"/js/main.2f3926c313c008d3e865.hot-update.js": "/js/main.2f3926c313c008d3e865.hot-update.js",
"/js/main.c7646fe892e07122fe90.hot-update.js": "/js/main.c7646fe892e07122fe90.hot-update.js",
"/js/main.10580c7dacaa2251a774.hot-update.js": "/js/main.10580c7dacaa2251a774.hot-update.js",
"/js/main.8038f4e69a18040afbf8.hot-update.js": "/js/main.8038f4e69a18040afbf8.hot-update.js",
"/js/main.5d60294395b20ab918d3.hot-update.js": "/js/main.5d60294395b20ab918d3.hot-update.js",
"/js/main.e9af313e58f9a16ec648.hot-update.js": "/js/main.e9af313e58f9a16ec648.hot-update.js",
"/js/main.056335ccd1446758d9f0.hot-update.js": "/js/main.056335ccd1446758d9f0.hot-update.js",
"/js/main.ca5ec6e497226f5d1dab.hot-update.js": "/js/main.ca5ec6e497226f5d1dab.hot-update.js",
"/js/main.3c648af049aebd944de1.hot-update.js": "/js/main.3c648af049aebd944de1.hot-update.js",
"/js/main.1f0c295e9adb7b4fca6f.hot-update.js": "/js/main.1f0c295e9adb7b4fca6f.hot-update.js",
"/js/main.4b33d4e911de5ec0811c.hot-update.js": "/js/main.4b33d4e911de5ec0811c.hot-update.js",
"/js/main.587f7df46a60ffc22cd4.hot-update.js": "/js/main.587f7df46a60ffc22cd4.hot-update.js",
"/js/main.6bbccb523005ea4d0671.hot-update.js": "/js/main.6bbccb523005ea4d0671.hot-update.js",
"/js/main.2f1255acf7e146583b24.hot-update.js": "/js/main.2f1255acf7e146583b24.hot-update.js",
"/js/main.adba7d6747f7052a8670.hot-update.js": "/js/main.adba7d6747f7052a8670.hot-update.js",
"/js/main.294c9d40e42abf3a56f7.hot-update.js": "/js/main.294c9d40e42abf3a56f7.hot-update.js",
"/js/main.eb85de6d925db756b84c.hot-update.js": "/js/main.eb85de6d925db756b84c.hot-update.js",
"/js/main.b5a9199ad5bce5aba3f8.hot-update.js": "/js/main.b5a9199ad5bce5aba3f8.hot-update.js",
"/js/main.f3311a1aac9906befcc2.hot-update.js": "/js/main.f3311a1aac9906befcc2.hot-update.js",
"/js/main.40a07f1a0110e6662abc.hot-update.js": "/js/main.40a07f1a0110e6662abc.hot-update.js",
"/js/main.68617f18a1a6ffa23b24.hot-update.js": "/js/main.68617f18a1a6ffa23b24.hot-update.js",
"/js/main.aafc6f3248ba60ea15ae.hot-update.js": "/js/main.aafc6f3248ba60ea15ae.hot-update.js",
"/js/main.7a2f5f0d468e2faa519d.hot-update.js": "/js/main.7a2f5f0d468e2faa519d.hot-update.js",
"/js/main.9b4345e2392947a80d3e.hot-update.js": "/js/main.9b4345e2392947a80d3e.hot-update.js",
"/js/main.0a09af37b1d06d149895.hot-update.js": "/js/main.0a09af37b1d06d149895.hot-update.js",
"/js/main.4109f0c6cd2b84f785b4.hot-update.js": "/js/main.4109f0c6cd2b84f785b4.hot-update.js",
"/js/main.9883b699731ec03a7d5e.hot-update.js": "/js/main.9883b699731ec03a7d5e.hot-update.js",
"/js/main.18cb51cfea65a7a264b3.hot-update.js": "/js/main.18cb51cfea65a7a264b3.hot-update.js",
"/js/main.ae7f4be4f3f0366f87ce.hot-update.js": "/js/main.ae7f4be4f3f0366f87ce.hot-update.js",
"/js/main.c58699bfcbc89ada5e92.hot-update.js": "/js/main.c58699bfcbc89ada5e92.hot-update.js",
"/js/main.9450700c3b11fa506614.hot-update.js": "/js/main.9450700c3b11fa506614.hot-update.js",
"/js/main.c32f44aac284473fdeac.hot-update.js": "/js/main.c32f44aac284473fdeac.hot-update.js",
"/js/main.24514af5bbe024b6ec51.hot-update.js": "/js/main.24514af5bbe024b6ec51.hot-update.js",
"/js/main.bbfd2f46936f41f11a3c.hot-update.js": "/js/main.bbfd2f46936f41f11a3c.hot-update.js",
"/js/main.425158bb74930c327e37.hot-update.js": "/js/main.425158bb74930c327e37.hot-update.js",
"/js/main.ab301d78b46cd83c908e.hot-update.js": "/js/main.ab301d78b46cd83c908e.hot-update.js",
"/js/main.08be8ec49ec017b419ba.hot-update.js": "/js/main.08be8ec49ec017b419ba.hot-update.js",
"/js/main.5902509e54722435a01b.hot-update.js": "/js/main.5902509e54722435a01b.hot-update.js",
"/js/main.9249200d7fa42c288a42.hot-update.js": "/js/main.9249200d7fa42c288a42.hot-update.js",
"/js/main.8a48eaa79b89c21215b5.hot-update.js": "/js/main.8a48eaa79b89c21215b5.hot-update.js",
"/js/main.73098fb7c47fa3cebe37.hot-update.js": "/js/main.73098fb7c47fa3cebe37.hot-update.js",
"/js/main.4a31570dc92456b66580.hot-update.js": "/js/main.4a31570dc92456b66580.hot-update.js",
"/js/main.84855cbff31316c3060c.hot-update.js": "/js/main.84855cbff31316c3060c.hot-update.js",
"/js/main.1cf56d3b783512ee7678.hot-update.js": "/js/main.1cf56d3b783512ee7678.hot-update.js",
"/js/main.80a12b408701dd4794b4.hot-update.js": "/js/main.80a12b408701dd4794b4.hot-update.js",
"/js/main.082a390427496610b2a2.hot-update.js": "/js/main.082a390427496610b2a2.hot-update.js",
"/js/main.f6e9da1a7704a1d1b96a.hot-update.js": "/js/main.f6e9da1a7704a1d1b96a.hot-update.js",
"/js/main.2f90f82e2bab419d7048.hot-update.js": "/js/main.2f90f82e2bab419d7048.hot-update.js",
"/js/main.914d1e3a53f5c782f4e4.hot-update.js": "/js/main.914d1e3a53f5c782f4e4.hot-update.js",
"/js/main.87ed1b434a045a7d49af.hot-update.js": "/js/main.87ed1b434a045a7d49af.hot-update.js",
"/js/main.29c5bd7b7dd8eb64c131.hot-update.js": "/js/main.29c5bd7b7dd8eb64c131.hot-update.js",
"/js/main.56efe4a8fe0039b074b8.hot-update.js": "/js/main.56efe4a8fe0039b074b8.hot-update.js",
"/js/main.d73188066c126281d0e4.hot-update.js": "/js/main.d73188066c126281d0e4.hot-update.js",
"/js/main.4e8ac32986ecec44e495.hot-update.js": "/js/main.4e8ac32986ecec44e495.hot-update.js",
"/js/main.424d6c175581040a3d5a.hot-update.js": "/js/main.424d6c175581040a3d5a.hot-update.js",
"/js/main.1419778a403719812edf.hot-update.js": "/js/main.1419778a403719812edf.hot-update.js",
"/js/main.26bd18af2345a2e7e617.hot-update.js": "/js/main.26bd18af2345a2e7e617.hot-update.js",
"/js/main.edf91fc9e80ce289bcfb.hot-update.js": "/js/main.edf91fc9e80ce289bcfb.hot-update.js",
"/js/main.e3b8efde1826f4626473.hot-update.js": "/js/main.e3b8efde1826f4626473.hot-update.js",
"/js/main.b17fb703155bfb11df2a.hot-update.js": "/js/main.b17fb703155bfb11df2a.hot-update.js",
"/js/main.82ba1eaa291963b50d07.hot-update.js": "/js/main.82ba1eaa291963b50d07.hot-update.js",
"/js/main.aefc455ee962cf8c9e97.hot-update.js": "/js/main.aefc455ee962cf8c9e97.hot-update.js",
"/js/main.3fb21f7e0ceba441ba97.hot-update.js": "/js/main.3fb21f7e0ceba441ba97.hot-update.js",
"/js/main.b2c2b800e17c1f5919a6.hot-update.js": "/js/main.b2c2b800e17c1f5919a6.hot-update.js",
"/js/main.df8746deb62e689bbecc.hot-update.js": "/js/main.df8746deb62e689bbecc.hot-update.js",
"/js/main.44f33233b8062cd41035.hot-update.js": "/js/main.44f33233b8062cd41035.hot-update.js",
"/js/main.a0a0931657a1c846edef.hot-update.js": "/js/main.a0a0931657a1c846edef.hot-update.js",
"/js/main.f2388f593b13448cf11f.hot-update.js": "/js/main.f2388f593b13448cf11f.hot-update.js",
"/js/main.0e3e2d850a78479ef732.hot-update.js": "/js/main.0e3e2d850a78479ef732.hot-update.js",
"/js/main.d7c9b886f53f46f5166c.hot-update.js": "/js/main.d7c9b886f53f46f5166c.hot-update.js",
"/js/main.fd45c00377ff61f16358.hot-update.js": "/js/main.fd45c00377ff61f16358.hot-update.js",
"/js/main.95821f0a8266426f4d27.hot-update.js": "/js/main.95821f0a8266426f4d27.hot-update.js",
"/js/main.47ea7a38cbb4ff6dd9ab.hot-update.js": "/js/main.47ea7a38cbb4ff6dd9ab.hot-update.js",
"/js/main.12c383f74f8568edceef.hot-update.js": "/js/main.12c383f74f8568edceef.hot-update.js",
"/js/main.5e8dedefb4c7eff6d80a.hot-update.js": "/js/main.5e8dedefb4c7eff6d80a.hot-update.js",
"/js/main.ee33246cfffafc539e90.hot-update.js": "/js/main.ee33246cfffafc539e90.hot-update.js",
"/js/main.6742d157d3503543a405.hot-update.js": "/js/main.6742d157d3503543a405.hot-update.js",
"/js/main.1deb0e670326692595ae.hot-update.js": "/js/main.1deb0e670326692595ae.hot-update.js",
"/js/main.0935db05580076ac16ff.hot-update.js": "/js/main.0935db05580076ac16ff.hot-update.js",
"/js/main.35f63833ff4c5603f8ba.hot-update.js": "/js/main.35f63833ff4c5603f8ba.hot-update.js",
"/js/main.f6acb760f78f342f3f64.hot-update.js": "/js/main.f6acb760f78f342f3f64.hot-update.js",
"/js/main.02c38d98379e6d0f1d0b.hot-update.js": "/js/main.02c38d98379e6d0f1d0b.hot-update.js",
"/js/main.9ea8a46e2bb05fb226d6.hot-update.js": "/js/main.9ea8a46e2bb05fb226d6.hot-update.js",
"/js/main.56d081d16b24dc6dc234.hot-update.js": "/js/main.56d081d16b24dc6dc234.hot-update.js",
"/js/main.24a0b1aa34e5980a31fd.hot-update.js": "/js/main.24a0b1aa34e5980a31fd.hot-update.js",
"/js/main.c365894e991fa325ba1a.hot-update.js": "/js/main.c365894e991fa325ba1a.hot-update.js",
"/js/main.a7fa26a0ff81d99c9434.hot-update.js": "/js/main.a7fa26a0ff81d99c9434.hot-update.js",
"/js/main.7a3acf4468d4c3e3a237.hot-update.js": "/js/main.7a3acf4468d4c3e3a237.hot-update.js",
"/js/main.29f88756cd6e7f338649.hot-update.js": "/js/main.29f88756cd6e7f338649.hot-update.js",
"/js/main.65a45c1c59cd899b874b.hot-update.js": "/js/main.65a45c1c59cd899b874b.hot-update.js",
"/js/main.b667703e2c093cd8e969.hot-update.js": "/js/main.b667703e2c093cd8e969.hot-update.js",
"/js/main.a673b66401a1e25e60e8.hot-update.js": "/js/main.a673b66401a1e25e60e8.hot-update.js",
"/js/main.d5783f35338b7f225d15.hot-update.js": "/js/main.d5783f35338b7f225d15.hot-update.js",
"/js/main.098853e7c493d33e7ddc.hot-update.js": "/js/main.098853e7c493d33e7ddc.hot-update.js",
"/js/main.f3fe08f24e1ae2c57686.hot-update.js": "/js/main.f3fe08f24e1ae2c57686.hot-update.js",
"/js/main.f3beba6136c46ad360f5.hot-update.js": "/js/main.f3beba6136c46ad360f5.hot-update.js",
"/js/main.1efdaf5af47e6d6d6d06.hot-update.js": "/js/main.1efdaf5af47e6d6d6d06.hot-update.js",
"/js/main.ad589cdd48b175d9fa7c.hot-update.js": "/js/main.ad589cdd48b175d9fa7c.hot-update.js",
"/js/main.e1020b5ecc38d70c6bc5.hot-update.js": "/js/main.e1020b5ecc38d70c6bc5.hot-update.js",
"/js/main.cb79ffb1a1e3e6ce815a.hot-update.js": "/js/main.cb79ffb1a1e3e6ce815a.hot-update.js",
"/js/main.4ecc5d25de8475809154.hot-update.js": "/js/main.4ecc5d25de8475809154.hot-update.js",
"/js/main.65de52bc3aab3e85787b.hot-update.js": "/js/main.65de52bc3aab3e85787b.hot-update.js",
"/js/main.c9ea06012df1ddf208f4.hot-update.js": "/js/main.c9ea06012df1ddf208f4.hot-update.js",
"/js/main.6f79c1030d7ca630328b.hot-update.js": "/js/main.6f79c1030d7ca630328b.hot-update.js",
"/js/main.24f126dc652f88f2141b.hot-update.js": "/js/main.24f126dc652f88f2141b.hot-update.js",
"/js/main.332a087ce57632155a56.hot-update.js": "/js/main.332a087ce57632155a56.hot-update.js",
"/js/main.9244960556ba1061ed9c.hot-update.js": "/js/main.9244960556ba1061ed9c.hot-update.js",
"/js/main.5edfba5e8c25f560a4d1.hot-update.js": "/js/main.5edfba5e8c25f560a4d1.hot-update.js",
"/js/main.411938193b1f3b0eeb71.hot-update.js": "/js/main.411938193b1f3b0eeb71.hot-update.js",
"/js/main.fe8be750aaffc4239c5c.hot-update.js": "/js/main.fe8be750aaffc4239c5c.hot-update.js",
"/js/main.0f391a33f31d87dcd2e0.hot-update.js": "/js/main.0f391a33f31d87dcd2e0.hot-update.js",
"/js/main.3558ef25b7272809d5e1.hot-update.js": "/js/main.3558ef25b7272809d5e1.hot-update.js",
"/js/main.6ec6afd2f7afaf27e869.hot-update.js": "/js/main.6ec6afd2f7afaf27e869.hot-update.js",
"/js/main.3bb1ce050c9c48c283ce.hot-update.js": "/js/main.3bb1ce050c9c48c283ce.hot-update.js",
"/js/main.e36903b50d23cfbcf661.hot-update.js": "/js/main.e36903b50d23cfbcf661.hot-update.js",
"/js/main.ea2227ff34f48d5ba61a.hot-update.js": "/js/main.ea2227ff34f48d5ba61a.hot-update.js",
"/js/main.c2a5f80d36bc3a684a32.hot-update.js": "/js/main.c2a5f80d36bc3a684a32.hot-update.js",
"/js/main.20b7c97aa9ef6cfeec6a.hot-update.js": "/js/main.20b7c97aa9ef6cfeec6a.hot-update.js",
"/js/main.866622aa09142f918fa0.hot-update.js": "/js/main.866622aa09142f918fa0.hot-update.js",
"/js/main.043b384ebc73467822a9.hot-update.js": "/js/main.043b384ebc73467822a9.hot-update.js",
"/js/main.a7ad265532dffe197e49.hot-update.js": "/js/main.a7ad265532dffe197e49.hot-update.js",
"/js/main.ec6b71774c45d1248e83.hot-update.js": "/js/main.ec6b71774c45d1248e83.hot-update.js",
"/js/main.94d99ffeb5c492acf013.hot-update.js": "/js/main.94d99ffeb5c492acf013.hot-update.js",
"/js/main.b9ca1a01e8fc9b7852db.hot-update.js": "/js/main.b9ca1a01e8fc9b7852db.hot-update.js",
"/js/main.152e100587403a3671d4.hot-update.js": "/js/main.152e100587403a3671d4.hot-update.js",
"/js/main.0692dbe4cfda0bab0801.hot-update.js": "/js/main.0692dbe4cfda0bab0801.hot-update.js",
"/js/main.4f4ba4b72f46c0794524.hot-update.js": "/js/main.4f4ba4b72f46c0794524.hot-update.js",
"/js/main.e07a96c6849af55655de.hot-update.js": "/js/main.e07a96c6849af55655de.hot-update.js",
"/js/main.d7cbc94a638459e4b5eb.hot-update.js": "/js/main.d7cbc94a638459e4b5eb.hot-update.js",
"/js/main.80d01b9d919015b07505.hot-update.js": "/js/main.80d01b9d919015b07505.hot-update.js",
"/js/main.bba1a3734d9cd9452661.hot-update.js": "/js/main.bba1a3734d9cd9452661.hot-update.js",
"/js/main.b713c9c3db3083b822ef.hot-update.js": "/js/main.b713c9c3db3083b822ef.hot-update.js",
"/js/main.3811ccb3550ba1a0952d.hot-update.js": "/js/main.3811ccb3550ba1a0952d.hot-update.js",
"/js/main.46db9fb909656581a5de.hot-update.js": "/js/main.46db9fb909656581a5de.hot-update.js",
"/js/main.ebf08c4ca417a8f1e763.hot-update.js": "/js/main.ebf08c4ca417a8f1e763.hot-update.js",
"/js/main.ac4075ec9c765036f162.hot-update.js": "/js/main.ac4075ec9c765036f162.hot-update.js",
"/js/main.15f446e25d884898180c.hot-update.js": "/js/main.15f446e25d884898180c.hot-update.js",
"/js/main.0d08a535ec91bba93fed.hot-update.js": "/js/main.0d08a535ec91bba93fed.hot-update.js",
"/js/main.d84d57d8a92fb421772c.hot-update.js": "/js/main.d84d57d8a92fb421772c.hot-update.js",
"/js/main.ab964c97d421f8f7a964.hot-update.js": "/js/main.ab964c97d421f8f7a964.hot-update.js",
"/js/main.2109dd98db944799f6c2.hot-update.js": "/js/main.2109dd98db944799f6c2.hot-update.js",
"/js/main.eff55a2474844427341b.hot-update.js": "/js/main.eff55a2474844427341b.hot-update.js",
"/js/main.f009fcd456f9b665a179.hot-update.js": "/js/main.f009fcd456f9b665a179.hot-update.js",
"/js/main.ded98c2171f06bed7fd6.hot-update.js": "/js/main.ded98c2171f06bed7fd6.hot-update.js",
"/js/main.4b3d2879d3083a3cc589.hot-update.js": "/js/main.4b3d2879d3083a3cc589.hot-update.js",
"/js/main.e41088a9b0e64502279d.hot-update.js": "/js/main.e41088a9b0e64502279d.hot-update.js",
"/js/main.57df11b3319382988398.hot-update.js": "/js/main.57df11b3319382988398.hot-update.js",
"/js/main.bc564877036d45d2961f.hot-update.js": "/js/main.bc564877036d45d2961f.hot-update.js",
"/js/main.6d6e0817676e96f59bc7.hot-update.js": "/js/main.6d6e0817676e96f59bc7.hot-update.js",
"/js/main.4a3a761238627697032e.hot-update.js": "/js/main.4a3a761238627697032e.hot-update.js",
"/js/main.bd4c1ae712568802b9a7.hot-update.js": "/js/main.bd4c1ae712568802b9a7.hot-update.js",
"/js/main.542c87c77cbc8da89222.hot-update.js": "/js/main.542c87c77cbc8da89222.hot-update.js",
"/js/main.6d6605d12a8fbf3201b6.hot-update.js": "/js/main.6d6605d12a8fbf3201b6.hot-update.js",
"/js/main.3c7f2219eadeab8ead48.hot-update.js": "/js/main.3c7f2219eadeab8ead48.hot-update.js",
"/js/main.37a4a867605a3772a3db.hot-update.js": "/js/main.37a4a867605a3772a3db.hot-update.js",
"/js/main.cfdbcc4700657bda3a7b.hot-update.js": "/js/main.cfdbcc4700657bda3a7b.hot-update.js",
"/js/main.249eba47e32249a07df9.hot-update.js": "/js/main.249eba47e32249a07df9.hot-update.js",
"/js/main.558f05e309822ad70122.hot-update.js": "/js/main.558f05e309822ad70122.hot-update.js",
"/js/main.54df741b4bc56ae39e55.hot-update.js": "/js/main.54df741b4bc56ae39e55.hot-update.js",
"/js/main.9d1a8ce0df5787d2cafc.hot-update.js": "/js/main.9d1a8ce0df5787d2cafc.hot-update.js",
"/js/main.7d7fd1f42d0457b148c4.hot-update.js": "/js/main.7d7fd1f42d0457b148c4.hot-update.js",
"/js/main.bc7891b203e9f4194c99.hot-update.js": "/js/main.bc7891b203e9f4194c99.hot-update.js",
"/js/main.963d2fe31a8e29a670d4.hot-update.js": "/js/main.963d2fe31a8e29a670d4.hot-update.js",
"/js/main.44e60a4b5184f05fbd47.hot-update.js": "/js/main.44e60a4b5184f05fbd47.hot-update.js",
"/js/main.2f5d2ec57fe32d4c871c.hot-update.js": "/js/main.2f5d2ec57fe32d4c871c.hot-update.js",
"/js/main.4d9367a8bd496eb4e40b.hot-update.js": "/js/main.4d9367a8bd496eb4e40b.hot-update.js",
"/js/main.0461026179fbc40fff4a.hot-update.js": "/js/main.0461026179fbc40fff4a.hot-update.js",
"/js/main.ba653d54085191a1e890.hot-update.js": "/js/main.ba653d54085191a1e890.hot-update.js",
"/js/main.5a85f4046db3bb257412.hot-update.js": "/js/main.5a85f4046db3bb257412.hot-update.js",
"/js/main.6829c03b048666663da5.hot-update.js": "/js/main.6829c03b048666663da5.hot-update.js",
"/js/main.2631d90401c8b27fd104.hot-update.js": "/js/main.2631d90401c8b27fd104.hot-update.js",
"/js/main.258bbdc98f9ff318d2c6.hot-update.js": "/js/main.258bbdc98f9ff318d2c6.hot-update.js",
"/js/main.72794ef6cad1d9f7bbe0.hot-update.js": "/js/main.72794ef6cad1d9f7bbe0.hot-update.js",
"/js/main.048a18e0998f469d7c65.hot-update.js": "/js/main.048a18e0998f469d7c65.hot-update.js",
"/js/main.e913cd0ce33fc092f961.hot-update.js": "/js/main.e913cd0ce33fc092f961.hot-update.js",
"/js/main.c6f1f32b2464d5f78fef.hot-update.js": "/js/main.c6f1f32b2464d5f78fef.hot-update.js",
"/js/main.312fc05b07e823512269.hot-update.js": "/js/main.312fc05b07e823512269.hot-update.js",
"/js/main.e58a51e609734fe20fc1.hot-update.js": "/js/main.e58a51e609734fe20fc1.hot-update.js",
"/js/main.6a1420dc51c6553b95c5.hot-update.js": "/js/main.6a1420dc51c6553b95c5.hot-update.js",
"/js/main.f4f22bb8b34f4892876d.hot-update.js": "/js/main.f4f22bb8b34f4892876d.hot-update.js",
"/js/main.d28e2cddacfac4a0cc56.hot-update.js": "/js/main.d28e2cddacfac4a0cc56.hot-update.js",
"/js/main.94fbfa0aa93670b84362.hot-update.js": "/js/main.94fbfa0aa93670b84362.hot-update.js",
"/js/main.84637dacfaf1ebbbafbb.hot-update.js": "/js/main.84637dacfaf1ebbbafbb.hot-update.js",
"/js/main.2bd3c434bce4d2cbc8fd.hot-update.js": "/js/main.2bd3c434bce4d2cbc8fd.hot-update.js",
"/js/main.49d02105c8ddd22620f1.hot-update.js": "/js/main.49d02105c8ddd22620f1.hot-update.js",
"/js/main.5e6d15ad2b660e2e7c1f.hot-update.js": "/js/main.5e6d15ad2b660e2e7c1f.hot-update.js",
"/js/main.fc313528e3059c907504.hot-update.js": "/js/main.fc313528e3059c907504.hot-update.js",
"/js/main.bd4674b4a67e2c701e13.hot-update.js": "/js/main.bd4674b4a67e2c701e13.hot-update.js",
"/js/main.06eec4d613ba3518d05a.hot-update.js": "/js/main.06eec4d613ba3518d05a.hot-update.js",
"/js/main.8d526e129ea1e0343040.hot-update.js": "/js/main.8d526e129ea1e0343040.hot-update.js",
"/js/main.d3a79980cfef0c6cc74c.hot-update.js": "/js/main.d3a79980cfef0c6cc74c.hot-update.js",
"/js/main.fce072f4dff0e68d2a57.hot-update.js": "/js/main.fce072f4dff0e68d2a57.hot-update.js",
"/js/main.97563845b16f45e9a8d1.hot-update.js": "/js/main.97563845b16f45e9a8d1.hot-update.js",
"/js/main.ba3d22fd6d9940f71dd8.hot-update.js": "/js/main.ba3d22fd6d9940f71dd8.hot-update.js",
"/js/main.2c17142ff0ab23b6d82f.hot-update.js": "/js/main.2c17142ff0ab23b6d82f.hot-update.js",
"/js/main.37052661dae06b434627.hot-update.js": "/js/main.37052661dae06b434627.hot-update.js",
"/js/main.3bdcd8addd49f70a64f2.hot-update.js": "/js/main.3bdcd8addd49f70a64f2.hot-update.js",
"/js/main.d547052fbb0ff2ba0d1e.hot-update.js": "/js/main.d547052fbb0ff2ba0d1e.hot-update.js",
"/js/main.59bc62047bf7e6834add.hot-update.js": "/js/main.59bc62047bf7e6834add.hot-update.js",
"/js/main.2d5d82b04761b683a9fa.hot-update.js": "/js/main.2d5d82b04761b683a9fa.hot-update.js",
"/js/main.64a5b7a80976a7646b66.hot-update.js": "/js/main.64a5b7a80976a7646b66.hot-update.js",
"/js/main.410f16eec4fa17aabd85.hot-update.js": "/js/main.410f16eec4fa17aabd85.hot-update.js",
"/js/main.325be87c77872931f8f4.hot-update.js": "/js/main.325be87c77872931f8f4.hot-update.js",
"/js/main.681dd3757ea03104eb38.hot-update.js": "/js/main.681dd3757ea03104eb38.hot-update.js",
"/js/main.cdf420b18a4bab5558c2.hot-update.js": "/js/main.cdf420b18a4bab5558c2.hot-update.js",
"/js/main.2e3705b4474fb644fe7a.hot-update.js": "/js/main.2e3705b4474fb644fe7a.hot-update.js",
"/js/main.1d27d7234750097930a4.hot-update.js": "/js/main.1d27d7234750097930a4.hot-update.js",
"/js/main.4b79dd93b6746dfef172.hot-update.js": "/js/main.4b79dd93b6746dfef172.hot-update.js",
"/js/main.08e43801d9ff79a3d91d.hot-update.js": "/js/main.08e43801d9ff79a3d91d.hot-update.js",
"/js/main.303e4e90dfdbdfd1b8cd.hot-update.js": "/js/main.303e4e90dfdbdfd1b8cd.hot-update.js",
"/js/main.82ea3399e06303901a6b.hot-update.js": "/js/main.82ea3399e06303901a6b.hot-update.js",
"/js/main.d06d7a6bf733a980ca4d.hot-update.js": "/js/main.d06d7a6bf733a980ca4d.hot-update.js",
"/js/main.ed2bf9003180229090e6.hot-update.js": "/js/main.ed2bf9003180229090e6.hot-update.js"
}

View File

@@ -9,6 +9,12 @@
<!--System alerts-->
<Alert />
<!--Popup-->
<PopupMoveItem />
<!--Mobile Menu-->
<MobileOptionList/>
<div id="application-wrapper">
<!--Navigation Sidebar-->
@@ -25,6 +31,8 @@
</template>
<script>
import MobileOptionList from '@/components/VueFileManagerComponents/FilesView/MobileOptionList'
import PopupMoveItem from '@/components/VueFileManagerComponents/Others/PopupMoveItem'
import UserSettings from '@/components/VueFileManagerComponents/UserSettings'
import Alert from '@/components/VueFileManagerComponents/FilesView/Alert'
import FilesView from '@/components/VueFileManagerComponents/FilesView'
@@ -36,6 +44,8 @@
export default {
name: 'VueFileManager',
components: {
MobileOptionList,
PopupMoveItem,
UserSettings,
FilesView,
Sidebar,
@@ -73,6 +83,8 @@
// Handle VueFileManager width
var VueFileManager = document.getElementById('vue-file-manager');
new ResizeSensor(VueFileManager, this.handleAppResize);
//events.$emit('popup:move-item')
}
}
</script>
@@ -95,7 +107,7 @@
// Dark mode support
@media (prefers-color-scheme: dark) {
#vue-file-manager {
body, html {
background: $dark_mode_background;
color: $dark_mode_text_primary;

View File

@@ -3,7 +3,7 @@
<!--Log In by Email-->
<AuthContent name="log-in" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Welcome Back!</h1>
<h2>Please type your email to log in:</h2>
@@ -49,7 +49,7 @@
<!--Forgotten your password?-->
<AuthContent name="forgotten-password" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Forgotten Password?</h1>
<h2>Get reset link with your email:</h2>
@@ -70,7 +70,7 @@
<!--Create new password-->
<AuthContent name="create-new-password" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Only One Step to Log In</h1>
<h2>Create your new password here:</h2>
@@ -117,7 +117,7 @@
<!--Registration-->
<AuthContent name="sign-up" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Create New Account</h1>
<h2>Please fill registration to create account:</h2>
@@ -174,7 +174,7 @@
<!--Password reset link sended-->
<AuthContent name="password-reset-link-sended" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Thank you!</h1>
<h2>We have e-mailed your password reset link!</h2>
@@ -183,7 +183,7 @@
<!--Password reset successfully-->
<AuthContent name="password-reset-successfully" :visible="false">
<img class="logo" src="/assets/images/hero.svg" alt="Vue File Manager logo">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<h1>Awesome!</h1>
<h2>Your password was reset successfully.</h2>

View File

@@ -1,14 +1,12 @@
<template>
<div @click="fileViewClick" @contextmenu.prevent.capture="contextMenu($event, undefined)" id="files-view" :class="filesViewWidth">
<ContextMenu/>
<MobileOptionList/>
<DesktopToolbar v-if="! $isMinimalScale()"/>
<FilesContainer/>
</div>
</template>
<script>
import MobileOptionList from '@/components/VueFileManagerComponents/FilesView/MobileOptionList'
import UploadProgress from '@/components/VueFileManagerComponents/FilesView/UploadProgress'
import FilesContainer from '@/components/VueFileManagerComponents/FilesView/FilesContainer'
import DesktopToolbar from '@/components/VueFileManagerComponents/FilesView/DesktopToolbar'
@@ -20,7 +18,6 @@
export default {
name: 'FilesView',
components: {
MobileOptionList,
UploadProgress,
FilesContainer,
DesktopToolbar,

View File

@@ -117,7 +117,7 @@
right: 0;
left: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.25);
background: rgba(17, 20, 29, 0.5);
}
}

View File

@@ -6,11 +6,20 @@
v-show="isVisible"
>
<ul class="menu-options" id="menu-options-list" ref="list" @click="closeAndResetContextMenu">
<!--View-->
<li class="menu-option" @click="addToFavourites" v-if="! $isTrashLocation() && item && item.type === 'folder'">{{ isInFavourites ? 'Remove Favourite' : 'Add To Favourites' }}</li>
<li class="menu-option" @click="$store.dispatch('restoreItem', item)" v-if="item && $isTrashLocation()">Restore</li>
<li class="menu-option" @click="createFolder" v-if="! $isTrashLocation()">Create Folder</li>
<!--Edits-->
<li class="menu-option" @click="removeItem" v-if="! $isTrashLocation() && item">Delete</li>
<li class="menu-option" @click="moveItem" v-if="! $isTrashLocation() && item">Move</li>
<!--Trash-->
<li class="menu-option" @click="$store.dispatch('restoreItem', item)" v-if="item && $isTrashLocation()">Restore</li>
<li class="menu-option" @click="$store.dispatch('emptyTrash')" v-if="$isTrashLocation()">Empty Trash</li>
<!--Others-->
<li class="menu-option" @click="ItemDetail" v-if="item">Detail</li>
<li class="menu-option" @click="downloadItem" v-if="isFile || isImage">Download</li>
</ul>
@@ -44,6 +53,10 @@
}
},
methods: {
moveItem() {
// Move item fire popup
events.$emit('popup:move-item', this.item);
},
addToFavourites() {
if (this.app.favourites && ! this.app.favourites.find(el => el.unique_id == this.item.unique_id)) {
this.$store.dispatch('addToFavourites', this.item)

View File

@@ -86,6 +86,9 @@
},
preview() {
return this.preview_type === 'list' ? 'th' : 'th-list'
},
isTrash() {
return this.currentFolder.location === 'trash' || this.currentFolder.location === 'trash-root'
}
},
data() {
@@ -112,7 +115,7 @@
events.$emit('items:delete')
},
createFolder() {
this.$createFolder()
if (! this.isTrash) this.$createFolder()
}
},
created() {

View File

@@ -40,7 +40,7 @@
return this.data.length == 0
},
isTrash() {
return typeof this.currentFolder.unique_id === 'undefined'
return this.currentFolder.location === 'trash' || this.currentFolder.location === 'trash-root'
}
},
data() {

View File

@@ -48,7 +48,7 @@
@input="changeItemName"
:contenteditable="!$isMobile()"
class="name"
>{{ item.name }}</span
>{{ itemName }}</span
>
<!--Other attributes-->
@@ -106,7 +106,7 @@
return {
isClicked: false,
area: false,
item: undefined
itemName: undefined
}
},
methods: {
@@ -126,6 +126,10 @@
},
clickedItem(e) {
events.$emit('contextMenu:hide')
events.$emit('fileItem:deselect')
// Set clicked item
this.isClicked = true
// Open in mobile version on first click
if (this.$isMobile() && this.isFolder) {
@@ -165,6 +169,7 @@
}
},
changeItemName: debounce(function (e) {
// Prevent submit empty string
if (e.target.innerText === '') return
@@ -176,20 +181,17 @@
}, 300)
},
created() {
this.item = this.data
events.$on('fileItem:clicked', unique_id => {
if (this.data.unique_id == unique_id) {
this.isClicked = true
} else {
this.isClicked = false
}
})
this.itemName = this.data.name
events.$on('fileItem:deselect', () => {
// Deselect file
this.isClicked = false
})
// Change item name
events.$on('change:name', (item) => {
if (this.data.unique_id == item.unique_id) this.itemName = item.name
})
}
}
</script>

View File

@@ -47,8 +47,7 @@
@input="changeItemName"
:contenteditable="!$isMobile() && !$isTrashLocation()"
class="name"
>{{ item.name }}</span
>
>{{ itemName }}</span>
<!--Other attributes-->
<span v-if="isFile || isImage" class="item-size">{{ data.filesize }}, {{ timeStamp }}</span>
@@ -115,7 +114,7 @@
return {
isClicked: false,
area: false,
item: undefined,
itemName: undefined,
}
},
methods: {
@@ -137,6 +136,10 @@
},
clickedItem(e) {
events.$emit('contextMenu:hide')
events.$emit('fileItem:deselect')
// Set clicked item
this.isClicked = true
// Open in mobile version on first click
if (this.$isMobile() && this.isFolder) {
@@ -176,6 +179,7 @@
}
},
changeItemName: debounce(function (e) {
// Prevent submit empty string
if (e.target.innerText === '') return
@@ -187,20 +191,17 @@
}, 300)
},
created() {
this.item = this.data
events.$on('fileItem:clicked', unique_id => {
if (this.data.unique_id == unique_id) {
this.isClicked = true
} else {
this.isClicked = false
}
})
this.itemName = this.data.name
events.$on('fileItem:deselect', () => {
// Deselect file
this.isClicked = false
})
// Change item name
events.$on('change:name', (item) => {
if (this.data.unique_id == item.unique_id) this.itemName = item.name
})
},
}
</script>

View File

@@ -28,7 +28,6 @@
<FileItemList
@dragstart="dragStart(item)"
@drop="dragFinish(item)"
@click.native="clickedFileItem(item.unique_id)"
@contextmenu.native.prevent="contextMenu($event, item)"
:data="item"
v-for="item in data"
@@ -49,7 +48,6 @@
<FileItemGrid
@dragstart="dragStart(item)"
@drop="dragFinish(item)"
@click.native="clickedFileItem(item.unique_id)"
@contextmenu.native.prevent="contextMenu($event, item)"
:data="item"
v-for="item in data"
@@ -156,16 +154,15 @@
moveTo(from_item, to_item) {
this.$store.dispatch('moveItem', [from_item, to_item])
},
clickedFileItem(unique_id) {
events.$emit('fileItem:clicked', unique_id)
},
contextMenu(event, item) {
events.$emit('contextMenu:show', event, item)
},
filesContainerClick(e) {
if (e.target.className === 'file-list grid') {
events.$emit('fileItem:deselect')
}
filesContainerClick() {
// Deselect clicked item
events.$emit('fileItem:deselect')
// Hide context menu if is opened
events.$emit('contextMenu:hide')
}
},

View File

@@ -29,6 +29,13 @@
>
Rename
</li>
<li
class="menu-option"
@click="moveItem"
v-if="fileInfoDetail"
>
Move
</li>
<li
class="menu-option"
@click="downloadItem"
@@ -90,6 +97,10 @@
}
},
methods: {
moveItem() {
// Move item fire popup
events.$emit('popup:move-item', this.fileInfoDetail);
},
addToFavourites() {
if (this.app.favourites && ! this.app.favourites.find(el => el.unique_id == this.fileInfoDetail.unique_id)) {
this.$store.dispatch('addToFavourites', this.fileInfoDetail)
@@ -115,11 +126,19 @@
)
if (itemName && itemName !== '') {
this.$store.dispatch('changeItemName', {
let item = {
unique_id: this.fileInfoDetail.unique_id,
type: this.fileInfoDetail.type,
name: itemName
})
}
this.$store.dispatch('changeItemName', item)
// Change item name if is mobile device or prompted
if ( this.$isMobile() ) {
events.$emit('change:name', item)
}
}
},
closeAndResetContextMenu() {

View File

@@ -1,45 +1,45 @@
<template>
<div id="loading-bar-spinner" class="spinner">
<div class="spinner-icon"></div>
</div>
<div id="loading-bar-spinner" class="spinner">
<div class="spinner-icon"></div>
</div>
</template>
<script>
export default {
name: 'Spinner'
}
export default {
name: 'Spinner'
}
</script>
<style scoped lang="scss">
@import "@assets/app.scss";
@import "@assets/app.scss";
#loading-bar-spinner.spinner {
left: 50%;
margin-left: -20px;
top: 50%;
margin-top: -20px;
position: absolute;
z-index: 19 !important;
animation: loading-bar-spinner 400ms linear infinite;
}
#loading-bar-spinner.spinner {
left: 50%;
margin-left: -20px;
top: 50%;
margin-top: -20px;
position: absolute;
z-index: 19 !important;
animation: loading-bar-spinner 400ms linear infinite;
}
#loading-bar-spinner.spinner .spinner-icon {
width: 40px;
height: 40px;
border: solid 4px transparent;
border-top-color: $theme !important;
border-left-color: $theme !important;
border-radius: 50%;
}
#loading-bar-spinner.spinner .spinner-icon {
width: 40px;
height: 40px;
border: solid 4px transparent;
border-top-color: $theme !important;
border-left-color: $theme !important;
border-radius: 50%;
}
@keyframes loading-bar-spinner {
0% {
transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes loading-bar-spinner {
0% {
transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
transform: rotate(360deg);
}
}
</style>

View File

@@ -0,0 +1,314 @@
<template>
<transition name="vignette">
<div class="popup" v-if="isVisibleWrapper">
<transition name="popup">
<div v-if="isVisiblePopup" class="popup-wrapper">
<!--Title-->
<div class="popup-header">
<h1 class="title">Move Item</h1>
<!--<p v-if="message" class="message">{{ message }}</p>-->
</div>
<!--Content-->
<div class="popup-content" v-if="app && pickedItem">
<Spinner v-if="isLoadingTree" />
<div v-if="! isLoadingTree">
<ThumbnailItem class="item-thumbnail" :file="pickedItem" />
<TreeMenu :depth="1" :nodes="items" v-for="items in app.folders" :key="items.unique_id" />
</div>
</div>
<!--Actions-->
<div class="actions">
<ButtonBase
class="popup-button"
@click.native="closePopup"
button-style="secondary"
>Cancel
</ButtonBase>
<ButtonBase
class="popup-button"
@click.native="moveItem"
:button-style="selectedFolder ? 'theme' : 'secondary'"
>Move
</ButtonBase>
</div>
</div>
</transition>
<div class="popup-vignette" @click="closePopup"></div>
</div>
</transition>
</template>
<script>
import ThumbnailItem from '@/components/VueFileManagerComponents/Others/ThumbnailItem'
import ButtonBase from '@/components/VueFileManagerComponents/FilesView/ButtonBase'
import Spinner from '@/components/VueFileManagerComponents/FilesView/Spinner'
import TreeMenu from '@/components/VueFileManagerComponents/Others/TreeMenu'
import {mapGetters} from 'vuex'
import {events} from '@/bus'
export default {
name: 'PopupMoveItem',
components: {
ThumbnailItem,
ButtonBase,
TreeMenu,
Spinner,
},
computed: {
...mapGetters(['app']),
},
data() {
return {
isVisibleWrapper: false,
isVisiblePopup: false,
selectedFolder: undefined,
pickedItem: undefined,
isLoadingTree: true,
}
},
methods: {
moveItem() {
if (! this.selectedFolder) return
// Move item
this.$store.dispatch('moveItem', [this.pickedItem, this.selectedFolder])
// Close popup
this.closePopup()
},
closePopup() {
// Hide popup wrapper
this.isVisibleWrapper = false
this.isVisiblePopup = false
// Clear selected folder
this.selectedFolder = undefined
}
},
mounted() {
events.$on('pick-folder', unique_id => {
this.selectedFolder = unique_id
})
// Show popup
events.$on('popup:move-item', item => {
this.isLoadingTree = true
// Get folder tree
this.$store.dispatch('getFolderTree').then(() => {
this.isLoadingTree = false
}).catch(() => {
this.isLoadingTree = false
})
// Make popup visible
this.isVisibleWrapper = true
this.isVisiblePopup = true
// Store picked item
this.pickedItem = item
})
// Close popup
events.$on('popup:close', () => this.closePopup())
}
}
</script>
<style scoped lang="scss">
@import "@assets/app.scss";
.popup {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 999;
overflow: auto;
display: grid;
padding: 40px;
.popup-vignette {
position: fixed;
top: 0;
right: 0;
left: 0;
bottom: 0;
background: rgba(17, 20, 29, 0.5);
}
}
.popup-wrapper {
box-shadow: 0 7px 250px rgba(25, 54, 60, 0.2);
border-radius: 8px;
background: white;
margin: auto;
width: 480px;
z-index: 12;
}
.popup-header {
padding: 20px;
.title {
@include font-size(20);
font-weight: 900;
color: $text;
}
.message {
@include font-size(16);
color: #8b8f9a;
margin-top: 5px;
}
}
.popup-content {
height: 400px;
overflow-y: auto;
}
.item-thumbnail {
margin-bottom: 20px;
}
.actions {
padding: 20px;
margin: 0 -10px;
display: flex;
.popup-button {
width: 100%;
margin: 0 10px;
}
}
// Desktop, tablet
.medium, .large {
// Animations
.popup-enter-active {
animation: popup-in 0.35s 0.15s ease both;
}
.popup-leave-active {
animation: popup-in 0.15s ease reverse;
}
}
// Mobile styles
.small {
.popup-wrapper {
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
transform: translateY(0) scale(1);
box-shadow: none;
width: 100%;
border-radius: 0px;
.popup-content {
top: 57px;
bottom: 72px;
position: absolute;
left: 0;
right: 0;
height: initial;
}
.actions {
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
}
.popup-header {
padding: 15px;
}
.actions {
padding: 15px;
}
// Animations
.popup-enter-active {
animation: popup-slide-in 0.35s 0.15s ease both;
}
.popup-leave-active {
animation: popup-slide-in 0.15s ease reverse;
}
}
@keyframes popup-in {
0% {
opacity: 0;
transform: scale(0.7);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes popup-slide-in {
0% {
transform: translateY(100%);
}
100% {
transform: translateY(0);
}
}
// Dark mode
@media (prefers-color-scheme: dark) {
.popup .popup-vignette {
background: $dark_mode_vignette;
}
.popup-wrapper {
background: $dark_mode_foreground;
}
.popup-header {
.title {
color: $dark_mode_text_primary;
}
.message {
color: $dark_mode_text_secondary;
}
}
}
.vignette-enter-active {
animation: vignette-in 0.15s ease;
}
.vignette-leave-active {
animation: vignette-in 0.15s 0.15s ease reverse;
}
@keyframes vignette-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
</style>

View File

@@ -0,0 +1,187 @@
<template>
<div class="file-item">
<!--Thumbnail for item-->
<div class="icon-item" :class="file.type">
<!--If is file or image, then link item-->
<span v-if="isFile" class="file-icon-text">{{ file.mimetype }}</span>
<!--Folder thumbnail-->
<FontAwesomeIcon v-if="isFile" class="file-icon" icon="file"/>
<!--Image thumbnail-->
<img v-if="isImage" :src="file.thumbnail" :alt="file.name"/>
<!--Else show only folder icon-->
<FontAwesomeIcon v-if="isFolder" class="folder-icon" icon="folder"/>
</div>
<!--Name-->
<div class="item-name">
<!--Name-->
<span class="name">{{ file.name }}</span>
<!--Other attributes-->
<span class="subtitle">Original Location: {{ currentFolder.name }}</span>
</div>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
export default {
name: 'ThumbnailItem',
props: ['file'],
computed: {
...mapGetters(['currentFolder']),
isFolder() {
return this.file.type === 'folder'
},
isFile() {
return this.file.type === 'file'
},
isImage() {
return this.file.type === 'image'
}
},
filters: {
pluralize(word, amount) {
return amount > 1 ? word + 's' : word
}
},
}
</script>
<style scoped lang="scss">
@import "@assets/app.scss";
.file-item {
display: flex;
align-items: center;
padding: 0 20px;
.item-name {
display: block;
margin-left: 10px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.subtitle {
@include font-size(11);
font-weight: 100;
color: $text-muted;
display: block;
}
.name {
white-space: nowrap;
color: $text;
@include font-size(14);
font-weight: 700;
max-height: 40px;
overflow: hidden;
text-overflow: ellipsis;
}
}
.icon-item {
position: relative;
min-width: 40px;
.file-icon {
@include font-size(35);
path {
fill: #fafafc;
stroke: #dfe0e8;
stroke-width: 1;
}
}
.folder-icon {
@include font-size(36);
path {
fill: $theme;
}
}
&.file {
text-align: center;
.file-icon-text {
top: 40%;
@include font-size(9);
margin: 0 auto;
position: absolute;
text-align: center;
left: 0;
right: 0;
color: $theme;
font-weight: 600;
user-select: none;
max-width: 20px;
max-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&.image {
line-height: 0;
img {
object-fit: cover;
user-select: none;
max-width: 100%;
border-radius: 5px;
width: 36px;
height: 36px;
}
}
}
}
.small {
.file-item {
padding: 0 15px;
margin-bottom: 10px;
}
}
@media (prefers-color-scheme: dark) {
.file-item {
.icon-item .file-icon {
path {
fill: $dark_mode_background;
stroke: #2F3C54;
}
}
.item-name .name {
color: $dark_mode_text_primary;
}
}
}
@media (max-width: 690px) and (prefers-color-scheme: dark) {
.file-item {
.icon-item .file-icon {
path {
fill: $dark_mode_foreground;
}
}
}
}
</style>

View File

@@ -0,0 +1,160 @@
<template>
<!--Folder Icon-->
<div class="folder-item-wrapper">
<div class="folder-item" :class="{'is-selected': isSelected}" @click="showTree" :style="indent">
<FontAwesomeIcon class="icon-chevron" :class="{'is-opened': isVisible, 'is-visible': nodes.folders.length !== 0}" icon="chevron-right"/>
<FontAwesomeIcon class="icon" :icon="directoryIcon"/>
<span class="label">{{ nodes.name }}</span>
</div>
<TreeMenu :depth="depth + 1" v-if="isVisible" :nodes="item" v-for="item in nodes.folders" :key="item.unique_id" />
</div>
</template>
<script>
import TreeMenu from '@/components/VueFileManagerComponents/Others/TreeMenu'
import {events} from "@/bus"
export default {
name: 'TreeMenu',
props: [
'nodes', 'depth'
],
components: {
TreeMenu,
},
computed: {
indent() {
return { paddingLeft: this.depth * 25 + 'px' }
},
directoryIcon() {
if (this.nodes.location === 'base') {
return 'hdd'
} else {
return 'folder'
}
}
},
data() {
return {
isVisible: false,
isSelected: false,
}
},
methods: {
showTree() {
this.isVisible = ! this.isVisible
events.$emit('pick-folder', this.nodes)
}
},
created() {
// Show first location
if (this.depth == 1) this.isVisible = true
// Select clicked folder
events.$on('pick-folder', node => {
this.isSelected = false
if (this.nodes.unique_id == node.unique_id) this.isSelected = true
})
}
}
</script>
<style lang="scss" scoped>
@import "@assets/app.scss";
.folder-item {
display: block;
padding: 10px 20px;
@include transition(150ms);
cursor: pointer;
position: relative;
white-space: nowrap;
.icon {
@include font-size(18);
margin-right: 9px;
vertical-align: middle;
path {
fill: $text;
}
}
.icon-chevron {
@include transition(300ms);
@include font-size(13);
margin-right: 9px;
vertical-align: middle;
opacity: 0;
&.is-visible {
opacity: 1;
}
&.is-opened {
@include transform(rotate(90deg));
}
path {
fill: rgba($text, 0.25);
}
}
.label {
@include font-size(15);
font-weight: 700;
vertical-align: middle;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: inline-block;
}
&:hover {
background: $light_background;
}
&.is-selected {
background: rgba($theme, .1);
.icon {
path {
fill: $theme;
}
}
.label {
color: $theme;
}
}
}
// Dark mode
@media (prefers-color-scheme: dark) {
.folder-item {
&:hover {
background: $dark_mode_background;
}
.icon-chevron {
path {
fill: $theme;
}
}
}
&.is-selected {
background: rgba($theme, .1);
}
}
</style>

View File

@@ -2,7 +2,7 @@ import axios from 'axios'
import {events} from '@/bus'
const defaultState = {
fileInfoPanelVisible: localStorage.getItem('file_info_visibility') == 'false' || false,
fileInfoPanelVisible: localStorage.getItem('file_info_visibility') == 'true' || false,
preview_type: localStorage.getItem('preview_type') || 'list',
uploadingFilesCount: undefined,
fileInfoDetail: undefined,
@@ -395,25 +395,16 @@ const mutations = {
state.browseHistory.pop()
},
CHANGE_ITEM_NAME(state, updatedFile) {
// Rename filename in file info detail
if (
state.fileInfoDetail &&
state.fileInfoDetail.unique_id == updatedFile.unique_id
) {
if (state.fileInfoDetail && state.fileInfoDetail.unique_id == updatedFile.unique_id) {
state.fileInfoDetail = updatedFile
}
// Get file
const file = state.data.find(
el => el.unique_id == updatedFile.unique_id
)
file.file_url = updatedFile.file_url
file.thumbnail = updatedFile.thumbnail
if (this._vm.$isMobile()) {
file.name = updatedFile.name
}
// Rename item name in data view
state.data.find(item => {
if (item.unique_id == updatedFile.unique_id) item.name = updatedFile.name
})
},
CLEAR_FILEINFO_DETAIL(state) {
state.fileInfoDetail = undefined

View File

@@ -63,11 +63,37 @@ const actions = {
})
})
},
getFolderTree: (context) => {
return new Promise((resolve, reject) => {
axios
.get(context.getters.api + '/folder-tree')
.then(response => {
resolve(response)
context.commit('UPDATE_FOLDER_TREE', response.data)
})
.catch((error) => {
reject(error)
// Show error message
events.$emit('alert:open', {
title: 'Whooops, something went wrong :(',
message:
"Something went wrong and we can't continue. Please contact us."
})
})
})
},
}
const mutations = {
RETRIEVE_APP_DATA(state, app) {
state.app = app
},
UPDATE_FOLDER_TREE(state, tree) {
state.app.folders = tree
},
SET_AUTHORIZED(state, data) {
state.authorized = data
},

View File

@@ -6,7 +6,7 @@
<meta name="description"
content="Manage your folders and files with Vue File Manager client powered by Laravel API endpoint.">
<title>VueFileManager | Manage your folders and files with Vue File Manager client powered by Laravel API endpoint.</title>
<title>VueFileManager | Make your own Private Cloud with VueFileManager client powered by Laravel and Vue</title>
<link rel="icon" href="{{ asset('favicon.ico') }}">
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
@@ -16,6 +16,8 @@
<script>
let config = {
app_name: '{{ config('vuefilemanager.app_name') }}',
app_logo: '{{ asset(config('vuefilemanager.app_logo')) }}',
api: '{{ url('/api') }}',
hasAuthCookie: {{ Cookie::has('token') ? 1 : 0 }},
userRegistration: {{ config('vuefilemanager.registration') ? 1 : 0 }},

View File

@@ -56,6 +56,7 @@ Route::group(['middleware' => ['auth:api', 'auth.cookie']], function () {
Route::post('/rename-item', 'FileManagerController@rename_item');
Route::post('/remove-item', 'FileManagerController@delete_item');
Route::post('/upload-file', 'FileManagerController@upload_item');
Route::get('/folder-tree', 'UserAccountController@folder_tree');
Route::post('/move-item', 'FileManagerController@move_item');
Route::get('/search', 'FileManagerController@search');
Route::get('/trash', 'FileManagerController@trash');

View File

@@ -1,2 +0,0 @@
*
!.gitignore

4
webpack.mix.js vendored
View File

@@ -15,7 +15,6 @@ mix.js('resources/js/main.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css', {
implementation: require('node-sass')
})
.version()
.webpackConfig({
resolve: {
alias: {
@@ -23,4 +22,5 @@ mix.js('resources/js/main.js', 'public/js')
"@": path.resolve(__dirname, "resources/js"),
}
},
}).disableNotifications();
})
.disableNotifications();