diff --git a/.idea/php.xml b/.idea/php.xml index e018635..5dd041d 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -189,6 +189,9 @@ + + + diff --git a/app/Console/Commands/BiliVideoCode.php b/app/Console/Commands/BiliVideoCode.php index 46c3e7b..35f5403 100644 --- a/app/Console/Commands/BiliVideoCode.php +++ b/app/Console/Commands/BiliVideoCode.php @@ -51,14 +51,14 @@ class BiliVideoCode extends Command // $bilibili->insertDBTest();exit; // $bilibili->queryPlayList(); - $bilibili->queryUpVideoList(10278125); +// $bilibili->queryUpVideoList(10278125); // exit; -// $bilibili->queryDBCollectionList(); + $bilibili->queryDBCollectionList(); // dump($bilibili->requestVideoParts("33483603"));exit; - $bilibili->queryForVideoParts();exit; + $bilibili->queryForVideoParts(); $bilibili->compareAndDownloadUpVideos(true); - // $bilibili->compareAndDownloadCollectionVideos(); + $bilibili->compareAndDownloadCollectionVideos(); exit; $bilibili->queryForVideoParts(); if (App::environment() == "local") { diff --git a/app/Console/Commands/InstagramScrape.php b/app/Console/Commands/InstagramScrape.php index 67038f3..febd6d4 100644 --- a/app/Console/Commands/InstagramScrape.php +++ b/app/Console/Commands/InstagramScrape.php @@ -50,9 +50,9 @@ class InstagramScrape extends Command // print_r($userList);exit; $ins = new InstagramService(); -// $ins->scrapeFeedsV2(); -// sleep(60*2); - $ins->scrapeUsersV2(89, ["17_chill", "shinapit46", "crissielee_"]); + $ins->scrapeFeedsV2(); + sleep(60*2); + $ins->scrapeUsersV2(89, null); exit; // $ins->getUserNameById('4156629214');exit; diff --git a/app/Services/BilibiliServiceV2.php b/app/Services/BilibiliServiceV2.php index 9dad2cd..c6db34a 100644 --- a/app/Services/BilibiliServiceV2.php +++ b/app/Services/BilibiliServiceV2.php @@ -77,7 +77,7 @@ class BilibiliServiceV2 // 267781236 韩国女团饭拍直拍 // 23400436 小雪_juvia $list = BilibiliUpVideos::all(); - $list = $list->slice(87); +// $list = $list->slice(87); foreach ($list as $item) { Log::info("schedule queryUpVideoList current up is {$item['up_name']}, started at: " . date("Y-m-d H:i:s")); // $files = scandir($this->baseDir . "bilibili/" . $item['up_name']); @@ -617,14 +617,19 @@ class BilibiliServiceV2 public function queryDBCollectionList() { - $list = BilibiliCollections::all(); + $list = BilibiliCollections::where('is_downloaded', 0) + ->orderBy('updated_at') + ->take(20) + ->get(); +// $list = array_slice($list->toArray(), 43, 100); +// dump($list);exit; foreach ($list as $item) { Log::info("schedule queryDBCollectionList current collection is: " . $item['title'] . " started at :" . date("Y-m-d H:i:s")); $currentList = []; - for ($pageNo = 1; $pageNo < 10; $pageNo++) { + for ($pageNo = 1; $pageNo < 25; $pageNo++) { $listResponse = $this->requestCollectionList($this->collectionListUrl, $item['media_id'], $pageNo); -// dump("pageNo: " . $pageNo); -// dump($listResponse); + dump("pageNo: " . $pageNo); + dump($listResponse); $responseArr = json_decode($listResponse, true); if ($responseArr['code'] == 0) { $data = $responseArr["data"]; @@ -656,6 +661,7 @@ class BilibiliServiceV2 } } } + dump(json_encode($currentList)); $item->videos = json_encode($currentList); $item->save(); } @@ -664,7 +670,9 @@ class BilibiliServiceV2 public function queryForVideoParts() { $i = 0; - $list = BilibiliVideos::orderBy('id', 'desc')->simplePaginate(2000, null, 'page', $i); + $list = BilibiliVideos::where('is_downloaded', '0') + ->orderBy('id', 'desc') + ->simplePaginate(20, null, 'page', $i); // dump($list->items()[0]->aid); while ($list->isNotEmpty()) { foreach ($list->items() as $item) { @@ -718,9 +726,8 @@ class BilibiliServiceV2 } catch (Exception $e) { } } - break; $i++; - $list = BilibiliVideos::simplePaginate(2000, null, 'page', $i); + $list = BilibiliVideos::simplePaginate(20, null, 'page', $i); try { usleep(random_int(10, 1000) * 1000); } catch (Exception $e) { @@ -913,7 +920,7 @@ class BilibiliServiceV2 CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, - CURLOPT_TIMEOUT => 0, + CURLOPT_TIMEOUT => 10, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", @@ -926,7 +933,7 @@ class BilibiliServiceV2 curl_close($curl); if ($err) { - \Log::error($err); + Log::error($err); return null; } return $response; diff --git a/app/Services/FfmpegService.php b/app/Services/FfmpegService.php index abdeb66..df7f3ae 100644 --- a/app/Services/FfmpegService.php +++ b/app/Services/FfmpegService.php @@ -3,6 +3,8 @@ namespace App\Services; use App\Utils\FileUtils; +use FFMpeg\Coordinate\AspectRatio; +use FFMpeg\Coordinate\Dimension; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Redis; use Mhor\MediaInfo\MediaInfo; @@ -183,7 +185,11 @@ class FfmpegService } dump("targetFile", [$targetFile]); Log::info("process target file : $targetFile"); - $result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 16 -i ". escapeshellarg($pathFile) ." -preset ultrafast -c:v libx265 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'"); + if (filesize($pathFile) > 10 * 1024 * 1024 * 1024 || $this->getDimension($pathFile)->getWidth() > 1920) { + $result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 16 -i ". escapeshellarg($pathFile) ." -preset ultrafast -crf 25 -c:v libx265 -x265-params pools=8 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'"); + } else { + $result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 16 -i ". escapeshellarg($pathFile) ." -preset ultrafast -c:v libx265 -x265-params pools=8 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'"); + } // echo $result; // return; if (trim($result) == "ok" && $this->isNeedRemoveAfterEncode()) { @@ -316,6 +322,23 @@ class FfmpegService return trim($codecName) == "hevc"; } + public function getDimension($file): Dimension + { + $dimensions = new Dimension(1920, 1080); + + try { + $dimensions = $this->ffprobe + ->streams($file) + ->videos() + ->first() + ->getDimensions(); + } catch (Throwable $e) { + Log::error("ffprobe getDimension has error just return default dimension, exception: ". $e->getMessage(), ["file" => $file]); + return $dimensions; + } + return $dimensions; + } + /** * @param bool $needRemoveAfterEncode */ diff --git a/app/Services/InstagramService.php b/app/Services/InstagramService.php index a724f72..85c756a 100644 --- a/app/Services/InstagramService.php +++ b/app/Services/InstagramService.php @@ -1537,7 +1537,7 @@ class InstagramService $toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, 9); Redis::connection()->ltrim(self::INS_USER_KEY, 10, -1); } - $alwaysNeedToQueryUsers = ["17_chill", "crissielee_", "boram__jj", "cho_hyunyoung", "cxxsomi", "inkyung97", "na0912mi", "naughty_rabbit_", "sejinming", "zyzyxin222"]; + $alwaysNeedToQueryUsers = ["doly0818", "siawase726", "yifei_cc", "17_chill", "shinapit46", "crissielee_", "boram__jj", "cho_hyunyoung", "cxxsomi", "inkyung97", "na0912mi", "naughty_rabbit_", "sejinming", "zyzyxin222"]; $toQueryUsers = array_unique(array_merge($alwaysNeedToQueryUsers, $toQueryUsers)); } else { if (is_array($singleUser)) { @@ -1563,7 +1563,7 @@ class InstagramService // 跳过逻辑 - $skipUsers = ["youbastardddd", "bitnara1105", "hanna91914"]; + $skipUsers = ["youbastardddd", "bitnara1105", "hanna91914", "amandacerny"]; foreach ($userList as $userName) { if (in_array($userName, $skipUsers)) { continue; @@ -1577,7 +1577,7 @@ class InstagramService } echo "open $thisUserImageDir \n"; shell_exec("open -g '$thisUserImageDir'"); - sleep(5*60); + sleep(1*60); if (array_key_exists($trueName, $this->userAliasMap)) { $trueName = trim($this->userAliasMap[$trueName]); @@ -1626,6 +1626,9 @@ class InstagramService $response = $this->userFeed($userId, $maxId); } catch (Exception $e) { Log::error("current user has error, $userName, " . $e->getMessage()); + if (str_contains($e->getMessage(), "400 Bad Request")) { + exit; + } continue 2; } // In this example we're simply printing the IDs of this page's items. @@ -1682,12 +1685,13 @@ class InstagramService // Now we must update the maxId variable to the "next page". // This will be a null value again when we've reached the last page! // And we will stop looping through pages as soon as maxId becomes null. - if ($singleUser!= null || count($singleUser) > 0) { - if ($count - $existCount > 50) { + if ($singleUser!= null || (is_array($singleUser) && count($singleUser) > 0)) { + if ($count - $existCount > 200) { + Log::info("new count bigger than 100", ['user' => $trueName]); goto a; } } else { - if($count > 50 || $existCount > 35) { + if($count > (20 + random_int(0, 20)) || $count - $existCount > 10) { goto a; } } @@ -2201,7 +2205,7 @@ class InstagramService 'accept-language' => 'zh-CN,zh;q=0.9', 'cache-control' => 'no-cache', 'content-type' => 'application/x-www-form-urlencoded', - 'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K; dpr=2; shbid="10286\\054361404591\\0541700533626:01f7891cdfff0b7d7386ff97d7690993a11b1ba2373dc3ffdeffcba117098d64f4257dc4"; shbts="1668997626\\054361404591\\0541700533626:01f7e34e90eef7912e6901f47569b86e7a671dae643782b24cc4988c66ed2da4188f8257"; rur="NAO\\054361404591\\0541700704415:01f7fa81481f33f0a55f1a36f3e32141e4be300b2ef89c6d557f3e8ab513e3638f57478b"; sessionid=361404591%3AgzkcXj7yG935O7%3A24%3AAYcvW4xf8gw3-Dk1esu7poXViU_WJZNOBzm0FC27-Js', + 'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K; shbid="10286\\054361404591\\0541701149081:01f730a5922596e95cbb92e5e537ecd62f60c0e4f98ace69b47a2e1bd022bf82699f585b"; shbts="1669613081\\054361404591\\0541701149081:01f7b1b43b17593f3f27f2b60b6dc5e3a80d63f0da70b00370d07497e5dd7a5d77325df0"; dpr=2; sessionid=361404591%3AXGZE01zPoMGO8b%3A13%3AAYcBvpAlq9xmuzvbcZF9g20sktnwq-99J3OkyluPfA; rur="NAO\\054361404591\\0541701256205:01f718ec0648cbcbde1db1175ce492dd3893da402643d7dc1cf698ba88c73ba69d42deb6"', 'origin' => 'https://www.instagram.com', 'pragma' => 'no-cache', 'referer' => 'https://www.instagram.com/', @@ -2217,8 +2221,8 @@ class InstagramService 'x-asbd-id' => '198387', 'x-csrftoken' => 'uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K', 'x-ig-app-id' => '936619743392459', - 'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCi2', - 'x-instagram-ajax' => '1006634810', + 'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvIQG', + 'x-instagram-ajax' => '1006668857', 'x-requested-with' => 'XMLHttpRequest' ]; $options = [ @@ -2293,9 +2297,9 @@ class InstagramService 'accept' => '*/*', 'accept-language' => 'zh-CN,zh;q=0.9', 'cache-control' => 'no-cache', - 'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K; dpr=2; shbid="10286\\054361404591\\0541700533626:01f7891cdfff0b7d7386ff97d7690993a11b1ba2373dc3ffdeffcba117098d64f4257dc4"; shbts="1668997626\\054361404591\\0541700533626:01f7e34e90eef7912e6901f47569b86e7a671dae643782b24cc4988c66ed2da4188f8257"; sessionid=361404591%3AgzkcXj7yG935O7%3A24%3AAYcvW4xf8gw3-Dk1esu7poXViU_WJZNOBzm0FC27-Js; rur="NAO\\054361404591\\0541700704504:01f7586cc76975b552e792796e1049675877ef3dfda64d302f090b26aa4186e1cc7984ef"', + 'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K; dpr=2; shbid="10286\\054361404591\\0541701480941:01f7ea16564d38f09b0381cd738fc45b08b9bc86ec05314cc2e36faec6dbe8e3c882f218"; shbts="1669944941\\054361404591\\0541701480941:01f7e8f1bf5ec02b46fac45242931283f00863b0aa0ff1b566d3866cc2a90a43eadb9167"; sessionid=361404591%3AXGZE01zPoMGO8b%3A13%3AAYeyaXqF4vyZSCbOae77yhFjjVaV1EEQTleduQ3rmg; rur="NAO\\054361404591\\0541701481008:01f732bf0b6f375a43739100865ad7e701d1b82c718b484643b3b58e506de199dd3041e4"', 'pragma' => 'no-cache', - 'referer' => 'https://www.instagram.com/17_chill/', + 'referer' => 'https://www.instagram.com/doly0818/', 'sec-ch-prefers-color-scheme' => 'light', 'sec-ch-ua' => '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"', 'sec-ch-ua-mobile' => '?0', @@ -2308,8 +2312,8 @@ class InstagramService 'x-asbd-id' => '198387', 'x-csrftoken' => 'uwK4stsVNJf45PtHH7ZEbtYLFAXTED8K', 'x-ig-app-id' => '936619743392459', - 'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCi2', - 'x-instagram-ajax' => '1006634810', + 'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvIQG', + 'x-instagram-ajax' => '1006668857', 'x-requested-with' => 'XMLHttpRequest' ]; $url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12"; diff --git a/composer.json b/composer.json index 1ef5582..0021674 100644 --- a/composer.json +++ b/composer.json @@ -22,9 +22,11 @@ "guzzlehttp/guzzle": "~6.0", "jaeger/querylist": "^4.1", "james-heinrich/getid3": "^1.9", + "laravel-admin-ext/media-manager": "1.x", "laravel/framework": "5.7.*", "laravel/tinker": "^1.0", "league/oauth2-client": "dev-master", + "mgp25/instagram-api": "dev-master", "mhor/php-mediainfo": "^4.1", "microsoft/microsoft-graph": "^1.6", "mnapoli/front-yaml": "^1.8", @@ -40,7 +42,7 @@ "spatie/yaml-front-matter": "^2.0", "symfony/finder": "^4.4", "tinify/tinify": "^1.5", - "mgp25/instagram-api": "dev-master" + "unisharp/laravel-filemanager": "^2.5" }, "require-dev": { "beyondcode/laravel-dump-server": "^1.0", @@ -56,7 +58,8 @@ "sort-packages": true, "allow-plugins": { "kylekatarnls/update-helper": true - } + }, + "secure-http": false }, "extra": { "laravel": { diff --git a/composer.lock b/composer.lock index 34d632c..9e5424f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "17cfc6e1aff7e5e5aab6cc2aa6cd6a8f", + "content-hash": "194dc2e29f63967173b7a4d1e1010966", "packages": [ { "name": "albertofem/rsync-lib", @@ -228,16 +228,16 @@ }, { "name": "barryvdh/reflection-docblock", - "version": "v2.0.6", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" + "reference": "bf44b757feb8ba1734659029357646466ded673e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bf44b757feb8ba1734659029357646466ded673e", + "reference": "bf44b757feb8ba1734659029357646466ded673e", "shasum": "", "mirrors": [ { @@ -250,7 +250,7 @@ "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "~4.0,<4.5" + "phpunit/phpunit": "^8.5.14|^9" }, "suggest": { "dflydev/markdown": "~1.0", @@ -280,9 +280,9 @@ } ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.0" }, - "time": "2018-12-13T10:34:14+00:00" + "time": "2022-10-31T15:35:43+00:00" }, { "name": "binsoul/net-mqtt", @@ -2377,16 +2377,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.2.0", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "d28e6df83830252650da4623c78aaaf98fb385f3" + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d28e6df83830252650da4623c78aaaf98fb385f3", - "reference": "d28e6df83830252650da4623c78aaaf98fb385f3", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/ddfaddcb520488b42bca3a75e17e9dd53c3667da", + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da", "shasum": "", "mirrors": [ { @@ -2439,9 +2439,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.2.0" + "source": "https://github.com/firebase/php-jwt/tree/v6.3.1" }, - "time": "2022-05-13T20:54:50+00:00" + "time": "2022-11-01T21:20:08+00:00" }, { "name": "google/apiclient", @@ -2521,16 +2521,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.265.0", + "version": "v0.274.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "a23754daa452e26a8dd31a7848863c67a2e3d67e" + "reference": "670c3854fffc2f642efa86b083e2664fd55435e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a23754daa452e26a8dd31a7848863c67a2e3d67e", - "reference": "a23754daa452e26a8dd31a7848863c67a2e3d67e", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/670c3854fffc2f642efa86b083e2664fd55435e1", + "reference": "670c3854fffc2f642efa86b083e2664fd55435e1", "shasum": "", "mirrors": [ { @@ -2565,22 +2565,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.265.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.274.0" }, - "time": "2022-09-04T00:58:12+00:00" + "time": "2022-11-13T01:06:13+00:00" }, { "name": "google/auth", - "version": "v1.22.0", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "da4037df770027c8f7163595a29ec434f705f8b1" + "reference": "8da16102d2cd1bdc128d97f323553df465ee7701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/da4037df770027c8f7163595a29ec434f705f8b1", - "reference": "da4037df770027c8f7163595a29ec434f705f8b1", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/8da16102d2cd1bdc128d97f323553df465ee7701", + "reference": "8da16102d2cd1bdc128d97f323553df465ee7701", "shasum": "", "mirrors": [ { @@ -2629,9 +2629,9 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.22.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.23.0" }, - "time": "2022-09-01T17:07:07+00:00" + "time": "2022-09-27T16:27:23+00:00" }, { "name": "google/common-protos", @@ -2684,16 +2684,16 @@ }, { "name": "google/gax", - "version": "v1.16.4", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/googleapis/gax-php.git", - "reference": "29d29adda023e2b3b4b00394130d551af705318e" + "reference": "bb8d95187dcfebe04a40d2de916951fa4942fc35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/gax-php/zipball/29d29adda023e2b3b4b00394130d551af705318e", - "reference": "29d29adda023e2b3b4b00394130d551af705318e", + "url": "https://api.github.com/repos/googleapis/gax-php/zipball/bb8d95187dcfebe04a40d2de916951fa4942fc35", + "reference": "bb8d95187dcfebe04a40d2de916951fa4942fc35", "shasum": "", "mirrors": [ { @@ -2740,9 +2740,9 @@ ], "support": { "issues": "https://github.com/googleapis/gax-php/issues", - "source": "https://github.com/googleapis/gax-php/tree/v1.16.4" + "source": "https://github.com/googleapis/gax-php/tree/v1.17.0" }, - "time": "2022-08-25T19:51:56+00:00" + "time": "2022-09-12T15:22:54+00:00" }, { "name": "google/grpc-gcp", @@ -2902,16 +2902,16 @@ }, { "name": "google/protobuf", - "version": "v3.21.5", + "version": "v3.21.8", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "70649d33d2b6e8fd0db6d9b6fffc7f46f01f1438" + "reference": "6377c52338fd18634dddf6becfde94b8b16cd9f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/70649d33d2b6e8fd0db6d9b6fffc7f46f01f1438", - "reference": "70649d33d2b6e8fd0db6d9b6fffc7f46f01f1438", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/6377c52338fd18634dddf6becfde94b8b16cd9f5", + "reference": "6377c52338fd18634dddf6becfde94b8b16cd9f5", "shasum": "", "mirrors": [ { @@ -2946,9 +2946,9 @@ "proto" ], "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.21.5" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.21.8" }, - "time": "2022-08-09T19:53:56+00:00" + "time": "2022-10-18T18:22:00+00:00" }, { "name": "grpc/grpc", @@ -3460,6 +3460,96 @@ ], "time": "2022-06-20T21:43:03+00:00" }, + { + "name": "intervention/image", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" + }, { "name": "jaeger/g-http", "version": "V1.7.2", @@ -3738,16 +3828,16 @@ }, { "name": "james-heinrich/getid3", - "version": "v1.9.21", + "version": "v1.9.22", "source": { "type": "git", "url": "https://github.com/JamesHeinrich/getID3.git", - "reference": "36f5dabb1325415a4b07a401113f8db2eb81eca1" + "reference": "45f20faa0f0a24489740392c5b512ddcc36deccd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JamesHeinrich/getID3/zipball/36f5dabb1325415a4b07a401113f8db2eb81eca1", - "reference": "36f5dabb1325415a4b07a401113f8db2eb81eca1", + "url": "https://api.github.com/repos/JamesHeinrich/getID3/zipball/45f20faa0f0a24489740392c5b512ddcc36deccd", + "reference": "45f20faa0f0a24489740392c5b512ddcc36deccd", "shasum": "", "mirrors": [ { @@ -3805,9 +3895,9 @@ ], "support": { "issues": "https://github.com/JamesHeinrich/getID3/issues", - "source": "https://github.com/JamesHeinrich/getID3/tree/v1.9.21" + "source": "https://github.com/JamesHeinrich/getID3/tree/v1.9.22" }, - "time": "2021-09-22T16:34:51+00:00" + "time": "2022-09-29T16:41:13+00:00" }, { "name": "justinrainbow/json-schema", @@ -3954,6 +4044,69 @@ ], "time": "2020-04-07T20:44:10+00:00" }, + { + "name": "laravel-admin-ext/media-manager", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/laravel-admin-extensions/media-manager.git", + "reference": "08ef816da82e543f7519d6b17aa34f1ef13adaab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel-admin-extensions/media-manager/zipball/08ef816da82e543f7519d6b17aa34f1ef13adaab", + "reference": "08ef816da82e543f7519d6b17aa34f1ef13adaab", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "encore/laravel-admin": "~1.6", + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Encore\\Admin\\Media\\MediaServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Encore\\Admin\\Media\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "z-song", + "email": "zosong@126.com" + } + ], + "description": "Media manager for laravel", + "homepage": "https://github.com/laravel-admin-extensions/media-manager", + "keywords": [ + "laravel-admin", + "manager", + "media" + ], + "support": { + "issues": "https://github.com/laravel-admin-extensions/media-manager/issues", + "source": "https://github.com/laravel-admin-extensions/media-manager/tree/master" + }, + "time": "2019-10-14T09:05:25+00:00" + }, { "name": "laravel/framework", "version": "v5.7.29", @@ -4463,16 +4616,16 @@ }, { "name": "league/flysystem", - "version": "1.1.9", + "version": "1.1.10", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99" + "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", + "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", "shasum": "", "mirrors": [ { @@ -4551,7 +4704,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" + "source": "https://github.com/thephpleague/flysystem/tree/1.1.10" }, "funding": [ { @@ -4559,7 +4712,7 @@ "type": "other" } ], - "time": "2021-12-09T09:40:50+00:00" + "time": "2022-10-04T09:16:37+00:00" }, { "name": "league/mime-type-detection", @@ -4629,12 +4782,12 @@ "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-client.git", - "reference": "8c7498c14959b98d4143a8ef91e895f353381628" + "reference": "a1d3f8a5c3095cd91cdeb6ce698f457faaa3ac5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/8c7498c14959b98d4143a8ef91e895f353381628", - "reference": "8c7498c14959b98d4143a8ef91e895f353381628", + "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/a1d3f8a5c3095cd91cdeb6ce698f457faaa3ac5e", + "reference": "a1d3f8a5c3095cd91cdeb6ce698f457faaa3ac5e", "shasum": "", "mirrors": [ { @@ -4698,7 +4851,7 @@ "issues": "https://github.com/thephpleague/oauth2-client/issues", "source": "https://github.com/thephpleague/oauth2-client/tree/master" }, - "time": "2022-01-05T02:04:56+00:00" + "time": "2022-10-26T15:42:38+00:00" }, { "name": "mashape/unirest-php", @@ -4905,16 +5058,16 @@ }, { "name": "microsoft/microsoft-graph", - "version": "1.74.0", + "version": "1.83.0", "source": { "type": "git", "url": "https://github.com/microsoftgraph/msgraph-sdk-php.git", - "reference": "a43deb66661917d92bf62de1f29f6799b30ea91c" + "reference": "d04d0faa72ec9bf471e06bf586d98436be5b50c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/microsoftgraph/msgraph-sdk-php/zipball/a43deb66661917d92bf62de1f29f6799b30ea91c", - "reference": "a43deb66661917d92bf62de1f29f6799b30ea91c", + "url": "https://api.github.com/repos/microsoftgraph/msgraph-sdk-php/zipball/d04d0faa72ec9bf471e06bf586d98436be5b50c8", + "reference": "d04d0faa72ec9bf471e06bf586d98436be5b50c8", "shasum": "", "mirrors": [ { @@ -4956,9 +5109,9 @@ "homepage": "https://developer.microsoft.com/en-us/graph", "support": { "issues": "https://github.com/microsoftgraph/msgraph-sdk-php/issues", - "source": "https://github.com/microsoftgraph/msgraph-sdk-php/tree/1.74.0" + "source": "https://github.com/microsoftgraph/msgraph-sdk-php/tree/1.83.0" }, - "time": "2022-08-31T12:12:48+00:00" + "time": "2022-11-08T17:01:11+00:00" }, { "name": "mnapoli/front-yaml", @@ -7155,16 +7308,16 @@ }, { "name": "qcloud/cos-sdk-v5", - "version": "v2.5.6", + "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/tencentyun/cos-php-sdk-v5.git", - "reference": "607ee49d372a799964206b6ae0a9eb2816201c42" + "reference": "bb9f0f1a72922413a3d8eae0f02fd7f78e7d847b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/607ee49d372a799964206b6ae0a9eb2816201c42", - "reference": "607ee49d372a799964206b6ae0a9eb2816201c42", + "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/bb9f0f1a72922413a3d8eae0f02fd7f78e7d847b", + "reference": "bb9f0f1a72922413a3d8eae0f02fd7f78e7d847b", "shasum": "", "mirrors": [ { @@ -7222,9 +7375,9 @@ ], "support": { "issues": "https://github.com/tencentyun/cos-php-sdk-v5/issues", - "source": "https://github.com/tencentyun/cos-php-sdk-v5/tree/v2.5.6" + "source": "https://github.com/tencentyun/cos-php-sdk-v5/tree/v2.6.0" }, - "time": "2022-06-07T14:49:19+00:00" + "time": "2022-11-14T11:12:33+00:00" }, { "name": "raiym/instagram-php-scraper", @@ -8236,16 +8389,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.11", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "5a0fff46df349f0db3fe242263451fddf5277362" + "reference": "60e87188abbacd29ccde44d69c5392a33e888e98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/5a0fff46df349f0db3fe242263451fddf5277362", - "reference": "5a0fff46df349f0db3fe242263451fddf5277362", + "url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98", + "reference": "60e87188abbacd29ccde44d69c5392a33e888e98", "shasum": "", "mirrors": [ { @@ -8312,14 +8465,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", "homepage": "https://symfony.com", "keywords": [ "caching", "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.11" + "source": "https://github.com/symfony/cache/tree/v5.4.15" }, "funding": [ { @@ -8335,7 +8488,7 @@ "type": "tidelift" } ], - "time": "2022-07-28T15:25:17+00:00" + "time": "2022-10-27T07:55:40+00:00" }, { "name": "symfony/cache-contracts", @@ -8424,16 +8577,16 @@ }, { "name": "symfony/console", - "version": "v4.4.45", + "version": "v4.4.48", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "28b77970939500fb04180166a1f716e75a871ef8" + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/28b77970939500fb04180166a1f716e75a871ef8", - "reference": "28b77970939500fb04180166a1f716e75a871ef8", + "url": "https://api.github.com/repos/symfony/console/zipball/8e70c1cab07ac641b885ce80385b9824a293c623", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623", "shasum": "", "mirrors": [ { @@ -8500,7 +8653,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.45" + "source": "https://github.com/symfony/console/tree/v4.4.48" }, "funding": [ { @@ -8516,7 +8669,7 @@ "type": "tidelift" } ], - "time": "2022-08-17T14:50:19+00:00" + "time": "2022-10-26T16:02:45+00:00" }, { "name": "symfony/css-selector", @@ -8740,16 +8893,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v5.4.12", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f" + "reference": "b8fd0ff9a0f00d944f1534f6d21e84f92eda7258" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/291c1e92281a09152dda089f782e23dedd34bd4f", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b8fd0ff9a0f00d944f1534f6d21e84f92eda7258", + "reference": "b8fd0ff9a0f00d944f1534f6d21e84f92eda7258", "shasum": "", "mirrors": [ { @@ -8801,7 +8954,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.12" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.15" }, "funding": [ { @@ -8817,7 +8970,7 @@ "type": "tidelift" } ], - "time": "2022-08-03T13:09:21+00:00" + "time": "2022-10-27T08:04:35+00:00" }, { "name": "symfony/error-handler", @@ -8895,16 +9048,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.42", + "version": "v4.4.44", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "708e761740c16b02c86e3f0c932018a06b895d40" + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/708e761740c16b02c86e3f0c932018a06b895d40", - "reference": "708e761740c16b02c86e3f0c932018a06b895d40", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", "shasum": "", "mirrors": [ { @@ -8965,7 +9118,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.42" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" }, "funding": [ { @@ -8981,7 +9134,7 @@ "type": "tidelift" } ], - "time": "2022-05-05T15:33:49+00:00" + "time": "2022-07-20T09:59:04+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -9291,16 +9444,16 @@ }, { "name": "symfony/http-foundation", - "version": "v4.4.45", + "version": "v4.4.48", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "b2f2e3cb66349d89cb46c939cea03c62ad71cf00" + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b2f2e3cb66349d89cb46c939cea03c62ad71cf00", - "reference": "b2f2e3cb66349d89cb46c939cea03c62ad71cf00", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", "shasum": "", "mirrors": [ { @@ -9345,7 +9498,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v4.4.45" + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" }, "funding": [ { @@ -9361,20 +9514,20 @@ "type": "tidelift" } ], - "time": "2022-08-17T15:29:03+00:00" + "time": "2022-10-12T09:40:54+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.45", + "version": "v4.4.48", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "4f2d38e9a3c6997ea0886ede5aaf337dfd0fc938" + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4f2d38e9a3c6997ea0886ede5aaf337dfd0fc938", - "reference": "4f2d38e9a3c6997ea0886ede5aaf337dfd0fc938", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", "shasum": "", "mirrors": [ { @@ -9455,7 +9608,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v4.4.45" + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" }, "funding": [ { @@ -9471,20 +9624,20 @@ "type": "tidelift" } ], - "time": "2022-08-26T14:34:48+00:00" + "time": "2022-10-28T16:49:22+00:00" }, { "name": "symfony/mime", - "version": "v5.4.12", + "version": "v5.4.14", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90" + "reference": "1c118b253bb3495d81e95a6e3ec6c2766a98a0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/03876e9c5a36f5b45e7d9a381edda5421eff8a90", - "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90", + "url": "https://api.github.com/repos/symfony/mime/zipball/1c118b253bb3495d81e95a6e3ec6c2766a98a0c4", + "reference": "1c118b253bb3495d81e95a6e3ec6c2766a98a0c4", "shasum": "", "mirrors": [ { @@ -9504,7 +9657,8 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", @@ -9512,7 +9666,7 @@ "symfony/dependency-injection": "^4.4|^5.0|^6.0", "symfony/property-access": "^4.4|^5.1|^6.0", "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" }, "type": "library", "autoload": { @@ -9544,7 +9698,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.12" + "source": "https://github.com/symfony/mime/tree/v5.4.14" }, "funding": [ { @@ -9560,7 +9714,7 @@ "type": "tidelift" } ], - "time": "2022-08-19T14:24:03+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "symfony/options-resolver", @@ -9637,16 +9791,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "", "mirrors": [ { @@ -9667,7 +9821,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -9705,7 +9859,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -9721,20 +9875,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "143f1881e655bebca1312722af8068de235ae5dc" + "reference": "927013f3aac555983a5059aada98e1907d842695" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", - "reference": "143f1881e655bebca1312722af8068de235ae5dc", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", + "reference": "927013f3aac555983a5059aada98e1907d842695", "shasum": "", "mirrors": [ { @@ -9755,7 +9909,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -9794,7 +9948,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0" }, "funding": [ { @@ -9810,20 +9964,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", "shasum": "", "mirrors": [ { @@ -9843,7 +9997,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -9887,7 +10041,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" }, "funding": [ { @@ -9903,20 +10057,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "", "mirrors": [ { @@ -9934,7 +10088,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -9977,7 +10131,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -9993,20 +10147,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "", "mirrors": [ { @@ -10027,7 +10181,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -10066,7 +10220,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -10082,20 +10236,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", "shasum": "", "mirrors": [ { @@ -10110,7 +10264,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -10148,7 +10302,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" }, "funding": [ { @@ -10164,20 +10318,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "shasum": "", "mirrors": [ { @@ -10192,7 +10346,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -10233,7 +10387,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" }, "funding": [ { @@ -10249,20 +10403,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "", "mirrors": [ { @@ -10277,7 +10431,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -10322,7 +10476,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, "funding": [ { @@ -10338,7 +10492,7 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", @@ -10594,16 +10748,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.45", + "version": "v4.4.47", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "4e6b4c0dbeb04d6f004ed7f43eb0905ce8396def" + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/4e6b4c0dbeb04d6f004ed7f43eb0905ce8396def", - "reference": "4e6b4c0dbeb04d6f004ed7f43eb0905ce8396def", + "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94", + "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94", "shasum": "", "mirrors": [ { @@ -10669,7 +10823,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v4.4.45" + "source": "https://github.com/symfony/translation/tree/v4.4.47" }, "funding": [ { @@ -10685,7 +10839,7 @@ "type": "tidelift" } ], - "time": "2022-08-02T12:44:49+00:00" + "time": "2022-10-03T15:15:11+00:00" }, { "name": "symfony/translation-contracts", @@ -10773,16 +10927,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.44", + "version": "v4.4.47", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed" + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f19951007dae942cc79b979c1fe26bfdfbeb54ed", - "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", "shasum": "", "mirrors": [ { @@ -10848,7 +11002,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.44" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" }, "funding": [ { @@ -10864,7 +11018,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T09:59:04+00:00" + "time": "2022-10-03T15:15:11+00:00" }, { "name": "symfony/var-exporter", @@ -11028,16 +11182,16 @@ }, { "name": "tightenco/collect", - "version": "v8.83.23", + "version": "v8.83.25", "source": { "type": "git", "url": "https://github.com/tighten/collect.git", - "reference": "a4423c6ace6b54ba4f86c0ac9de588c57bc94d79" + "reference": "7d2a6fc5e97c5f7209a780bea98f35042c1fd0ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tighten/collect/zipball/a4423c6ace6b54ba4f86c0ac9de588c57bc94d79", - "reference": "a4423c6ace6b54ba4f86c0ac9de588c57bc94d79", + "url": "https://api.github.com/repos/tighten/collect/zipball/7d2a6fc5e97c5f7209a780bea98f35042c1fd0ea", + "reference": "7d2a6fc5e97c5f7209a780bea98f35042c1fd0ea", "shasum": "", "mirrors": [ { @@ -11082,22 +11236,22 @@ ], "support": { "issues": "https://github.com/tighten/collect/issues", - "source": "https://github.com/tighten/collect/tree/v8.83.23" + "source": "https://github.com/tighten/collect/tree/v8.83.25" }, - "time": "2022-08-22T17:50:04+00:00" + "time": "2022-08-22T17:55:07+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.4", + "version": "2.2.5", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c" + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", "shasum": "", "mirrors": [ { @@ -11141,22 +11295,22 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" }, - "time": "2021-12-08T09:12:39+00:00" + "time": "2022-09-12T13:28:28+00:00" }, { "name": "tinify/tinify", - "version": "1.5.3", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/tinify/tinify-php.git", - "reference": "f971971ca4b4f0185277a81ba695640d47833852" + "reference": "fe422931c64d63ae0e1b5f29d7fa8627503e31cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tinify/tinify-php/zipball/f971971ca4b4f0185277a81ba695640d47833852", - "reference": "f971971ca4b4f0185277a81ba695640d47833852", + "url": "https://api.github.com/repos/tinify/tinify-php/zipball/fe422931c64d63ae0e1b5f29d7fa8627503e31cd", + "reference": "fe422931c64d63ae0e1b5f29d7fa8627503e31cd", "shasum": "", "mirrors": [ { @@ -11172,8 +11326,7 @@ "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "symfony/yaml": "~2.0" + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4 || ^9.3" }, "type": "library", "autoload": { @@ -11208,9 +11361,94 @@ "support": { "email": "support@tinify.com", "issues": "https://github.com/tinify/tinify-php/issues", - "source": "https://github.com/tinify/tinify-php/tree/1.5.3" + "source": "https://github.com/tinify/tinify-php/tree/1.6.0" + }, + "time": "2022-09-26T12:37:36+00:00" + }, + { + "name": "unisharp/laravel-filemanager", + "version": "v2.5.1", + "source": { + "type": "git", + "url": "https://github.com/UniSharp/laravel-filemanager.git", + "reference": "9e9022747832fb862a15bdafd4e6fdd564f10c82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/UniSharp/laravel-filemanager/zipball/9e9022747832fb862a15bdafd4e6fdd564f10c82", + "reference": "9e9022747832fb862a15bdafd4e6fdd564f10c82", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-exif": "*", + "ext-fileinfo": "*", + "illuminate/config": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "illuminate/container": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "illuminate/filesystem": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "illuminate/http": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "illuminate/support": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "intervention/image": "2.*", + "php": ">=7.2.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.9", + "phpunit/phpunit": "^6.2", + "squizlabs/php_codesniffer": "^3.1" }, - "time": "2021-09-29T11:48:17+00:00" + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "UniSharp\\LaravelFilemanager\\LaravelFilemanagerServiceProvider" + ], + "aliases": [] + } + }, + "autoload": { + "psr-4": { + "UniSharp\\LaravelFilemanager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Trevor Sawler", + "email": "trevor.sawler@gmail.com" + }, + { + "name": "UniSharp Ltd.", + "email": "opensource@unisharp.com" + } + ], + "description": "A file upload/editor intended for use with Laravel 5 to 6 and CKEditor / TinyMCE", + "keywords": [ + "CKEditor", + "file", + "filemanager", + "image", + "laravel", + "manager", + "tinymce", + "upload" + ], + "support": { + "issues": "https://github.com/UniSharp/laravel-filemanager/issues", + "source": "https://github.com/UniSharp/laravel-filemanager/tree/v2.5.1" + }, + "time": "2022-05-15T11:14:27+00:00" }, { "name": "valga/fbns-react", @@ -12789,16 +13027,16 @@ }, { "name": "sebastian/comparator", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "", "mirrors": [ { @@ -12857,7 +13095,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" }, "funding": [ { @@ -12865,7 +13103,7 @@ "type": "github" } ], - "time": "2020-11-30T08:04:30+00:00" + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", @@ -13010,16 +13248,16 @@ }, { "name": "sebastian/exporter", - "version": "3.1.4", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "", "mirrors": [ { @@ -13081,7 +13319,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" }, "funding": [ { @@ -13089,7 +13327,7 @@ "type": "github" } ], - "time": "2021-11-11T13:51:24+00:00" + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/global-state", @@ -13581,8 +13819,8 @@ "minimum-stability": "dev", "stability-flags": { "league/oauth2-client": 20, - "prettus/l5-repository": 20, - "mgp25/instagram-api": 20 + "mgp25/instagram-api": 20, + "prettus/l5-repository": 20 }, "prefer-stable": true, "prefer-lowest": false, diff --git a/config/admin.php b/config/admin.php index 75b1065..6fa20e0 100644 --- a/config/admin.php +++ b/config/admin.php @@ -396,6 +396,11 @@ return [ | */ 'extensions' => [ + 'media-manager' => [ + // Select a local disk that you configured in `config/filesystem.php` + 'disk' => 'xr', + 'allowed_ext' => 'jpg,jpeg,png,pdf,doc,docx,zip' + ], ], ]; diff --git a/config/filesystems.php b/config/filesystems.php index 77fa5de..a48acdf 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -54,6 +54,12 @@ return [ 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], + 'xr' => [ + 'driver' => 'local', + 'root' => "/Volumes/Crucial X6/Image/xr", + 'url' => env('APP_URL').'/storage/xr', + 'visibility' => 'public' + ], 's3' => [ 'driver' => 's3', diff --git a/config/lfm.php b/config/lfm.php new file mode 100644 index 0000000..5c41812 --- /dev/null +++ b/config/lfm.php @@ -0,0 +1,179 @@ + http://unisharp.github.io/laravel-filemanager/config +| offline => vendor/unisharp/laravel-filemanager/docs/config.md + */ + +return [ + /* + |-------------------------------------------------------------------------- + | Routing + |-------------------------------------------------------------------------- + */ + + 'use_package_routes' => true, + + /* + |-------------------------------------------------------------------------- + | Shared folder / Private folder + |-------------------------------------------------------------------------- + | + | If both options are set to false, then shared folder will be activated. + | + */ + + 'allow_private_folder' => true, + + // Flexible way to customize client folders accessibility + // If you want to customize client folders, publish tag="lfm_handler" + // Then you can rewrite userField function in App\Handler\ConfigHandler class + // And set 'user_field' to App\Handler\ConfigHandler::class + // Ex: The private folder of user will be named as the user id. + 'private_folder_name' => UniSharp\LaravelFilemanager\Handlers\ConfigHandler::class, + + 'allow_shared_folder' => true, + + 'shared_folder_name' => 'shares', + + /* + |-------------------------------------------------------------------------- + | Folder Names + |-------------------------------------------------------------------------- + */ + + 'folder_categories' => [ + 'file' => [ + 'folder_name' => 'files', + 'startup_view' => 'list', + 'max_size' => 50000, // size in KB + 'thumb' => true, + 'thumb_width' => 80, + 'thumb_height' => 80, + 'valid_mime' => [ + 'image/jpeg', + 'image/pjpeg', + 'image/png', + 'image/gif', + 'application/pdf', + 'text/plain', + ], + ], + 'image' => [ + 'folder_name' => 'photos', + 'startup_view' => 'grid', + 'max_size' => 50000, // size in KB + 'thumb' => true, + 'thumb_width' => 80, + 'thumb_height' => 80, + 'valid_mime' => [ + 'image/jpeg', + 'image/pjpeg', + 'image/png', + 'image/gif', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Pagination + |-------------------------------------------------------------------------- + */ + + 'paginator' => [ + 'perPage' => 30, + ], + + /* + |-------------------------------------------------------------------------- + | Upload / Validation + |-------------------------------------------------------------------------- + */ + + 'disk' => 'public', + + 'rename_file' => false, + + 'rename_duplicates' => false, + + 'alphanumeric_filename' => false, + + 'alphanumeric_directory' => false, + + 'should_validate_size' => false, + + 'should_validate_mime' => true, + + // behavior on files with identical name + // setting it to true cause old file replace with new one + // setting it to false show `error-file-exist` error and stop upload + 'over_write_on_duplicate' => false, + + // mimetypes of executables to prevent from uploading + 'disallowed_mimetypes' => ['text/x-php', 'text/html', 'text/plain'], + + // Item Columns + 'item_columns' => ['name', 'url', 'time', 'icon', 'is_file', 'is_image', 'thumb_url'], + + /* + |-------------------------------------------------------------------------- + | Thumbnail + |-------------------------------------------------------------------------- + */ + + // If true, image thumbnails would be created during upload + 'should_create_thumbnails' => true, + + 'thumb_folder_name' => 'thumbs', + + // Create thumbnails automatically only for listed types. + 'raster_mimetypes' => [ + 'image/jpeg', + 'image/pjpeg', + 'image/png', + ], + + 'thumb_img_width' => 200, // px + + 'thumb_img_height' => 200, // px + + /* + |-------------------------------------------------------------------------- + | File Extension Information + |-------------------------------------------------------------------------- + */ + + 'file_type_array' => [ + 'pdf' => 'Adobe Acrobat', + 'doc' => 'Microsoft Word', + 'docx' => 'Microsoft Word', + 'xls' => 'Microsoft Excel', + 'xlsx' => 'Microsoft Excel', + 'zip' => 'Archive', + 'gif' => 'GIF Image', + 'jpg' => 'JPEG Image', + 'jpeg' => 'JPEG Image', + 'png' => 'PNG Image', + 'ppt' => 'Microsoft PowerPoint', + 'pptx' => 'Microsoft PowerPoint', + ], + + /* + |-------------------------------------------------------------------------- + | php.ini override + |-------------------------------------------------------------------------- + | + | These values override your php.ini settings before uploading files + | Set these to false to ingnore and apply your php.ini settings + | + | Please note that the 'upload_max_filesize' & 'post_max_size' + | directives are not supported. + */ + 'php_ini_overrides' => [ + 'memory_limit' => '256M', + ], +]; diff --git a/fail.log b/fail.log index b79e818..da0c1dd 100644 --- a/fail.log +++ b/fail.log @@ -2675,3 +2675,11 @@ /Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/314141025_859748188356735_7326665271053063857_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=1m3soLIEXEsAX8xSmQ4&tn=eZ1kil3PRHf58LZO&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=Mjk2Mzc3MTMxMjc1MzYwOTg0MA%3D%3D.2-ccb7-5&oh=00_AfDqUkweVLrH0Zkdh02oDJvVLZaZLfL3inSMszDDRGwauA&oe=6376334D&_nc_sid=6136e7 /Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/315233206_814857243155802_4367639531993466371_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=7ACQuzlFgrMAX9sXO5Y&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=Mjk3MTI2MzU4MzY0Mzg0OTUxNg%3D%3D.2-ccb7-5&oh=00_AfA7boZor8lZ3sv8ho5QmQgBM5NnIc0ckmrkz1_-JTmdAg&oe=63774BF3&_nc_sid=cff2a4 /Users/shixuesen/OneDrive/Pictures/instagram/jelly_jilli/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/73180637_449268042611131_5817290211154444343_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5mZWVkLmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=b6TFcH0GZzEAX9pc4dp&edm=ABmJApABAAAA&vs=18096611701079253_3805765221&_nc_vs=HBksFQAYJEdOMmxYQVM3dVJaZW01Z0JBRGZBTnlfZ0tydFFia1lMQUFBRhUAAsgBABUAGCRHQlZqYWdUSl8xUUwtMUlCQUtYSzJVYy03a1VRYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaq3NTptrGlQBUCKAJDMywXQB6p%2B%2Bdsi0QYEmRhc2hfYmFzZWxpbmVfMV92MREAdeoHAA%3D%3D&ccb=7-5&oh=00_AfAq35Kl7nQXvHRpJHS7UE6n70clITgVOdVzQHP5SRMKZw&oe=6374BA81&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/shinapit46/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/313313214_485664626862750_1900749708847244358_n.webp?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=Wi8mRxwlziEAX8Gp3_f&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=Mjk2MTQyNDEwNzMzNTYzOTUwOA%3D%3D.2-ccb7-5&oh=00_AfDUU_CD7s9Cn5LVzWWRx4_upFu4CufJlrRmP-eyQYmAuA&oe=63865696&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/shinapit46/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/313188636_823768742005989_7496849798290222688_n.webp?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=Jp0htgLOd74AX_KPqPe&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=Mjk1OTM0MDE3Mjg0MTI1MDU2MQ%3D%3D.2-ccb7-5&oh=00_AfB-izh4IZbK4CEjYgX8c-dYdc-iOlhYKY-18cPbHc3ETQ&oe=638559B1&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/271270191_604676980631507_7215958133074026161_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=X5tg7WWoxyMAX_ncSVe&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=Mjc0NDU0Nzc4MTYzMTYzMzMzMw%3D%3D.2-ccb7-5&oh=00_AfDNX0JKebvneJH3cemSVFoi8SZVVNbl05VOb4-sQEPT1Q&oe=6385673F&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/266041353_490214375678450_4943871373144387719_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=as9t_zqC6IUAX9G4le4&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjcyNzAwMjQ3Mjk0NjQ1MDM4Mw%3D%3D.2-ccb7-5&oh=00_AfDaOqAWnTicCyMtQkh7giabUvimnZtQmPm93y2-ZnEjyQ&oe=638588AB&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/264564045_505971033782263_5683081350420480648_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=Jcs8aiXRasUAX9Ox-pf&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjcyMjU5NDg3NTg5NjA1NzY0Mw%3D%3D.2-ccb7-5&oh=00_AfDCxAM4Sf6oOTPy9w6VH3-l3qs-cwJL72RA86Lde5X9wQ&oe=638623F4&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/254122983_412149843701697_3813505009673577747_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=vrBwtibidBkAX86EnRK&tn=eZ1kil3PRHf58LZO&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjcwMzIxOTA4NzI1MjQ1NDc0OQ%3D%3D.2-ccb7-5&oh=00_AfBA7KCXyXxX_LBcqyk0gZnAbrWmbBTKmyAJGB31R50z2A&oe=6386282A&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/236233038_4384357878291000_6981055161566006441_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=AnIF_Q73ZBAAX9Jc9r4&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjYzNzgyODQ1NTgzNzcyMzA2Ng%3D%3D.2-ccb7-5&oh=00_AfDlQPI9UJG0TKZ5XqIlupN9IUWXl9zebkkTYijA0teIlQ&oe=6385DD8C&_nc_sid=6136e7 +/Users/shixuesen/OneDrive/Pictures/instagram/siawase726/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/233805996_150740357113843_5164325267337857116_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=fFRmFMJJf2kAX8jHqLM&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjYzNTYyMjk1MDE5Mjg1ODIwNQ%3D%3D.2-ccb7-5&oh=00_AfChajONjMBOb95cqTeIwqhNSYYJLSoXpSKiC2xiKIfLnQ&oe=63862C7E&_nc_sid=6136e7 diff --git a/public/vendor/laravel-filemanager/css/cropper.min.css b/public/vendor/laravel-filemanager/css/cropper.min.css new file mode 100644 index 0000000..b5febee --- /dev/null +++ b/public/vendor/laravel-filemanager/css/cropper.min.css @@ -0,0 +1,9 @@ +/*! + * Cropper v0.9.1 + * https://github.com/fengyuanchen/cropper + * + * Copyright (c) 2014-2015 Fengyuan Chen and contributors + * Released under the MIT license + * + * Date: 2015-03-21T04:58:27.265Z + */.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;width:100%;min-width:0!important;max-width:none!important;height:100%;min-height:0!important;max-height:none!important;image-orientation:0deg!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;filter:alpha(opacity=0);opacity:0}.cropper-modal{background-color:#000;filter:alpha(opacity=50);opacity:.5}.cropper-view-box{display:block;width:100%;height:100%;overflow:hidden;outline:#69f solid 1px;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;filter:alpha(opacity=50);border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.33333333%;left:0;width:100%;height:33.33333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333333%;width:33.33333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;filter:alpha(opacity=10);opacity:.1}.cropper-face{top:0;left:0;cursor:move;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;background-color:#69f;filter:alpha(opacity=75);opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;filter:alpha(opacity=100);opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";background-color:#69f;filter:alpha(opacity=0);opacity:0}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-invisible{filter:alpha(opacity=0);opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;filter:alpha(opacity=0);opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-canvas,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed} \ No newline at end of file diff --git a/public/vendor/laravel-filemanager/css/dropzone.min.css b/public/vendor/laravel-filemanager/css/dropzone.min.css new file mode 100644 index 0000000..571d71a --- /dev/null +++ b/public/vendor/laravel-filemanager/css/dropzone.min.css @@ -0,0 +1,532 @@ +@-webkit-keyframes passing-through { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30%, 70% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-40px); + -moz-transform: translateY(-40px); + -ms-transform: translateY(-40px); + -o-transform: translateY(-40px); + transform: translateY(-40px) + } + +} + +@-moz-keyframes passing-through { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30%, 70% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-40px); + -moz-transform: translateY(-40px); + -ms-transform: translateY(-40px); + -o-transform: translateY(-40px); + transform: translateY(-40px) + } + +} + +@keyframes passing-through { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30%, 70% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-40px); + -moz-transform: translateY(-40px); + -ms-transform: translateY(-40px); + -o-transform: translateY(-40px); + transform: translateY(-40px) + } + +} + +@-webkit-keyframes slide-in { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + +} + +@-moz-keyframes slide-in { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + +} + +@keyframes slide-in { + 0% { + opacity: 0; + -webkit-transform: translateY(40px); + -moz-transform: translateY(40px); + -ms-transform: translateY(40px); + -o-transform: translateY(40px); + transform: translateY(40px) + } + + 30% { + opacity: 1; + -webkit-transform: translateY(0px); + -moz-transform: translateY(0px); + -ms-transform: translateY(0px); + -o-transform: translateY(0px); + transform: translateY(0px) + } + +} + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + + 10% { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -ms-transform: scale(1.1); + -o-transform: scale(1.1); + transform: scale(1.1) + } + + 20% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + +} + +@-moz-keyframes pulse { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + + 10% { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -ms-transform: scale(1.1); + -o-transform: scale(1.1); + transform: scale(1.1) + } + + 20% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + +} + +@keyframes pulse { + 0% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + + 10% { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -ms-transform: scale(1.1); + -o-transform: scale(1.1); + transform: scale(1.1) + } + + 20% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1) + } + +} + +.dropzone, .dropzone * { + box-sizing: border-box +} + +.dropzone { + min-height: 150px; + border: 2px solid rgba(0, 0, 0, 0.3); + background: white; + padding: 20px 20px +} + +.dropzone.dz-clickable { + cursor: pointer +} + +.dropzone.dz-clickable * { + cursor: default +} + +.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * { + cursor: pointer +} + +.dropzone.dz-started .dz-message { + display: none +} + +.dropzone.dz-drag-hover { + border-style: solid +} + +.dropzone.dz-drag-hover .dz-message { + opacity: 0.5 +} + +.dropzone .dz-message { + text-align: center; + margin: 2em 0 +} + +.dropzone .dz-preview { + position: relative; + display: inline-block; + vertical-align: top; + margin: 16px; + min-height: 100px +} + +.dropzone .dz-preview:hover { + z-index: 1000 +} + +.dropzone .dz-preview:hover .dz-details { + opacity: 1 +} + +.dropzone .dz-preview.dz-file-preview .dz-image { + border-radius: 20px; + background: #999; + background: linear-gradient(to bottom, #eee, #ddd) +} + +.dropzone .dz-preview.dz-file-preview .dz-details { + opacity: 1 +} + +.dropzone .dz-preview.dz-image-preview { + background: white +} + +.dropzone .dz-preview.dz-image-preview .dz-details { + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -ms-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear +} + +.dropzone .dz-preview .dz-remove { + font-size: 14px; + text-align: center; + display: block; + cursor: pointer; + border: none +} + +.dropzone .dz-preview .dz-remove:hover { + text-decoration: underline +} + +.dropzone .dz-preview:hover .dz-details { + opacity: 1 +} + +.dropzone .dz-preview .dz-details { + z-index: 20; + position: absolute; + top: 0; + left: 0; + opacity: 0; + font-size: 13px; + min-width: 100%; + max-width: 100%; + padding: 2em 1em; + text-align: center; + color: rgba(0, 0, 0, 0.9); + line-height: 150% +} + +.dropzone .dz-preview .dz-details .dz-size { + margin-bottom: 1em; + font-size: 16px +} + +.dropzone .dz-preview .dz-details .dz-filename { + white-space: nowrap +} + +.dropzone .dz-preview .dz-details .dz-filename:hover span { + border: 1px solid rgba(200, 200, 200, 0.8); + background-color: rgba(255, 255, 255, 0.8) +} + +.dropzone .dz-preview .dz-details .dz-filename:not(:hover) { + overflow: hidden; + text-overflow: ellipsis +} + +.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { + border: 1px solid transparent +} + +.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span { + background-color: rgba(255, 255, 255, 0.4); + padding: 0 0.4em; + border-radius: 3px +} + +.dropzone .dz-preview:hover .dz-image img { + -webkit-transform: scale(1.05, 1.05); + -moz-transform: scale(1.05, 1.05); + -ms-transform: scale(1.05, 1.05); + -o-transform: scale(1.05, 1.05); + transform: scale(1.05, 1.05); + -webkit-filter: blur(8px); + filter: blur(8px) +} + +.dropzone .dz-preview .dz-image { + border-radius: 20px; + overflow: hidden; + width: 120px; + height: 120px; + position: relative; + display: block; + z-index: 10 +} + +.dropzone .dz-preview .dz-image img { + display: block +} + +.dropzone .dz-preview.dz-success .dz-success-mark { + -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); + -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); + -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); + -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); + animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1) +} + +.dropzone .dz-preview.dz-error .dz-error-mark { + opacity: 1; + -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); + -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); + -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); + -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); + animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1) +} + +.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark { + pointer-events: none; + opacity: 0; + z-index: 500; + position: absolute; + display: block; + top: 50%; + left: 50%; + margin-left: -27px; + margin-top: -27px +} + +.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg { + display: block; + width: 54px; + height: 54px +} + +.dropzone .dz-preview.dz-processing .dz-progress { + opacity: 1; + -webkit-transition: all 0.2s linear; + -moz-transition: all 0.2s linear; + -ms-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear +} + +.dropzone .dz-preview.dz-complete .dz-progress { + opacity: 0; + -webkit-transition: opacity 0.4s ease-in; + -moz-transition: opacity 0.4s ease-in; + -ms-transition: opacity 0.4s ease-in; + -o-transition: opacity 0.4s ease-in; + transition: opacity 0.4s ease-in +} + +.dropzone .dz-preview:not(.dz-processing) .dz-progress { + -webkit-animation: pulse 6s ease infinite; + -moz-animation: pulse 6s ease infinite; + -ms-animation: pulse 6s ease infinite; + -o-animation: pulse 6s ease infinite; + animation: pulse 6s ease infinite +} + +.dropzone .dz-preview .dz-progress { + opacity: 1; + z-index: 1000; + pointer-events: none; + position: absolute; + height: 16px; + left: 50%; + top: 50%; + margin-top: -8px; + width: 80px; + margin-left: -40px; + background: rgba(255, 255, 255, 0.9); + -webkit-transform: scale(1); + border-radius: 8px; + overflow: hidden +} + +.dropzone .dz-preview .dz-progress .dz-upload { + background: #333; + background: linear-gradient(to bottom, #666, #444); + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 0; + -webkit-transition: width 300ms ease-in-out; + -moz-transition: width 300ms ease-in-out; + -ms-transition: width 300ms ease-in-out; + -o-transition: width 300ms ease-in-out; + transition: width 300ms ease-in-out +} + +.dropzone .dz-preview.dz-error .dz-error-message { + display: block +} + +.dropzone .dz-preview.dz-error:hover .dz-error-message { + transform: scale(1.5); + pointer-events: auto +} + +.dropzone .dz-preview .dz-error-message { + pointer-events: none; + z-index: 1000; + position: absolute; + display: block; + display: none; + opacity: 1; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + border-radius: 8px; + font-size: 13px; + top: 130px; + left: -10px; + width: 140px; + background: #be2626; + background: linear-gradient(to bottom, #be2626, #a92222); + padding: 0.5em 1.2em; + color: white +} + +.dropzone .dz-preview .dz-error-message:after { + content: ''; + position: absolute; + top: -6px; + left: 64px; + width: 0; + height: 0; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #be2626 +} diff --git a/public/vendor/laravel-filemanager/css/lfm.css b/public/vendor/laravel-filemanager/css/lfm.css new file mode 100644 index 0000000..2eefe90 --- /dev/null +++ b/public/vendor/laravel-filemanager/css/lfm.css @@ -0,0 +1,387 @@ +/* General */ + +a { + color: #333844; + text-decoration: none !important; + cursor: pointer; +} + +#nav a, #fab a { + color: white; +} + +#nav, #nav .dropdown-menu, .bg-main { + background-color: #333844; +} + +#nav .dropdown-menu > a:hover { + color: #333844; +} + +#actions { + display: flex; +} + +#actions > a { + display: inline-block; + line-height: 4rem; + text-align: center; + width: 100%; + font-size: 1.25rem; +} + +#actions > a > i { + margin-right: .25rem; +} + +#actions > a + a { + border-left: 1px solid #dee2e6; +} + +#multi_selection_toggle > i { + font-size: 20px; +} + +.breadcrumb-item:not(.active) { + transition: .2s color; +} + +.breadcrumb-item:not(.active):hover { + cursor: pointer; + color: #75C7C3; +} + +#main { + width: 100%; +} + +@media screen and (min-width: 992px) { + #main { + width: calc(100% - 300px); + /*margin-left: 1rem;*/ + padding: 1rem; + } + + .invisible-lg { + visibility: hidden; + } +} + +#tree { + background-color: white; + width: 300px; +} + +@media screen and (max-width: 991px) { + #tree { + position: absolute; + z-index: 999; + left: 0; + transform: translateX(-100%); + transition: 1s transform; + } + + #tree.in { + transform: translateX(0); + } +} + +#empty { + height: 60vh; + color: #333844; +} + +#empty:not(.d-none) { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +#empty > i { + font-size: 10rem; +} + +.carousel-image { + height: 50vh; + background-position: center; + background-size: contain; + background-repeat: no-repeat; + margin: 0 auto; +} + +.carousel-indicators { + bottom: 0; +} + +.carousel-label, .carousel-label:hover { + position: absolute; + bottom: 0; + background: linear-gradient(transparent 10px, rgba(0, 0, 0, .4), rgba(0, 0, 0, .5)); + padding: 40px 20px 30px; + width: 100%; + color: white; + word-break: break-word; + text-align: center; +} + +.carousel-control-background { + border-radius: 50%; + width: 25px; + height: 25px; + box-shadow: 0 0 10px #666; + background-color: #666; +} + +#uploadForm > .dz-default.dz-message { + border: 2px dashed #ccc; + border-radius: 5px; + color: #aaa; + margin: 0; + padding: 3rem 0; +} + +/* Loader */ + +#lfm-loader { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: gray; + opacity: 0.7; + z-index: 9999; + text-align: center; +} +#lfm-loader:before { + content: ""; + display: inline-block; + vertical-align: middle; + height: 100%; +} +#lfm-loader img { + width: 100px; + margin: 0 auto; + display: inline-block; + vertical-align: middle; +} + +/* Sidebar */ + +.nav-pills > .nav-item > .nav-link { + height: 5rem; + display: flex; + align-items: center; +} + +.nav-pills > .sub-item > .nav-link { + height: 3rem; + padding-left: 3rem; +} + +.nav-pills > li.active > a, .nav-pills > li:hover > a { + background-color: #ddd; + border-radius: 0; + color: #333844; +} + +/* Items */ + +#pagination > ul.pagination { + justify-content: center; +} + +#pagination.preserve_actions_space { + padding-top: 1em; + padding-bottom: 4rem; /* preserve space for main actions */ +} + +.square { + cursor: pointer; + position: relative; + display: flex; + align-items: center; + justify-content: center; + padding: 5px; +} + +.grid { + display: flex; + flex-wrap: wrap; + padding: .5rem; + justify-content: center; +} + +.grid a { + margin: .5rem; + display: flex; + flex-direction: column; +} + +.list a { + border-top: 1px solid rgb(221, 221, 221); + padding: 5px; + margin-top: 0; + display: flex; + flex-direction: row; +} + +.list a:last-child { + border-bottom: 1px solid rgb(221, 221, 221); +} + +.grid .square { + border: 1px solid rgb(221, 221, 221); + width: 135px; + height: 135px; +} + +.list .square { + margin-right: 1rem; + width: 70px; + height: 70px; +} + +.square > div { + width: 100%; + height: 100%; + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.square > i { + color: #333844; +} +.grid .square > i { + padding: 20px; + font-size: 80px; +} +.list .square > i { + padding: 10px; + font-size: 50px; +} + +.grid .square.selected { + border: 5px solid #75C7C3; +} +.list .square.selected { + border: 4px solid #75C7C3; +} +.square.selected { + padding: 1px; +} + +.grid .item_name { + border: 1px solid rgb(221, 221, 221); + border-top: none; + margin-top: -1px; + padding: 10px; + text-align: center; + max-width: calc(135px); +} + +.list .item_name { + font-size: 1.25rem; + padding: 5px 0 5px; +} + +time { + font-size: .9rem; +} + +.grid time { + display: none; +} + +.info > * { + max-width: calc(100vw - 70px - 60px); +} + +/* Mime icon generator overwrite */ + +.grid .mime-icon:before { + top: calc(45% - 1rem); + font-size: 2rem; +} + +.list .mime-icon .ico:before { + top: calc(45% - .5rem); + font-size: 1rem; +} + +.mime-icon .ico { + height: 100%; + display: inline-flex; + align-items: center; + width: 100%; + justify-content: center; +} + +/* Floating action buttons */ + +.fab-wrapper { + margin: 1.5rem; + right: 0; + bottom: 0; + position: fixed; +} + +.fab-wrapper .fab-button { + position: relative; + background-color: #333844; + width: 3.5rem; + height: 3.5rem; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.14), 0 4px 8px rgba(0, 0, 0, 0.28); +} + +.fab-wrapper .fab-toggle { + z-index: 1; +} + +.fab-wrapper .fab-toggle i { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); + -webkit-transition: -webkit-transform 350ms; + transition: transform 350ms; +} + +.fab-wrapper.fab-expand .fab-toggle i { + -webkit-transform: scale(1) rotate(-225deg); + transform: scale(1) rotate(-225deg); + -webkit-transition: -webkit-transform 350ms; + transition: transform 350ms; +} + +.fab-wrapper .fab-action { + z-index: -1; + margin-bottom: -3.5rem; + opacity: 0; + transition: margin-bottom 350ms, opacity 350ms; +} + +.fab-wrapper.fab-expand .fab-action { + margin-bottom: 1rem; + opacity: 1; + transition: margin-bottom 350ms, opacity 350ms; +} + +.fab-wrapper .fab-action:before { + position: absolute; + right: 4rem; + padding: .15rem .75rem; + border-radius: .25rem; + background-color: rgba(0, 0, 0, .4); + color: rgba(255, 255, 255, .8); + text-align: right; + font-size: .9rem; + white-space: nowrap; + content: attr(data-label); +} diff --git a/public/vendor/laravel-filemanager/css/mime-icons.min.css b/public/vendor/laravel-filemanager/css/mime-icons.min.css new file mode 100644 index 0000000..efb5125 --- /dev/null +++ b/public/vendor/laravel-filemanager/css/mime-icons.min.css @@ -0,0 +1,9 @@ +/*! + * mime-icon-generator -https://github.com/erikyo/mime-icon-generator + * Version - 1.0.0 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2019 Codekraft Studio - info@codekraft.it + */ + +@charset "UTF-8";@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v29/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format("woff2")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}.mime-icon .ico.ico-magenta:after{background-image:url('data:image/svg+xml;utf8, ')}.mime-icon .ico.ico-yellow:after{background-image:url('data:image/svg+xml;utf8, ')}.mime-icon .ico.ico-blue:after{background-image:url('data:image/svg+xml;utf8, ')}.mime-icon.abc .ico:after{background-image:url('data:image/svg+xml;utf8, ABC')}.mime-icon.def .ico:after{background-image:url('data:image/svg+xml;utf8, DEF')}.mime-icon.ghi .ico:after{background-image:url('data:image/svg+xml;utf8, GHI')}.mime-icon.light.ico-mp3 .ico:after{background-image:url('data:image/svg+xml;utf8, MP3')}.mime-icon.light.ico-pcm .ico:after{background-image:url('data:image/svg+xml;utf8, PCM')}.mime-icon.light.ico-ogg .ico:after{background-image:url('data:image/svg+xml;utf8, OGG')}.mime-icon.light.ico-wav .ico:after{background-image:url('data:image/svg+xml;utf8, WAV')}.mime-icon.light.ico-aac .ico:after{background-image:url('data:image/svg+xml;utf8, AAC')}.mime-icon.light.ico-aiff .ico:after{background-image:url('data:image/svg+xml;utf8, AIFF')}.mime-icon.light.ico-wma .ico:after{background-image:url('data:image/svg+xml;utf8, WMA')}.mime-icon.light.ico-html .ico:after{background-image:url('data:image/svg+xml;utf8, HTML')}.mime-icon.light.ico-js .ico:after{background-image:url('data:image/svg+xml;utf8, JS')}.mime-icon.dark.ico-csv .ico:after{background-image:url('data:image/svg+xml;utf8, CSV')}.mime-icon.dark.ico-txt .ico:after{background-image:url('data:image/svg+xml;utf8, TXT')}.mime-icon.dark.ico-rtf .ico:after{background-image:url('data:image/svg+xml;utf8, RTF')}.mime-icon.dark.ico-doc .ico:after{background-image:url('data:image/svg+xml;utf8, DOC')}.mime-icon.dark.ico-docx .ico:after{background-image:url('data:image/svg+xml;utf8, DOCX')}.mime-icon.dark.ico-flac .ico:after{background-image:url('data:image/svg+xml;utf8, FLAC')}.mime-icon.dark.ico-js .ico:after{background-image:url('data:image/svg+xml;utf8, JS')}.mime-icon.dark.ico-php .ico:after{background-image:url('data:image/svg+xml;utf8, PHP')}.mime-icon.double.ico-avi .ico:before{color:#f44336!important}.mime-icon.double.ico-avi .ico:after{background-image:url('data:image/svg+xml;utf8, AVI')}.mime-icon.double.ico-mp4 .ico:before{color:#8bc34a!important}.mime-icon.double.ico-mp4 .ico:after{background-image:url('data:image/svg+xml;utf8, MP4')}.mime-icon.double.ico-mkv .ico:before{color:#bdcc2b!important}.mime-icon.double.ico-mkv .ico:after{background-image:url('data:image/svg+xml;utf8, MKV')}.mime-icon.double.ico-mpeg .ico:before{color:#ffc107!important}.mime-icon.double.ico-mpeg .ico:after{background-image:url('data:image/svg+xml;utf8, MPEG')}.mime-icon.double.ico-mov .ico:before{color:#05ad9d!important}.mime-icon.double.ico-mov .ico:after{background-image:url('data:image/svg+xml;utf8, MOV')}.mime-icon.double.ico-flv .ico:before{color:#e91e63!important}.mime-icon.double.ico-flv .ico:after{background-image:url('data:image/svg+xml;utf8, FLV')}.mime-icon.double.ico-swf .ico:before{color:#9c27b0!important}.mime-icon.double.ico-swf .ico:after{background-image:url('data:image/svg+xml;utf8, SWF')}.mime-icon.double.ico-wmv .ico:before{color:#8bc34a!important}.mime-icon.double.ico-wmv .ico:after{background-image:url('data:image/svg+xml;utf8, WMV')}.mime-icon{margin:0;display:inline-block;vertical-align:top;position:relative}.mime-icon .ico{position:relative;text-align:center}.mime-icon .ico:before{position:absolute;top:40.74074px;display:block;width:100%;overflow:visible;z-index:9;content:"";font-family:Material Icons;font-size:26.19048px;opacity:.8}.mime-icon .ico:after{width:110px;height:110px;display:inline-block;content:"";background-size:80%;background-position:50%;background-repeat:no-repeat;background-image:url('data:image/svg+xml;utf8, ')}.mime-icon.light .ico:before{color:#666!important}.mime-icon.light .ico:after{-webkit-filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.mime-icon.dark .ico:before{color:#f1f2f2!important}.mime-icon.dark .ico:after{-webkit-filter:inherit;filter:inherit}.mime-icon.double .ico:after{-webkit-filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.mime-icon i.material-icons{position:absolute;top:33%;left:0;right:0;font-size:28px;color:#f1f2f2;opacity:.8}.mime-icon.ico-3dm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-3dm .ico:after{background-image:url('data:image/svg+xml;utf8,3DM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-3dmf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-3dmf .ico:after{background-image:url('data:image/svg+xml;utf8,3DMF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-7z .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-7z .ico:after{background-image:url('data:image/svg+xml;utf8,7Z');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-a .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-a .ico:after{background-image:url('data:image/svg+xml;utf8,A');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aab .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aab .ico:after{background-image:url('data:image/svg+xml;utf8,AAB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aac .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aac .ico:after{background-image:url('data:image/svg+xml;utf8,AAC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aam .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aam .ico:after{background-image:url('data:image/svg+xml;utf8,AAM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aas .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aas .ico:after{background-image:url('data:image/svg+xml;utf8,AAS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-abc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-abc .ico:after{background-image:url('data:image/svg+xml;utf8,ABC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-acgi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-acgi .ico:after{background-image:url('data:image/svg+xml;utf8,ACGI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-afl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-afl .ico:after{background-image:url('data:image/svg+xml;utf8,AFL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ai .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ai .ico:after{background-image:url('data:image/svg+xml;utf8,AI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aif .ico:after{background-image:url('data:image/svg+xml;utf8,AIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aifc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aifc .ico:after{background-image:url('data:image/svg+xml;utf8,AIFC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aiff .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aiff .ico:after{background-image:url('data:image/svg+xml;utf8,AIFF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aim .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aim .ico:after{background-image:url('data:image/svg+xml;utf8,AIM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aip .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aip .ico:after{background-image:url('data:image/svg+xml;utf8,AIP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ani .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ani .ico:after{background-image:url('data:image/svg+xml;utf8,ANI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aos .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aos .ico:after{background-image:url('data:image/svg+xml;utf8,AOS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-aps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-aps .ico:after{background-image:url('data:image/svg+xml;utf8,APS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-arc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-arc .ico:after{background-image:url('data:image/svg+xml;utf8,ARC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-arj .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-arj .ico:after{background-image:url('data:image/svg+xml;utf8,ARJ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-art .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-art .ico:after{background-image:url('data:image/svg+xml;utf8,ART');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-asf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-asf .ico:after{background-image:url('data:image/svg+xml;utf8,ASF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-asm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-asm .ico:after{background-image:url('data:image/svg+xml;utf8,ASM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-asp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-asp .ico:after{background-image:url('data:image/svg+xml;utf8,ASP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-asx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-asx .ico:after{background-image:url('data:image/svg+xml;utf8,ASX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-au .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-au .ico:after{background-image:url('data:image/svg+xml;utf8,AU');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-avi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-avi .ico:after{background-image:url('data:image/svg+xml;utf8,AVI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-avs .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-avs .ico:after{background-image:url('data:image/svg+xml;utf8,AVS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bcpio .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bcpio .ico:after{background-image:url('data:image/svg+xml;utf8,BCPIO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bin .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bin .ico:after{background-image:url('data:image/svg+xml;utf8,BIN');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bm .ico:after{background-image:url('data:image/svg+xml;utf8,BM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bmp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bmp .ico:after{background-image:url('data:image/svg+xml;utf8,BMP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-boo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-boo .ico:after{background-image:url('data:image/svg+xml;utf8,BOO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-book .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-book .ico:after{background-image:url('data:image/svg+xml;utf8,BOOK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-boz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-boz .ico:after{background-image:url('data:image/svg+xml;utf8,BOZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bsh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bsh .ico:after{background-image:url('data:image/svg+xml;utf8,BSH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bz .ico:after{background-image:url('data:image/svg+xml;utf8,BZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-bz2 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-bz2 .ico:after{background-image:url('data:image/svg+xml;utf8,BZ2');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-c .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-c .ico:after{background-image:url('data:image/svg+xml;utf8,C');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cat .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cat .ico:after{background-image:url('data:image/svg+xml;utf8,CAT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cc .ico:after{background-image:url('data:image/svg+xml;utf8,CC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ccad .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ccad .ico:after{background-image:url('data:image/svg+xml;utf8,CCAD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cco .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cco .ico:after{background-image:url('data:image/svg+xml;utf8,CCO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cdf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cdf .ico:after{background-image:url('data:image/svg+xml;utf8,CDF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cer .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cer .ico:after{background-image:url('data:image/svg+xml;utf8,CER');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cha .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cha .ico:after{background-image:url('data:image/svg+xml;utf8,CHA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-chat .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-chat .ico:after{background-image:url('data:image/svg+xml;utf8,CHAT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-class .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-class .ico:after{background-image:url('data:image/svg+xml;utf8,CLASS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-com .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-com .ico:after{background-image:url('data:image/svg+xml;utf8,COM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-conf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-conf .ico:after{background-image:url('data:image/svg+xml;utf8,CONF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cpio .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cpio .ico:after{background-image:url('data:image/svg+xml;utf8,CPIO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cpp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cpp .ico:after{background-image:url('data:image/svg+xml;utf8,CPP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cpt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cpt .ico:after{background-image:url('data:image/svg+xml;utf8,CPT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-crl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-crl .ico:after{background-image:url('data:image/svg+xml;utf8,CRL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-crt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-crt .ico:after{background-image:url('data:image/svg+xml;utf8,CRT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-csh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-csh .ico:after{background-image:url('data:image/svg+xml;utf8,CSH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-css .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-css .ico:after{background-image:url('data:image/svg+xml;utf8,CSS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-csv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-csv .ico:after{background-image:url('data:image/svg+xml;utf8,CSV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-cxx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-cxx .ico:after{background-image:url('data:image/svg+xml;utf8,CXX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dcr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dcr .ico:after{background-image:url('data:image/svg+xml;utf8,DCR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-deepv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-deepv .ico:after{background-image:url('data:image/svg+xml;utf8,DEEPV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-def .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-def .ico:after{background-image:url('data:image/svg+xml;utf8,DEF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-der .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-der .ico:after{background-image:url('data:image/svg+xml;utf8,DER');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dif .ico:after{background-image:url('data:image/svg+xml;utf8,DIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dir .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dir .ico:after{background-image:url('data:image/svg+xml;utf8,DIR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dl .ico:after{background-image:url('data:image/svg+xml;utf8,DL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-doc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-doc .ico:after{background-image:url('data:image/svg+xml;utf8,DOC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-docx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-docx .ico:after{background-image:url('data:image/svg+xml;utf8,DOCX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dot .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dot .ico:after{background-image:url('data:image/svg+xml;utf8,DOT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dp .ico:after{background-image:url('data:image/svg+xml;utf8,DP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-drw .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-drw .ico:after{background-image:url('data:image/svg+xml;utf8,DRW');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dump .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dump .ico:after{background-image:url('data:image/svg+xml;utf8,DUMP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dv .ico:after{background-image:url('data:image/svg+xml;utf8,DV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dvi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dvi .ico:after{background-image:url('data:image/svg+xml;utf8,DVI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dwf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dwf .ico:after{background-image:url('data:image/svg+xml;utf8,DWF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dwg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dwg .ico:after{background-image:url('data:image/svg+xml;utf8,DWG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dxf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dxf .ico:after{background-image:url('data:image/svg+xml;utf8,DXF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-dxr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-dxr .ico:after{background-image:url('data:image/svg+xml;utf8,DXR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-el .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-el .ico:after{background-image:url('data:image/svg+xml;utf8,EL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-elc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-elc .ico:after{background-image:url('data:image/svg+xml;utf8,ELC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-env .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-env .ico:after{background-image:url('data:image/svg+xml;utf8,ENV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-eps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-eps .ico:after{background-image:url('data:image/svg+xml;utf8,EPS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-es .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-es .ico:after{background-image:url('data:image/svg+xml;utf8,ES');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-etx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-etx .ico:after{background-image:url('data:image/svg+xml;utf8,ETX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-evy .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-evy .ico:after{background-image:url('data:image/svg+xml;utf8,EVY');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-exe .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-exe .ico:after{background-image:url('data:image/svg+xml;utf8,EXE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-f .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-f .ico:after{background-image:url('data:image/svg+xml;utf8,F');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-f77 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-f77 .ico:after{background-image:url('data:image/svg+xml;utf8,F77');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-f90 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-f90 .ico:after{background-image:url('data:image/svg+xml;utf8,F90');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-fdf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-fdf .ico:after{background-image:url('data:image/svg+xml;utf8,FDF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-fif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-fif .ico:after{background-image:url('data:image/svg+xml;utf8,FIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-flac .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-flac .ico:after{background-image:url('data:image/svg+xml;utf8,FLAC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-fli .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-fli .ico:after{background-image:url('data:image/svg+xml;utf8,FLI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-flo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-flo .ico:after{background-image:url('data:image/svg+xml;utf8,FLO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-flv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-flv .ico:after{background-image:url('data:image/svg+xml;utf8,FLV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-flx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-flx .ico:after{background-image:url('data:image/svg+xml;utf8,FLX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-fmf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-fmf .ico:after{background-image:url('data:image/svg+xml;utf8,FMF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-for .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-for .ico:after{background-image:url('data:image/svg+xml;utf8,FOR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-fpx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-fpx .ico:after{background-image:url('data:image/svg+xml;utf8,FPX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-frl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-frl .ico:after{background-image:url('data:image/svg+xml;utf8,FRL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-funk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-funk .ico:after{background-image:url('data:image/svg+xml;utf8,FUNK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-g .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-g .ico:after{background-image:url('data:image/svg+xml;utf8,G');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-g3 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-g3 .ico:after{background-image:url('data:image/svg+xml;utf8,G3');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gif .ico:after{background-image:url('data:image/svg+xml;utf8,GIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gl .ico:after{background-image:url('data:image/svg+xml;utf8,GL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gsd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gsd .ico:after{background-image:url('data:image/svg+xml;utf8,GSD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gsm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gsm .ico:after{background-image:url('data:image/svg+xml;utf8,GSM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gsp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gsp .ico:after{background-image:url('data:image/svg+xml;utf8,GSP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gss .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gss .ico:after{background-image:url('data:image/svg+xml;utf8,GSS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gtar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gtar .ico:after{background-image:url('data:image/svg+xml;utf8,GTAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gz .ico:after{background-image:url('data:image/svg+xml;utf8,GZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-gzip .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-gzip .ico:after{background-image:url('data:image/svg+xml;utf8,GZIP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-h .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-h .ico:after{background-image:url('data:image/svg+xml;utf8,H');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hdf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hdf .ico:after{background-image:url('data:image/svg+xml;utf8,HDF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-help .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-help .ico:after{background-image:url('data:image/svg+xml;utf8,HELP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hgl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hgl .ico:after{background-image:url('data:image/svg+xml;utf8,HGL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hh .ico:after{background-image:url('data:image/svg+xml;utf8,HH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hlb .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hlb .ico:after{background-image:url('data:image/svg+xml;utf8,HLB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hlp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hlp .ico:after{background-image:url('data:image/svg+xml;utf8,HLP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hpg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hpg .ico:after{background-image:url('data:image/svg+xml;utf8,HPG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hpgl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hpgl .ico:after{background-image:url('data:image/svg+xml;utf8,HPGL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hqx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hqx .ico:after{background-image:url('data:image/svg+xml;utf8,HQX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-hta .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-hta .ico:after{background-image:url('data:image/svg+xml;utf8,HTA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-htc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-htc .ico:after{background-image:url('data:image/svg+xml;utf8,HTC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-htm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-htm .ico:after{background-image:url('data:image/svg+xml;utf8,HTM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-html .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-html .ico:after{background-image:url('data:image/svg+xml;utf8,HTML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-htmls .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-htmls .ico:after{background-image:url('data:image/svg+xml;utf8,HTMLS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-htt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-htt .ico:after{background-image:url('data:image/svg+xml;utf8,HTT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-htx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-htx .ico:after{background-image:url('data:image/svg+xml;utf8,HTX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ice .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ice .ico:after{background-image:url('data:image/svg+xml;utf8,ICE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ico .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ico .ico:after{background-image:url('data:image/svg+xml;utf8,ICO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-idc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-idc .ico:after{background-image:url('data:image/svg+xml;utf8,IDC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ief .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ief .ico:after{background-image:url('data:image/svg+xml;utf8,IEF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-iefs .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-iefs .ico:after{background-image:url('data:image/svg+xml;utf8,IEFS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-iges .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-iges .ico:after{background-image:url('data:image/svg+xml;utf8,IGES');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-igs .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-igs .ico:after{background-image:url('data:image/svg+xml;utf8,IGS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ima .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ima .ico:after{background-image:url('data:image/svg+xml;utf8,IMA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-imap .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-imap .ico:after{background-image:url('data:image/svg+xml;utf8,IMAP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-inf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-inf .ico:after{background-image:url('data:image/svg+xml;utf8,INF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ins .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ins .ico:after{background-image:url('data:image/svg+xml;utf8,INS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ip .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ip .ico:after{background-image:url('data:image/svg+xml;utf8,IP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-isu .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-isu .ico:after{background-image:url('data:image/svg+xml;utf8,ISU');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-it .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-it .ico:after{background-image:url('data:image/svg+xml;utf8,IT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-iv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-iv .ico:after{background-image:url('data:image/svg+xml;utf8,IV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ivr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ivr .ico:after{background-image:url('data:image/svg+xml;utf8,IVR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ivy .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ivy .ico:after{background-image:url('data:image/svg+xml;utf8,IVY');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jam .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jam .ico:after{background-image:url('data:image/svg+xml;utf8,JAM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jav .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jav .ico:after{background-image:url('data:image/svg+xml;utf8,JAV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-java .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-java .ico:after{background-image:url('data:image/svg+xml;utf8,JAVA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jcm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jcm .ico:after{background-image:url('data:image/svg+xml;utf8,JCM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jfif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jfif .ico:after{background-image:url('data:image/svg+xml;utf8,JFIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jfif-tbnl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jfif-tbnl .ico:after{background-image:url('data:image/svg+xml;utf8,JFIF-');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jpe .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jpe .ico:after{background-image:url('data:image/svg+xml;utf8,JPE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jpeg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jpeg .ico:after{background-image:url('data:image/svg+xml;utf8,JPEG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jpg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jpg .ico:after{background-image:url('data:image/svg+xml;utf8,JPG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jps .ico:after{background-image:url('data:image/svg+xml;utf8,JPS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-js .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-js .ico:after{background-image:url('data:image/svg+xml;utf8,JS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-jut .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-jut .ico:after{background-image:url('data:image/svg+xml;utf8,JUT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-kar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-kar .ico:after{background-image:url('data:image/svg+xml;utf8,KAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ksh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ksh .ico:after{background-image:url('data:image/svg+xml;utf8,KSH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-la .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-la .ico:after{background-image:url('data:image/svg+xml;utf8,LA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lam .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lam .ico:after{background-image:url('data:image/svg+xml;utf8,LAM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-latex .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-latex .ico:after{background-image:url('data:image/svg+xml;utf8,LATEX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lha .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lha .ico:after{background-image:url('data:image/svg+xml;utf8,LHA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lhx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lhx .ico:after{background-image:url('data:image/svg+xml;utf8,LHX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-list .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-list .ico:after{background-image:url('data:image/svg+xml;utf8,LIST');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lma .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lma .ico:after{background-image:url('data:image/svg+xml;utf8,LMA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-log .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-log .ico:after{background-image:url('data:image/svg+xml;utf8,LOG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lsp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lsp .ico:after{background-image:url('data:image/svg+xml;utf8,LSP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lst .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lst .ico:after{background-image:url('data:image/svg+xml;utf8,LST');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lsx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lsx .ico:after{background-image:url('data:image/svg+xml;utf8,LSX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ltx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ltx .ico:after{background-image:url('data:image/svg+xml;utf8,LTX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lzh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lzh .ico:after{background-image:url('data:image/svg+xml;utf8,LZH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-lzx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-lzx .ico:after{background-image:url('data:image/svg+xml;utf8,LZX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-m .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-m .ico:after{background-image:url('data:image/svg+xml;utf8,M');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-m1v .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-m1v .ico:after{background-image:url('data:image/svg+xml;utf8,M1V');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-m2a .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-m2a .ico:after{background-image:url('data:image/svg+xml;utf8,M2A');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-m2v .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-m2v .ico:after{background-image:url('data:image/svg+xml;utf8,M2V');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-m3u .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-m3u .ico:after{background-image:url('data:image/svg+xml;utf8,M3U');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-man .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-man .ico:after{background-image:url('data:image/svg+xml;utf8,MAN');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-map .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-map .ico:after{background-image:url('data:image/svg+xml;utf8,MAP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mar .ico:after{background-image:url('data:image/svg+xml;utf8,MAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mbd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mbd .ico:after{background-image:url('data:image/svg+xml;utf8,MBD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mcd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mcd .ico:after{background-image:url('data:image/svg+xml;utf8,MCD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mcf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mcf .ico:after{background-image:url('data:image/svg+xml;utf8,MCF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mcp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mcp .ico:after{background-image:url('data:image/svg+xml;utf8,MCP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-me .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-me .ico:after{background-image:url('data:image/svg+xml;utf8,ME');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mht .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mht .ico:after{background-image:url('data:image/svg+xml;utf8,MHT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mhtml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mhtml .ico:after{background-image:url('data:image/svg+xml;utf8,MHTML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mid .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mid .ico:after{background-image:url('data:image/svg+xml;utf8,MID');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-midi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-midi .ico:after{background-image:url('data:image/svg+xml;utf8,MIDI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mif .ico:after{background-image:url('data:image/svg+xml;utf8,MIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mime .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mime .ico:after{background-image:url('data:image/svg+xml;utf8,MIME');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mjf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mjf .ico:after{background-image:url('data:image/svg+xml;utf8,MJF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mjpg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mjpg .ico:after{background-image:url('data:image/svg+xml;utf8,MJPG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mkv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mkv .ico:after{background-image:url('data:image/svg+xml;utf8,MKV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mm .ico:after{background-image:url('data:image/svg+xml;utf8,MM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mme .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mme .ico:after{background-image:url('data:image/svg+xml;utf8,MME');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mod .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mod .ico:after{background-image:url('data:image/svg+xml;utf8,MOD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-moov .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-moov .ico:after{background-image:url('data:image/svg+xml;utf8,MOOV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mov .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mov .ico:after{background-image:url('data:image/svg+xml;utf8,MOV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-movie .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-movie .ico:after{background-image:url('data:image/svg+xml;utf8,MOVIE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mp2 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mp2 .ico:after{background-image:url('data:image/svg+xml;utf8,MP2');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mp3 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mp3 .ico:after{background-image:url('data:image/svg+xml;utf8,MP3');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mp4 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mp4 .ico:after{background-image:url('data:image/svg+xml;utf8,MP4');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpa .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpa .ico:after{background-image:url('data:image/svg+xml;utf8,MPA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpc .ico:after{background-image:url('data:image/svg+xml;utf8,MPC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpe .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpe .ico:after{background-image:url('data:image/svg+xml;utf8,MPE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpeg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpeg .ico:after{background-image:url('data:image/svg+xml;utf8,MPEG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpg .ico:after{background-image:url('data:image/svg+xml;utf8,MPG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpga .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpga .ico:after{background-image:url('data:image/svg+xml;utf8,MPGA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpp .ico:after{background-image:url('data:image/svg+xml;utf8,MPP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpt .ico:after{background-image:url('data:image/svg+xml;utf8,MPT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpv .ico:after{background-image:url('data:image/svg+xml;utf8,MPV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mpx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mpx .ico:after{background-image:url('data:image/svg+xml;utf8,MPX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mrc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mrc .ico:after{background-image:url('data:image/svg+xml;utf8,MRC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ms .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ms .ico:after{background-image:url('data:image/svg+xml;utf8,MS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mv .ico:after{background-image:url('data:image/svg+xml;utf8,MV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-my .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-my .ico:after{background-image:url('data:image/svg+xml;utf8,MY');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-mzz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-mzz .ico:after{background-image:url('data:image/svg+xml;utf8,MZZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nap .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nap .ico:after{background-image:url('data:image/svg+xml;utf8,NAP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-naplps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-naplps .ico:after{background-image:url('data:image/svg+xml;utf8,NAPLP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nc .ico:after{background-image:url('data:image/svg+xml;utf8,NC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ncm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ncm .ico:after{background-image:url('data:image/svg+xml;utf8,NCM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nif .ico:after{background-image:url('data:image/svg+xml;utf8,NIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-niff .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-niff .ico:after{background-image:url('data:image/svg+xml;utf8,NIFF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nix .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nix .ico:after{background-image:url('data:image/svg+xml;utf8,NIX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nsc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nsc .ico:after{background-image:url('data:image/svg+xml;utf8,NSC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-nvd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-nvd .ico:after{background-image:url('data:image/svg+xml;utf8,NVD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-o .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-o .ico:after{background-image:url('data:image/svg+xml;utf8,O');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-oda .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-oda .ico:after{background-image:url('data:image/svg+xml;utf8,ODA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ogg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ogg .ico:after{background-image:url('data:image/svg+xml;utf8,OGG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-omc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-omc .ico:after{background-image:url('data:image/svg+xml;utf8,OMC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-omcd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-omcd .ico:after{background-image:url('data:image/svg+xml;utf8,OMCD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-omcr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-omcr .ico:after{background-image:url('data:image/svg+xml;utf8,OMCR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p .ico:after{background-image:url('data:image/svg+xml;utf8,P');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p10 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p10 .ico:after{background-image:url('data:image/svg+xml;utf8,P10');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p12 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p12 .ico:after{background-image:url('data:image/svg+xml;utf8,P12');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p7a .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p7a .ico:after{background-image:url('data:image/svg+xml;utf8,P7A');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p7c .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p7c .ico:after{background-image:url('data:image/svg+xml;utf8,P7C');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p7m .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p7m .ico:after{background-image:url('data:image/svg+xml;utf8,P7M');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p7r .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p7r .ico:after{background-image:url('data:image/svg+xml;utf8,P7R');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-p7s .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-p7s .ico:after{background-image:url('data:image/svg+xml;utf8,P7S');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-part .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-part .ico:after{background-image:url('data:image/svg+xml;utf8,PART');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pas .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pas .ico:after{background-image:url('data:image/svg+xml;utf8,PAS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pbm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pbm .ico:after{background-image:url('data:image/svg+xml;utf8,PBM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pcl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pcl .ico:after{background-image:url('data:image/svg+xml;utf8,PCL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pcm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pcm .ico:after{background-image:url('data:image/svg+xml;utf8,PCM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pct .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pct .ico:after{background-image:url('data:image/svg+xml;utf8,PCT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pcx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pcx .ico:after{background-image:url('data:image/svg+xml;utf8,PCX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pdb .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pdb .ico:after{background-image:url('data:image/svg+xml;utf8,PDB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pdf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pdf .ico:after{background-image:url('data:image/svg+xml;utf8,PDF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pfunk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pfunk .ico:after{background-image:url('data:image/svg+xml;utf8,PFUNK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pgm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pgm .ico:after{background-image:url('data:image/svg+xml;utf8,PGM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-php .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-php .ico:after{background-image:url('data:image/svg+xml;utf8,PHP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pic .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pic .ico:after{background-image:url('data:image/svg+xml;utf8,PIC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pict .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pict .ico:after{background-image:url('data:image/svg+xml;utf8,PICT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pkg .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pkg .ico:after{background-image:url('data:image/svg+xml;utf8,PKG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pko .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pko .ico:after{background-image:url('data:image/svg+xml;utf8,PKO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pl .ico:after{background-image:url('data:image/svg+xml;utf8,PL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-plx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-plx .ico:after{background-image:url('data:image/svg+xml;utf8,PLX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pm .ico:after{background-image:url('data:image/svg+xml;utf8,PM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pm4 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pm4 .ico:after{background-image:url('data:image/svg+xml;utf8,PM4');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pm5 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pm5 .ico:after{background-image:url('data:image/svg+xml;utf8,PM5');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-png .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-png .ico:after{background-image:url('data:image/svg+xml;utf8,PNG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pnm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pnm .ico:after{background-image:url('data:image/svg+xml;utf8,PNM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pot .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pot .ico:after{background-image:url('data:image/svg+xml;utf8,POT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pov .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pov .ico:after{background-image:url('data:image/svg+xml;utf8,POV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ppa .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ppa .ico:after{background-image:url('data:image/svg+xml;utf8,PPA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ppm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ppm .ico:after{background-image:url('data:image/svg+xml;utf8,PPM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pps .ico:after{background-image:url('data:image/svg+xml;utf8,PPS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ppt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ppt .ico:after{background-image:url('data:image/svg+xml;utf8,PPT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ppz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ppz .ico:after{background-image:url('data:image/svg+xml;utf8,PPZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pre .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pre .ico:after{background-image:url('data:image/svg+xml;utf8,PRE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-prt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-prt .ico:after{background-image:url('data:image/svg+xml;utf8,PRT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ps .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ps .ico:after{background-image:url('data:image/svg+xml;utf8,PS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-psd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-psd .ico:after{background-image:url('data:image/svg+xml;utf8,PSD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pvu .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pvu .ico:after{background-image:url('data:image/svg+xml;utf8,PVU');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pwz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pwz .ico:after{background-image:url('data:image/svg+xml;utf8,PWZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-py .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-py .ico:after{background-image:url('data:image/svg+xml;utf8,PY');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-pyc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-pyc .ico:after{background-image:url('data:image/svg+xml;utf8,PYC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qcp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qcp .ico:after{background-image:url('data:image/svg+xml;utf8,QCP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qd3 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qd3 .ico:after{background-image:url('data:image/svg+xml;utf8,QD3');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qd3d .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qd3d .ico:after{background-image:url('data:image/svg+xml;utf8,QD3D');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qif .ico:after{background-image:url('data:image/svg+xml;utf8,QIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qt .ico:after{background-image:url('data:image/svg+xml;utf8,QT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qtc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qtc .ico:after{background-image:url('data:image/svg+xml;utf8,QTC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qti .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qti .ico:after{background-image:url('data:image/svg+xml;utf8,QTI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-qtif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-qtif .ico:after{background-image:url('data:image/svg+xml;utf8,QTIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ram .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ram .ico:after{background-image:url('data:image/svg+xml;utf8,RAM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rar .ico:after{background-image:url('data:image/svg+xml;utf8,RAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ras .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ras .ico:after{background-image:url('data:image/svg+xml;utf8,RAS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rast .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rast .ico:after{background-image:url('data:image/svg+xml;utf8,RAST');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rexx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rexx .ico:after{background-image:url('data:image/svg+xml;utf8,REXX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rf .ico:after{background-image:url('data:image/svg+xml;utf8,RF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rgb .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rgb .ico:after{background-image:url('data:image/svg+xml;utf8,RGB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rm .ico:after{background-image:url('data:image/svg+xml;utf8,RM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rmi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rmi .ico:after{background-image:url('data:image/svg+xml;utf8,RMI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rmm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rmm .ico:after{background-image:url('data:image/svg+xml;utf8,RMM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rmp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rmp .ico:after{background-image:url('data:image/svg+xml;utf8,RMP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rng .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rng .ico:after{background-image:url('data:image/svg+xml;utf8,RNG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rnx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rnx .ico:after{background-image:url('data:image/svg+xml;utf8,RNX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-roff .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-roff .ico:after{background-image:url('data:image/svg+xml;utf8,ROFF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rp .ico:after{background-image:url('data:image/svg+xml;utf8,RP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rpm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rpm .ico:after{background-image:url('data:image/svg+xml;utf8,RPM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rt .ico:after{background-image:url('data:image/svg+xml;utf8,RT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rtf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rtf .ico:after{background-image:url('data:image/svg+xml;utf8,RTF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rtx .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rtx .ico:after{background-image:url('data:image/svg+xml;utf8,RTX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-rv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-rv .ico:after{background-image:url('data:image/svg+xml;utf8,RV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-s .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-s .ico:after{background-image:url('data:image/svg+xml;utf8,S');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-s3m .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-s3m .ico:after{background-image:url('data:image/svg+xml;utf8,S3M');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-saveme .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-saveme .ico:after{background-image:url('data:image/svg+xml;utf8,SAVEM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sbk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sbk .ico:after{background-image:url('data:image/svg+xml;utf8,SBK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-scm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-scm .ico:after{background-image:url('data:image/svg+xml;utf8,SCM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sdml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sdml .ico:after{background-image:url('data:image/svg+xml;utf8,SDML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sdp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sdp .ico:after{background-image:url('data:image/svg+xml;utf8,SDP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sdr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sdr .ico:after{background-image:url('data:image/svg+xml;utf8,SDR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sea .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sea .ico:after{background-image:url('data:image/svg+xml;utf8,SEA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-set .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-set .ico:after{background-image:url('data:image/svg+xml;utf8,SET');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sgm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sgm .ico:after{background-image:url('data:image/svg+xml;utf8,SGM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sgml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sgml .ico:after{background-image:url('data:image/svg+xml;utf8,SGML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sh .ico:after{background-image:url('data:image/svg+xml;utf8,SH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-shar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-shar .ico:after{background-image:url('data:image/svg+xml;utf8,SHAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-shtml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-shtml .ico:after{background-image:url('data:image/svg+xml;utf8,SHTML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sid .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sid .ico:after{background-image:url('data:image/svg+xml;utf8,SID');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sit .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sit .ico:after{background-image:url('data:image/svg+xml;utf8,SIT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-skd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-skd .ico:after{background-image:url('data:image/svg+xml;utf8,SKD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-skm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-skm .ico:after{background-image:url('data:image/svg+xml;utf8,SKM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-skp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-skp .ico:after{background-image:url('data:image/svg+xml;utf8,SKP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-skt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-skt .ico:after{background-image:url('data:image/svg+xml;utf8,SKT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sl .ico:after{background-image:url('data:image/svg+xml;utf8,SL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-smi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-smi .ico:after{background-image:url('data:image/svg+xml;utf8,SMI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-smil .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-smil .ico:after{background-image:url('data:image/svg+xml;utf8,SMIL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-snd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-snd .ico:after{background-image:url('data:image/svg+xml;utf8,SND');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sol .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sol .ico:after{background-image:url('data:image/svg+xml;utf8,SOL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-spc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-spc .ico:after{background-image:url('data:image/svg+xml;utf8,SPC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-spl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-spl .ico:after{background-image:url('data:image/svg+xml;utf8,SPL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-spr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-spr .ico:after{background-image:url('data:image/svg+xml;utf8,SPR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sprite .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sprite .ico:after{background-image:url('data:image/svg+xml;utf8,SPRIT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-src .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-src .ico:after{background-image:url('data:image/svg+xml;utf8,SRC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ssi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ssi .ico:after{background-image:url('data:image/svg+xml;utf8,SSI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ssm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ssm .ico:after{background-image:url('data:image/svg+xml;utf8,SSM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sst .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sst .ico:after{background-image:url('data:image/svg+xml;utf8,SST');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-step .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-step .ico:after{background-image:url('data:image/svg+xml;utf8,STEP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-stl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-stl .ico:after{background-image:url('data:image/svg+xml;utf8,STL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-stp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-stp .ico:after{background-image:url('data:image/svg+xml;utf8,STP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sv4cpio .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sv4cpio .ico:after{background-image:url('data:image/svg+xml;utf8,SV4CP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-sv4crc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-sv4crc .ico:after{background-image:url('data:image/svg+xml;utf8,SV4CR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-svf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-svf .ico:after{background-image:url('data:image/svg+xml;utf8,SVF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-svr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-svr .ico:after{background-image:url('data:image/svg+xml;utf8,SVR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-swf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-swf .ico:after{background-image:url('data:image/svg+xml;utf8,SWF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-t .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-t .ico:after{background-image:url('data:image/svg+xml;utf8,T');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-talk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-talk .ico:after{background-image:url('data:image/svg+xml;utf8,TALK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tar .ico:after{background-image:url('data:image/svg+xml;utf8,TAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tbk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tbk .ico:after{background-image:url('data:image/svg+xml;utf8,TBK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tcl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tcl .ico:after{background-image:url('data:image/svg+xml;utf8,TCL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tcsh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tcsh .ico:after{background-image:url('data:image/svg+xml;utf8,TCSH');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tex .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tex .ico:after{background-image:url('data:image/svg+xml;utf8,TEX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-texi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-texi .ico:after{background-image:url('data:image/svg+xml;utf8,TEXI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-texinfo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-texinfo .ico:after{background-image:url('data:image/svg+xml;utf8,TEXIN');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tgz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tgz .ico:after{background-image:url('data:image/svg+xml;utf8,TGZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tif .ico:after{background-image:url('data:image/svg+xml;utf8,TIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tiff .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tiff .ico:after{background-image:url('data:image/svg+xml;utf8,TIFF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tr .ico:after{background-image:url('data:image/svg+xml;utf8,TR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tsi .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tsi .ico:after{background-image:url('data:image/svg+xml;utf8,TSI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tsp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tsp .ico:after{background-image:url('data:image/svg+xml;utf8,TSP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-tsv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-tsv .ico:after{background-image:url('data:image/svg+xml;utf8,TSV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-turbot .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-turbot .ico:after{background-image:url('data:image/svg+xml;utf8,TURBO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-txt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-txt .ico:after{background-image:url('data:image/svg+xml;utf8,TXT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uil .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uil .ico:after{background-image:url('data:image/svg+xml;utf8,UIL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uni .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uni .ico:after{background-image:url('data:image/svg+xml;utf8,UNI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-unis .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-unis .ico:after{background-image:url('data:image/svg+xml;utf8,UNIS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-unv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-unv .ico:after{background-image:url('data:image/svg+xml;utf8,UNV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uri .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uri .ico:after{background-image:url('data:image/svg+xml;utf8,URI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uris .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uris .ico:after{background-image:url('data:image/svg+xml;utf8,URIS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-ustar .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-ustar .ico:after{background-image:url('data:image/svg+xml;utf8,USTAR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uu .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uu .ico:after{background-image:url('data:image/svg+xml;utf8,UU');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-uue .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-uue .ico:after{background-image:url('data:image/svg+xml;utf8,UUE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vcd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vcd .ico:after{background-image:url('data:image/svg+xml;utf8,VCD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vcs .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vcs .ico:after{background-image:url('data:image/svg+xml;utf8,VCS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vda .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vda .ico:after{background-image:url('data:image/svg+xml;utf8,VDA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vdo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vdo .ico:after{background-image:url('data:image/svg+xml;utf8,VDO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vew .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vew .ico:after{background-image:url('data:image/svg+xml;utf8,VEW');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-viv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-viv .ico:after{background-image:url('data:image/svg+xml;utf8,VIV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vivo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vivo .ico:after{background-image:url('data:image/svg+xml;utf8,VIVO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vmd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vmd .ico:after{background-image:url('data:image/svg+xml;utf8,VMD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vmf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vmf .ico:after{background-image:url('data:image/svg+xml;utf8,VMF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-voc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-voc .ico:after{background-image:url('data:image/svg+xml;utf8,VOC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vos .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vos .ico:after{background-image:url('data:image/svg+xml;utf8,VOS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vox .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vox .ico:after{background-image:url('data:image/svg+xml;utf8,VOX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vqe .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vqe .ico:after{background-image:url('data:image/svg+xml;utf8,VQE');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vqf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vqf .ico:after{background-image:url('data:image/svg+xml;utf8,VQF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vql .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vql .ico:after{background-image:url('data:image/svg+xml;utf8,VQL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vrml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vrml .ico:after{background-image:url('data:image/svg+xml;utf8,VRML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vrt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vrt .ico:after{background-image:url('data:image/svg+xml;utf8,VRT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vsd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vsd .ico:after{background-image:url('data:image/svg+xml;utf8,VSD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vst .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vst .ico:after{background-image:url('data:image/svg+xml;utf8,VST');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-vsw .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-vsw .ico:after{background-image:url('data:image/svg+xml;utf8,VSW');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wav .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wav .ico:after{background-image:url('data:image/svg+xml;utf8,WAV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wb1 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wb1 .ico:after{background-image:url('data:image/svg+xml;utf8,WB1');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wbmp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wbmp .ico:after{background-image:url('data:image/svg+xml;utf8,WBMP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-web .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-web .ico:after{background-image:url('data:image/svg+xml;utf8,WEB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wiz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wiz .ico:after{background-image:url('data:image/svg+xml;utf8,WIZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wk1 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wk1 .ico:after{background-image:url('data:image/svg+xml;utf8,WK1');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wma .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wma .ico:after{background-image:url('data:image/svg+xml;utf8,WMA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wmf .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wmf .ico:after{background-image:url('data:image/svg+xml;utf8,WMF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wml .ico:after{background-image:url('data:image/svg+xml;utf8,WML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wmlc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wmlc .ico:after{background-image:url('data:image/svg+xml;utf8,WMLC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wmls .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wmls .ico:after{background-image:url('data:image/svg+xml;utf8,WMLS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wmlsc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wmlsc .ico:after{background-image:url('data:image/svg+xml;utf8,WMLSC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wmv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wmv .ico:after{background-image:url('data:image/svg+xml;utf8,WMV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-word .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-word .ico:after{background-image:url('data:image/svg+xml;utf8,WORD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wp .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wp .ico:after{background-image:url('data:image/svg+xml;utf8,WP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wp5 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wp5 .ico:after{background-image:url('data:image/svg+xml;utf8,WP5');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wp6 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wp6 .ico:after{background-image:url('data:image/svg+xml;utf8,WP6');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wpd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wpd .ico:after{background-image:url('data:image/svg+xml;utf8,WPD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wq1 .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wq1 .ico:after{background-image:url('data:image/svg+xml;utf8,WQ1');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wri .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wri .ico:after{background-image:url('data:image/svg+xml;utf8,WRI');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wrl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wrl .ico:after{background-image:url('data:image/svg+xml;utf8,WRL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wrz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wrz .ico:after{background-image:url('data:image/svg+xml;utf8,WRZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wsc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wsc .ico:after{background-image:url('data:image/svg+xml;utf8,WSC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wsrc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wsrc .ico:after{background-image:url('data:image/svg+xml;utf8,WSRC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-wtk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-wtk .ico:after{background-image:url('data:image/svg+xml;utf8,WTK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-x-png .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-x-png .ico:after{background-image:url('data:image/svg+xml;utf8,X-PNG');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xbm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xbm .ico:after{background-image:url('data:image/svg+xml;utf8,XBM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xdr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xdr .ico:after{background-image:url('data:image/svg+xml;utf8,XDR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xgz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xgz .ico:after{background-image:url('data:image/svg+xml;utf8,XGZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xif .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xif .ico:after{background-image:url('data:image/svg+xml;utf8,XIF');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xl .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xl .ico:after{background-image:url('data:image/svg+xml;utf8,XL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xla .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xla .ico:after{background-image:url('data:image/svg+xml;utf8,XLA');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlb .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlb .ico:after{background-image:url('data:image/svg+xml;utf8,XLB');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlc .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlc .ico:after{background-image:url('data:image/svg+xml;utf8,XLC');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xld .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xld .ico:after{background-image:url('data:image/svg+xml;utf8,XLD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlk .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlk .ico:after{background-image:url('data:image/svg+xml;utf8,XLK');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xll .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xll .ico:after{background-image:url('data:image/svg+xml;utf8,XLL');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlm .ico:after{background-image:url('data:image/svg+xml;utf8,XLM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xls .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xls .ico:after{background-image:url('data:image/svg+xml;utf8,XLS');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlt .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlt .ico:after{background-image:url('data:image/svg+xml;utf8,XLT');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlv .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlv .ico:after{background-image:url('data:image/svg+xml;utf8,XLV');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xlw .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xlw .ico:after{background-image:url('data:image/svg+xml;utf8,XLW');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xm .ico:after{background-image:url('data:image/svg+xml;utf8,XM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xml .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xml .ico:after{background-image:url('data:image/svg+xml;utf8,XML');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xmz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xmz .ico:after{background-image:url('data:image/svg+xml;utf8,XMZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xpix .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xpix .ico:after{background-image:url('data:image/svg+xml;utf8,XPIX');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xpm .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xpm .ico:after{background-image:url('data:image/svg+xml;utf8,XPM');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xsr .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xsr .ico:after{background-image:url('data:image/svg+xml;utf8,XSR');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xwd .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xwd .ico:after{background-image:url('data:image/svg+xml;utf8,XWD');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-xyz .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-xyz .ico:after{background-image:url('data:image/svg+xml;utf8,XYZ');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-z .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-z .ico:after{background-image:url('data:image/svg+xml;utf8,Z');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-zip .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-zip .ico:after{background-image:url('data:image/svg+xml;utf8,ZIP');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-zoo .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-zoo .ico:after{background-image:url('data:image/svg+xml;utf8,ZOO');-webkit-filter:inherit;filter:inherit}.mime-icon.ico-zsh .ico:before{content:"";color:#f1f2f2}.mime-icon.ico-zsh .ico:after{background-image:url('data:image/svg+xml;utf8,ZSH');-webkit-filter:inherit;filter:inherit} diff --git a/public/vendor/laravel-filemanager/files/.gitkeep b/public/vendor/laravel-filemanager/files/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/vendor/laravel-filemanager/files/adobe.pdf b/public/vendor/laravel-filemanager/files/adobe.pdf new file mode 100644 index 0000000..c7200cc Binary files /dev/null and b/public/vendor/laravel-filemanager/files/adobe.pdf differ diff --git a/public/vendor/laravel-filemanager/files/word.docx b/public/vendor/laravel-filemanager/files/word.docx new file mode 100644 index 0000000..20c5e19 Binary files /dev/null and b/public/vendor/laravel-filemanager/files/word.docx differ diff --git a/public/vendor/laravel-filemanager/images/.gitkeep b/public/vendor/laravel-filemanager/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/vendor/laravel-filemanager/img/152px color.png b/public/vendor/laravel-filemanager/img/152px color.png new file mode 100644 index 0000000..a88d311 Binary files /dev/null and b/public/vendor/laravel-filemanager/img/152px color.png differ diff --git a/public/vendor/laravel-filemanager/img/72px color.png b/public/vendor/laravel-filemanager/img/72px color.png new file mode 100644 index 0000000..c056ddc Binary files /dev/null and b/public/vendor/laravel-filemanager/img/72px color.png differ diff --git a/public/vendor/laravel-filemanager/img/92px color.png b/public/vendor/laravel-filemanager/img/92px color.png new file mode 100644 index 0000000..82528ec Binary files /dev/null and b/public/vendor/laravel-filemanager/img/92px color.png differ diff --git a/public/vendor/laravel-filemanager/img/Logomark color.png b/public/vendor/laravel-filemanager/img/Logomark color.png new file mode 100644 index 0000000..9bd3815 Binary files /dev/null and b/public/vendor/laravel-filemanager/img/Logomark color.png differ diff --git a/public/vendor/laravel-filemanager/img/folder.png b/public/vendor/laravel-filemanager/img/folder.png new file mode 100644 index 0000000..18041cf Binary files /dev/null and b/public/vendor/laravel-filemanager/img/folder.png differ diff --git a/public/vendor/laravel-filemanager/img/loader.svg b/public/vendor/laravel-filemanager/img/loader.svg new file mode 100644 index 0000000..6f7b43a --- /dev/null +++ b/public/vendor/laravel-filemanager/img/loader.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + diff --git a/public/vendor/laravel-filemanager/js/cropper.min.js b/public/vendor/laravel-filemanager/js/cropper.min.js new file mode 100644 index 0000000..cb95024 --- /dev/null +++ b/public/vendor/laravel-filemanager/js/cropper.min.js @@ -0,0 +1,10 @@ +/*! + * Cropper v0.9.1 + * https://github.com/fengyuanchen/cropper + * + * Copyright (c) 2014-2015 Fengyuan Chen and contributors + * Released under the MIT license + * + * Date: 2015-03-21T04:58:27.265Z + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){"use strict";function b(a){return"number"==typeof a}function c(a){return"undefined"==typeof a}function d(a,c){var d=[];return b(c)&&d.push(c),d.slice.apply(a,d)}function e(a,b){var c=d(arguments,2);return function(){return a.apply(b,c.concat(d(arguments)))}}function f(a){var b=a.match(/^(https?:)\/\/([^\:\/\?#]+):?(\d*)/i);return b&&(b[1]!==n.protocol||b[2]!==n.hostname||b[3]!==n.port)}function g(a){var b="timestamp="+(new Date).getTime();return a+(-1===a.indexOf("?")?"?":"&")+b}function h(a){return a?"rotate("+a+"deg)":"none"}function i(a,b){var c,d,e=P(a.degree)%180,f=(e>90?180-e:e)*Math.PI/180,g=Q(f),h=R(f),i=a.width,j=a.height,k=a.aspectRatio;return b?(c=i/(h+g/k),d=c/k):(c=i*h+j*g,d=i*g+j*h),{width:c,height:d}}function j(b,c){var d=a("")[0],e=d.getContext("2d"),f=c.naturalWidth,g=c.naturalHeight,h=c.rotate,j=i({width:f,height:g,degree:h});return h?(d.width=j.width,d.height=j.height,e.save(),e.translate(j.width/2,j.height/2),e.rotate(h*Math.PI/180),e.drawImage(b,-f/2,-g/2,f,g),e.restore()):(d.width=f,d.height=g,e.drawImage(b,0,0,f,g)),d}function k(b,c){this.$element=a(b),this.options=a.extend({},k.DEFAULTS,a.isPlainObject(c)&&c),this.ready=!1,this.built=!1,this.rotated=!1,this.cropped=!1,this.disabled=!1,this.load()}var l=a(window),m=a(document),n=window.location,o=".cropper",p=/^(e|n|w|s|ne|nw|sw|se|all|crop|move|zoom)$/,q="cropper-modal",r="cropper-hide",s="cropper-hidden",t="cropper-invisible",u="cropper-move",v="cropper-crop",w="cropper-disabled",x="cropper-bg",y="mousedown touchstart",z="mousemove touchmove",A="mouseup mouseleave touchend touchleave touchcancel",B="wheel mousewheel DOMMouseScroll",C="dblclick",D="resize"+o,E="build"+o,F="built"+o,G="dragstart"+o,H="dragmove"+o,I="dragend"+o,J="zoomin"+o,K="zoomout"+o,L=a.isFunction(a("")[0].getContext),M=Math.sqrt,N=Math.min,O=Math.max,P=Math.abs,Q=Math.sin,R=Math.cos,S=parseFloat,T={};T.load=function(b){var c,d,e,h=this.options,i=this.$element;b||(i.is("img")?b=i.prop("src"):i.is("canvas")&&L&&(b=i[0].toDataURL())),b&&(d=a.Event(E),i.one(E,h.build).trigger(d),d.isDefaultPrevented()||(h.checkImageOrigin&&f(b)&&(c=" crossOrigin",i.prop("crossOrigin")||(b=g(b))),this.$clone=e=a(""),e.one("load",a.proxy(function(){var a=e.prop("naturalWidth")||e.width(),c=e.prop("naturalHeight")||e.height();this.image={naturalWidth:a,naturalHeight:c,aspectRatio:a/c,rotate:0},this.url=b,this.ready=!0,this.build()},this)).attr({src:b,crossOrigin:c}),e.addClass(r).insertAfter(i)))},T.build=function(){var b,c,d=this.$element,e=this.$clone,f=this.options;this.ready&&(this.built&&this.unbuild(),this.$cropper=b=a(k.TEMPLATE),d.addClass(s),e.removeClass(r),this.$container=d.parent().append(b),this.$canvas=b.find(".cropper-canvas").append(e),this.$dragBox=b.find(".cropper-drag-box"),this.$cropBox=c=b.find(".cropper-crop-box"),this.$viewBox=b.find(".cropper-view-box"),this.addListeners(),this.initPreview(),f.aspectRatio=S(f.aspectRatio)||0/0,f.autoCrop?(this.cropped=!0,f.modal&&this.$dragBox.addClass(q)):c.addClass(s),f.background&&b.addClass(x),f.highlight||c.find(".cropper-face").addClass(t),f.guides||c.find(".cropper-dashed").addClass(s),f.movable||c.find(".cropper-face").data("drag","move"),f.resizable||c.find(".cropper-line, .cropper-point").addClass(s),this.setDragMode(f.dragCrop?"crop":"move"),this.built=!0,this.render(),d.one(F,f.built).trigger(F))},T.unbuild=function(){this.built&&(this.built=!1,this.removeListeners(),this.$preview.empty(),this.$preview=null,this.$viewBox=null,this.$cropBox=null,this.$dragBox=null,this.$canvas=null,this.$container=null,this.$cropper.remove(),this.$cropper=null)},a.extend(T,{render:function(){this.initContainer(),this.initCanvas(),this.initCropBox()},initContainer:function(){var a=this.$element,b=this.$container,c=this.$cropper,d=this.options;c.addClass(s),a.removeClass(s),c.css(this.container={width:O(b.width(),S(d.minContainerWidth)||200),height:O(b.height(),S(d.minContainerHeight)||100)}),a.addClass(s),c.removeClass(s)},initCanvas:function(){var b=this.options,c=this.container,d=c.width,e=c.height,f=this.image,g=f.aspectRatio,h={aspectRatio:g,width:d,height:e,left:0,top:0,minLeft:-d,minTop:-e,maxLeft:d,maxTop:e,minWidth:0,minHeight:0,maxWidth:1/0,maxHeight:1/0};e*g>d?b.strict?h.width=e*g:h.height=d/g:b.strict?h.height=d/g:h.width=e*g,h.oldLeft=h.left=(d-h.width)/2,h.oldTop=h.top=(e-h.height)/2,this.canvas=h,this.limitCanvas(),this.initialImage=a.extend({},f),this.initialCanvas=a.extend({},this.canvas),this.renderCanvas()},limitCanvas:function(){var a=this.options,b=this.container,c=b.width,d=b.height,e=this.canvas,f=e.aspectRatio,g=c,h=d;d*f>c?a.strict?g=d*f:h=c/f:a.strict?h=c/f:g=d*f,a.strict?(e.minWidth=g,e.minHeight=h,e.maxLeft=0,e.maxTop=0,e.minLeft=c-g,e.minTop=d-h):(e.minLeft=-g,e.minTop=-h)},renderCanvas:function(b){var c,d,e,f=this.options,g=this.container,j=this.canvas,k=this.image;this.rotated&&(this.rotated=!1,e=i({width:k.width,height:k.height,degree:k.rotate}),c=e.width/e.height,c!==j.aspectRatio&&(j.left-=(e.width-j.width)/2,j.top-=(e.height-j.height)/2,j.width=e.width,j.height=e.height,j.aspectRatio=c,this.limitCanvas())),(j.width>j.maxWidth||j.widthj.maxHeight||j.heightj?(l.height=l.width/f,l.maxHeight=j/f):(l.width=l.height*f,l.maxWidth=k*f),e||(l.height*d.aspectRatio>l.width?(l.height=d.height,l.width=l.height*f):(l.width=d.width,l.height=l.width/f)),g?l.minHeight=l.minWidth/f:h&&(l.minWidth=l.minHeight*f)),l.minWidth=N(l.maxWidth,l.minWidth),l.minHeight=N(l.maxHeight,l.minHeight),l.width=O(l.minWidth,l.width*i),l.height=O(l.minHeight,l.height*i),l.oldLeft=l.left=(j-l.width)/2,l.oldTop=l.top=(k-l.height)/2,this.initialCropBox=a.extend({},l),this.cropBox=l,this.cropped&&this.renderCropBox()},renderCropBox:function(){var a=this.options,b=this.container,c=b.width,d=b.height,e=this.$cropBox,f=this.cropBox;(f.width>f.maxWidth||f.widthf.maxHeight||f.height'),this.$preview.each(function(){var c=a(this);c.data({width:c.width(),height:c.height()}).html('')})},T.preview=function(){var b=this.image,c=this.canvas,d=this.cropBox,e=b.width,f=b.height,g=d.left-c.left-b.left,i=d.top-c.top-b.top,j=b.rotate;this.cropped&&!this.disabled&&(this.$viewBox.find("img").css({width:e,height:f,marginLeft:-g,marginTop:-i,transform:h(j)}),this.$preview.each(function(){var b=a(this),c=b.data(),k=c.width/d.width,l=c.width,m=d.height*k;m>c.height&&(k=c.height/d.height,l=d.width*k,m=c.height),b.width(l).height(m).find("img").css({width:e*k,height:f*k,marginLeft:-g*k,marginTop:-i*k,transform:h(j)})}))},T.addListeners=function(){var b=this.options;this.$element.on(G,b.dragstart).on(H,b.dragmove).on(I,b.dragend).on(J,b.zoomin).on(K,b.zoomout),this.$cropper.on(y,a.proxy(this.dragstart,this)).on(C,a.proxy(this.dblclick,this)),b.zoomable&&b.mouseWheelZoom&&this.$cropper.on(B,a.proxy(this.wheel,this)),m.on(z,this._dragmove=e(this.dragmove,this)).on(A,this._dragend=e(this.dragend,this)),b.responsive&&l.on(D,this._resize=e(this.resize,this))},T.removeListeners=function(){var a=this.options;this.$element.off(G,a.dragstart).off(H,a.dragmove).off(I,a.dragend).off(J,a.zoomin).off(K,a.zoomout),this.$cropper.off(y,this.dragstart).off(C,this.dblclick),a.zoomable&&a.mouseWheelZoom&&this.$cropper.off(B,this.wheel),m.off(z,this._dragmove).off(A,this._dragend),a.responsive&&l.off(D,this._resize)},a.extend(T,{resize:function(){var b,c,d,e=this.$container,f=this.container;this.disabled||(d=e.width()/f.width,(1!==d||e.height()!==f.height)&&(b=this.getCanvasData(),c=this.getCropBoxData(),this.render(),this.setCanvasData(a.each(b,function(a,c){b[a]=c*d})),this.setCropBoxData(a.each(c,function(a,b){c[a]=b*d}))))},dblclick:function(){this.disabled||this.setDragMode(this.$dragBox.hasClass(v)?"move":"crop")},wheel:function(a){var b=a.originalEvent,c=1;this.disabled||(a.preventDefault(),b.deltaY?c=b.deltaY>0?1:-1:b.wheelDelta?c=-b.wheelDelta/120:b.detail&&(c=b.detail>0?1:-1),this.zoom(.1*c))},dragstart:function(b){var c,d,e,f=this.options,g=b.originalEvent,h=g&&g.touches,i=b;if(!this.disabled){if(h){if(e=h.length,e>1){if(!f.zoomable||!f.touchDragZoom||2!==e)return;i=h[1],this.startX2=i.pageX,this.startY2=i.pageY,c="zoom"}i=h[0]}if(c=c||a(i.target).data("drag"),p.test(c)){if(b.preventDefault(),d=a.Event(G,{originalEvent:g,dragType:c}),this.$element.trigger(d),d.isDefaultPrevented())return;this.dragType=c,this.cropping=!1,this.startX=i.pageX,this.startY=i.pageY,"crop"===c&&(this.cropping=!0,this.$dragBox.addClass(q))}}},dragmove:function(b){var c,d,e=this.options,f=b.originalEvent,g=f&&f.touches,h=b,i=this.dragType;if(!this.disabled){if(g){if(d=g.length,d>1){if(!e.zoomable||!e.touchDragZoom||2!==d)return;h=g[1],this.endX2=h.pageX,this.endY2=h.pageY}h=g[0]}if(i){if(b.preventDefault(),c=a.Event(H,{originalEvent:f,dragType:i}),this.$element.trigger(c),c.isDefaultPrevented())return;this.endX=h.pageX,this.endY=h.pageY,this.change()}}},dragend:function(b){var c,d=this.dragType;if(!this.disabled&&d){if(b.preventDefault(),c=a.Event(I,{originalEvent:b.originalEvent,dragType:d}),this.$element.trigger(c),c.isDefaultPrevented())return;this.cropping&&(this.cropping=!1,this.$dragBox.toggleClass(q,this.cropped&&this.options.modal)),this.dragType=""}}}),a.extend(T,{reset:function(){this.disabled||(this.image=a.extend({},this.initialImage),this.canvas=a.extend({},this.initialCanvas),this.renderCanvas(),this.cropped&&(this.cropBox=a.extend({},this.initialCropBox),this.renderCropBox()))},clear:function(){this.cropped&&!this.disabled&&(a.extend(this.cropBox,{left:0,top:0,width:0,height:0}),this.renderCropBox(),this.cropped=!1,this.$dragBox.removeClass(q),this.$cropBox.addClass(s))},destroy:function(){var a=this.$element;this.ready||this.$clone.off("load").remove(),this.unbuild(),a.removeClass(s).removeData("cropper")},replace:function(a){this.ready&&!this.disabled&&a&&this.load(a)},enable:function(){this.built&&(this.disabled=!1,this.$cropper.removeClass(w))},disable:function(){this.built&&(this.disabled=!0,this.$cropper.addClass(w))},move:function(a,c){var d=this.canvas;this.built&&!this.disabled&&b(a)&&b(c)&&(d.left+=a,d.top+=c,this.renderCanvas(!0))},zoom:function(b){var c,d,e,f=this.canvas;if(b=S(b),b&&this.built&&!this.disabled&&this.options.zoomable){if(c=a.Event(b>0?J:K),this.$element.trigger(c),c.isDefaultPrevented())return;b=-1>=b?1/(1-b):1>=b?1+b:b,d=f.width*b,e=f.height*b,f.left-=(d-f.width)/2,f.top-=(e-f.height)/2,f.width=d,f.height=e,this.renderCanvas(!0),this.setDragMode("move")}},rotate:function(a){var b=this.image;a=S(a),a&&this.built&&!this.disabled&&this.options.rotatable&&(b.rotate=(b.rotate+a)%360,this.rotated=!0,this.renderCanvas(!0))},getData:function(){var b,c,d=this.cropBox,e=this.canvas,f=this.image,g=f.rotate;return this.built&&this.cropped?(c={x:d.left-e.left,y:d.top-e.top,width:d.width,height:d.height},b=f.width/f.naturalWidth,a.each(c,function(a,d){d/=b,c[a]=d})):c={x:0,y:0,width:0,height:0},c.rotate=g,c},getContainerData:function(){return this.built?this.container:{}},getImageData:function(){return this.ready?this.image:{}},getCanvasData:function(){var a,b=this.canvas;return this.built&&(a={left:b.left,top:b.top,width:b.width,height:b.height}),a||{}},setCanvasData:function(c){var d=this.canvas,e=d.aspectRatio;this.built&&!this.disabled&&a.isPlainObject(c)&&(b(c.left)&&(d.left=c.left),b(c.top)&&(d.top=c.top),b(c.width)?(d.width=c.width,d.height=c.width/e):b(c.height)&&(d.height=c.height,d.width=c.height*e),this.renderCanvas(!0))},getCropBoxData:function(){var a,b=this.cropBox;return this.built&&this.cropped&&(a={left:b.left,top:b.top,width:b.width,height:b.height}),a||{}},setCropBoxData:function(c){var d=this.cropBox,e=this.options.aspectRatio;this.built&&this.cropped&&!this.disabled&&a.isPlainObject(c)&&(b(c.left)&&(d.left=c.left),b(c.top)&&(d.top=c.top),e?b(c.width)?(d.width=c.width,d.height=d.width/e):b(c.height)&&(d.height=c.height,d.width=d.height*e):(b(c.width)&&(d.width=c.width),b(c.height)&&(d.height=c.height)),this.renderCropBox())},getCroppedCanvas:function(b){var c,d,e,f,g,h,i,k,l,m,n;if(this.built&&this.cropped&&L)return a.isPlainObject(b)||(b={}),n=this.getData(),c=n.width,d=n.height,k=c/d,a.isPlainObject(b)&&(g=b.width,h=b.height,g?(h=g/k,i=g/c):h&&(g=h*k,i=h/d)),e=g||c,f=h||d,l=a("")[0],l.width=e,l.height=f,m=l.getContext("2d"),b.fillColor&&(m.fillStyle=b.fillColor,m.fillRect(0,0,e,f)),m.drawImage.apply(m,function(){var a,b,e,f,g,h,k=j(this.$clone[0],this.image),l=k.width,m=k.height,o=[k],p=n.x,q=n.y;return-c>=p||p>l?p=a=e=g=0:0>=p?(e=-p,p=0,a=g=N(l,c+p)):l>=p&&(e=0,a=g=N(c,l-p)),0>=a||-d>=q||q>m?q=b=f=h=0:0>=q?(f=-q,q=0,b=h=N(m,d+q)):m>=q&&(f=0,b=h=N(d,m-q)),o.push(p,q,a,b),i&&(e*=i,f*=i,g*=i,h*=i),g>0&&h>0&&o.push(e,f,g,h),o}.call(this)),l},setAspectRatio:function(a){var b=this.options;this.disabled||c(a)||(b.aspectRatio=S(a)||0/0,this.built&&this.initCropBox())},setDragMode:function(a){var b=this.$dragBox,c=!1,d=!1;if(this.ready&&!this.disabled){switch(a){case"crop":this.options.dragCrop?(c=!0,b.data("drag",a)):d=!0;break;case"move":d=!0,b.data("drag",a);break;default:b.removeData("drag")}b.toggleClass(v,c).toggleClass(u,d)}}}),T.change=function(){var a,b=this.dragType,c=this.canvas,d=this.container,e=d.width,f=d.height,g=this.cropBox,h=g.width,i=g.height,j=g.left,k=g.top,l=j+h,m=k+i,n=!0,o=this.options.aspectRatio,p={x:this.endX-this.startX,y:this.endY-this.startY};switch(o&&(p.X=p.y*o,p.Y=p.x/o),b){case"all":j+=p.x,k+=p.y;break;case"e":if(p.x>=0&&(l>=e||o&&(0>=k||m>=f))){n=!1;break}h+=p.x,o&&(i=h/o,k-=p.Y/2),0>h&&(b="w",h=0);break;case"n":if(p.y<=0&&(0>=k||o&&(0>=j||l>=e))){n=!1;break}i-=p.y,k+=p.y,o&&(h=i*o,j+=p.X/2),0>i&&(b="s",i=0);break;case"w":if(p.x<=0&&(0>=j||o&&(0>=k||m>=f))){n=!1;break}h-=p.x,j+=p.x,o&&(i=h/o,k+=p.Y/2),0>h&&(b="e",h=0);break;case"s":if(p.y>=0&&(m>=f||o&&(0>=j||l>=e))){n=!1;break}i+=p.y,o&&(h=i*o,j-=p.X/2),0>i&&(b="n",i=0);break;case"ne":if(o){if(p.y<=0&&(0>=k||l>=e)){n=!1;break}i-=p.y,k+=p.y,h=i*o}else p.x>=0?e>l?h+=p.x:p.y<=0&&0>=k&&(n=!1):h+=p.x,p.y<=0?k>0&&(i-=p.y,k+=p.y):(i-=p.y,k+=p.y);0>h&&0>i?(b="sw",i=0,h=0):0>h?(b="nw",h=0):0>i&&(b="se",i=0);break;case"nw":if(o){if(p.y<=0&&(0>=k||0>=j)){n=!1;break}i-=p.y,k+=p.y,h=i*o,j+=p.X}else p.x<=0?j>0?(h-=p.x,j+=p.x):p.y<=0&&0>=k&&(n=!1):(h-=p.x,j+=p.x),p.y<=0?k>0&&(i-=p.y,k+=p.y):(i-=p.y,k+=p.y);0>h&&0>i?(b="se",i=0,h=0):0>h?(b="ne",h=0):0>i&&(b="sw",i=0);break;case"sw":if(o){if(p.x<=0&&(0>=j||m>=f)){n=!1;break}h-=p.x,j+=p.x,i=h/o}else p.x<=0?j>0?(h-=p.x,j+=p.x):p.y>=0&&m>=f&&(n=!1):(h-=p.x,j+=p.x),p.y>=0?f>m&&(i+=p.y):i+=p.y;0>h&&0>i?(b="ne",i=0,h=0):0>h?(b="se",h=0):0>i&&(b="nw",i=0);break;case"se":if(o){if(p.x>=0&&(l>=e||m>=f)){n=!1;break}h+=p.x,i=h/o}else p.x>=0?e>l?h+=p.x:p.y>=0&&m>=f&&(n=!1):h+=p.x,p.y>=0?f>m&&(i+=p.y):i+=p.y;0>h&&0>i?(b="nw",i=0,h=0):0>h?(b="sw",h=0):0>i&&(b="ne",i=0);break;case"move":c.left+=p.x,c.top+=p.y,this.renderCanvas(!0),n=!1;break;case"zoom":this.zoom(function(a,b,c,d){var e=M(a*a+b*b),f=M(c*c+d*d);return(f-e)/e}(P(this.startX-this.startX2),P(this.startY-this.startY2),P(this.endX-this.endX2),P(this.endY-this.endY2))),this.startX2=this.endX2,this.startY2=this.endY2,n=!1;break;case"crop":p.x&&p.y&&(a=this.$cropper.offset(),j=this.startX-a.left,k=this.startY-a.top,h=g.minWidth,i=g.minHeight,p.x>0?p.y>0?b="se":(b="ne",k-=i):p.y>0?(b="sw",j-=h):(b="nw",j-=h,k-=i),this.cropped||(this.cropped=!0,this.$cropBox.removeClass(s)))}n&&(g.width=h,g.height=i,g.left=j,g.top=k,this.dragType=b,this.renderCropBox()),this.startX=this.endX,this.startY=this.endY},a.extend(k.prototype,T),k.DEFAULTS={aspectRatio:0/0,autoCropArea:.8,crop:null,preview:"",strict:!0,responsive:!0,checkImageOrigin:!0,modal:!0,guides:!0,highlight:!0,background:!0,autoCrop:!0,dragCrop:!0,movable:!0,resizable:!0,rotatable:!0,zoomable:!0,touchDragZoom:!0,mouseWheelZoom:!0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,build:null,built:null,dragstart:null,dragmove:null,dragend:null,zoomin:null,zoomout:null},k.setDefaults=function(b){a.extend(k.DEFAULTS,b)},k.TEMPLATE=function(a,b){return b=b.split(","),a.replace(/\d+/g,function(a){return b[a]})}('<0 6="5-container"><0 6="5-canvas"><0 6="5-2-9" 3-2="move"><0 6="5-crop-9"><1 6="5-view-9"><1 6="5-8 8-h"><1 6="5-8 8-v"><1 6="5-face" 3-2="all"><1 6="5-7 7-e" 3-2="e"><1 6="5-7 7-n" 3-2="n"><1 6="5-7 7-w" 3-2="w"><1 6="5-7 7-s" 3-2="s"><1 6="5-4 4-e" 3-2="e"><1 6="5-4 4-n" 3-2="n"><1 6="5-4 4-w" 3-2="w"><1 6="5-4 4-s" 3-2="s"><1 6="5-4 4-ne" 3-2="ne"><1 6="5-4 4-nw" 3-2="nw"><1 6="5-4 4-sw" 3-2="sw"><1 6="5-4 4-se" 3-2="se">',"div,span,drag,data,point,cropper,class,line,dashed,box"),k.other=a.fn.cropper,a.fn.cropper=function(b){var e,f=d(arguments,1);return this.each(function(){var c,d=a(this),g=d.data("cropper");g||d.data("cropper",g=new k(this,b)),"string"==typeof b&&a.isFunction(c=g[b])&&(e=c.apply(g,f))}),c(e)?this:e},a.fn.cropper.Constructor=k,a.fn.cropper.setDefaults=k.setDefaults,a.fn.cropper.noConflict=function(){return a.fn.cropper=k.other,this}}); \ No newline at end of file diff --git a/public/vendor/laravel-filemanager/js/dropzone.min.js b/public/vendor/laravel-filemanager/js/dropzone.min.js new file mode 100644 index 0000000..3e1da61 --- /dev/null +++ b/public/vendor/laravel-filemanager/js/dropzone.min.js @@ -0,0 +1,2 @@ +(function(){var a,b,c,d,e,f,g,h,i,j=[].slice,k=function(a,b){function c(){this.constructor=a}for(var d in b)l.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},l={}.hasOwnProperty;h=function(){},b=function(){function a(){}return a.prototype.addEventListener=a.prototype.on,a.prototype.on=function(a,b){return this._callbacks=this._callbacks||{},this._callbacks[a]||(this._callbacks[a]=[]),this._callbacks[a].push(b),this},a.prototype.emit=function(){var a,b,c,d,e,f;if(d=arguments[0],a=2<=arguments.length?j.call(arguments,1):[],this._callbacks=this._callbacks||{},c=this._callbacks[d])for(e=0,f=c.length;e'),this.element.appendChild(e)),g=e.getElementsByTagName("span")[0],g&&(null!=g.textContent?g.textContent=this.options.dictFallbackMessage:null!=g.innerText&&(g.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(a,b,c,d){var e,f,g;if(e={srcX:0,srcY:0,srcWidth:a.width,srcHeight:a.height},f=a.width/a.height,null==b&&null==c?(b=e.srcWidth,c=e.srcHeight):null==b?b=c*f:null==c&&(c=b/f),b=Math.min(b,e.srcWidth),c=Math.min(c,e.srcHeight),g=b/c,e.srcWidth>b||e.srcHeight>c)if("crop"===d)f>g?(e.srcHeight=a.height,e.srcWidth=e.srcHeight*g):(e.srcWidth=a.width,e.srcHeight=e.srcWidth/g);else{if("contain"!==d)throw new Error("Unknown resizeMethod '"+d+"'");f>g?c=b/f:b=c*f}return e.srcX=(a.width-e.srcWidth)/2,e.srcY=(a.height-e.srcHeight)/2,e.trgWidth=b,e.trgHeight=c,e},transformFile:function(a,b){return(this.options.resizeWidth||this.options.resizeHeight)&&a.type.match(/image.*/)?this.resizeImage(a,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,b):b(a)},previewTemplate:'
\n
\n
\n
\n
\n
\n
\n
\n
\n \n Check\n \n \n \n \n \n
\n
\n \n Error\n \n \n \n \n \n \n \n
\n
',drop:function(a){return this.element.classList.remove("dz-drag-hover")},dragstart:h,dragend:function(a){return this.element.classList.remove("dz-drag-hover")},dragenter:function(a){return this.element.classList.add("dz-drag-hover")},dragover:function(a){return this.element.classList.add("dz-drag-hover")},dragleave:function(a){return this.element.classList.remove("dz-drag-hover")},paste:h,reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(a){var b,c,e,f,g,h,i,j,k,l,m,n,o;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer){for(a.previewElement=d.createElement(this.options.previewTemplate.trim()),a.previewTemplate=a.previewElement,this.previewsContainer.appendChild(a.previewElement),j=a.previewElement.querySelectorAll("[data-dz-name]"),b=0,f=j.length;b'+this.options.dictRemoveFile+""),a.previewElement.appendChild(a._removeLink)),m=function(b){return function(c){return c.preventDefault(),c.stopPropagation(),a.status===d.UPLOADING?d.confirm(b.options.dictCancelUploadConfirmation,function(){return b.removeFile(a)}):b.options.dictRemoveFileConfirmation?d.confirm(b.options.dictRemoveFileConfirmation,function(){return b.removeFile(a)}):b.removeFile(a)}}(this),l=a.previewElement.querySelectorAll("[data-dz-remove]"),o=[],e=0,h=l.length;e'+this.options.dictDefaultMessage+"")),this.clickableElements.length&&(h=function(a){return function(){return a.hiddenFileInput&&a.hiddenFileInput.parentNode.removeChild(a.hiddenFileInput),a.hiddenFileInput=document.createElement("input"),a.hiddenFileInput.setAttribute("type","file"),(null==a.options.maxFiles||a.options.maxFiles>1)&&a.hiddenFileInput.setAttribute("multiple","multiple"),a.hiddenFileInput.className="dz-hidden-input",null!=a.options.acceptedFiles&&a.hiddenFileInput.setAttribute("accept",a.options.acceptedFiles),null!=a.options.capture&&a.hiddenFileInput.setAttribute("capture",a.options.capture),a.hiddenFileInput.style.visibility="hidden",a.hiddenFileInput.style.position="absolute",a.hiddenFileInput.style.top="0",a.hiddenFileInput.style.left="0",a.hiddenFileInput.style.height="0",a.hiddenFileInput.style.width="0",document.querySelector(a.options.hiddenInputContainer).appendChild(a.hiddenFileInput),a.hiddenFileInput.addEventListener("change",function(){var b,c,d,e;if(c=a.hiddenFileInput.files,c.length)for(d=0,e=c.length;d',this.options.dictFallbackText&&(c+="

"+this.options.dictFallbackText+"

"),c+='',b=d.createElement(c),"FORM"!==this.element.tagName?(e=d.createElement('
'),e.appendChild(b)):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=e?e:b)},d.prototype.getExistingFallback=function(){var a,b,c,d,e,f;for(b=function(a){var b,c,d;for(c=0,d=a.length;c0){for(i=["tb","gb","mb","kb","b"],c=d=0,e=i.length;d=b){f=a/Math.pow(this.options.filesizeBase,4-c),g=h;break}f=Math.round(10*f)/10}return""+f+" "+this.options.dictFileSizeUnits[g]},d.prototype._updateMaxFilesReachedClass=function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")},d.prototype.drop=function(a){var b,c;a.dataTransfer&&(this.emit("drop",a),b=a.dataTransfer.files,this.emit("addedfiles",b),b.length&&(c=a.dataTransfer.items,c&&c.length&&null!=c[0].webkitGetAsEntry?this._addFilesFromItems(c):this.handleFiles(b)))},d.prototype.paste=function(a){var b,c;if(null!=(null!=a&&null!=(c=a.clipboardData)?c.items:void 0))return this.emit("paste",a),b=a.clipboardData.items,b.length?this._addFilesFromItems(b):void 0},d.prototype.handleFiles=function(a){var b,c,d,e;for(e=[],c=0,d=a.length;c0){for(f=0,g=c.length;f1024*this.options.maxFilesize*1024?b(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(a.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):d.isValidFile(a,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(b(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",a)):this.options.accept.call(this,a,b):b(this.options.dictInvalidFileType)},d.prototype.addFile=function(a){return a.upload={progress:0,total:a.size,bytesSent:0,filename:this._renameFile(a)},this.files.push(a),a.status=d.ADDED,this.emit("addedfile",a),this._enqueueThumbnail(a),this.accept(a,function(b){return function(c){return c?(a.accepted=!1,b._errorProcessing([a],c)):(a.accepted=!0,b.options.autoQueue&&b.enqueueFile(a)),b._updateMaxFilesReachedClass()}}(this))},d.prototype.enqueueFiles=function(a){var b,c,d;for(c=0,d=a.length;c4&&(j.width=p.trgHeight,j.height=p.trgWidth),e){case 2:k.translate(j.width,0),k.scale(-1,1);break;case 3:k.translate(j.width,j.height),k.rotate(Math.PI);break;case 4:k.translate(0,j.height),k.scale(1,-1);break;case 5:k.rotate(.5*Math.PI),k.scale(1,-1);break;case 6:k.rotate(.5*Math.PI),k.translate(0,-j.height);break;case 7:k.rotate(.5*Math.PI),k.translate(j.width,-j.height),k.scale(-1,1);break;case 8:k.rotate(-.5*Math.PI),k.translate(-j.width,0)}if(g(k,i,null!=(l=p.srcX)?l:0,null!=(m=p.srcY)?m:0,p.srcWidth,p.srcHeight,null!=(n=p.trgX)?n:0,null!=(o=p.trgY)?o:0,p.trgWidth,p.trgHeight),q=j.toDataURL("image/png"),null!=f)return f(q,j)})}}(this),null!=f&&(i.onerror=f),i.src=a.dataURL},d.prototype.processQueue=function(){var a,b,c,d;if(b=this.options.parallelUploads,c=this.getUploadingFiles().length,a=c,!(c>=b)&&(d=this.getQueuedFiles(),d.length>0)){if(this.options.uploadMultiple)return this.processFiles(d.slice(0,b-c));for(;a=I;m=0<=I?++A:--A)c=function(c){return function(d,e,f){return function(d){if(h.append(e,d,f),++b===a.length)return c.submitRequest(O,h,a)}}}(this),K.push(this.options.transformFile.call(this,a[m],c(a[m],this._getParamName(m),a[m].upload.filename)));return K},d.prototype.submitRequest=function(a,b,c){return a.send(b)},d.prototype._finished=function(a,b,c){var e,f,g;for(f=0,g=a.length;f=h;d=0<=h?++f:--f)e[d]=c.charCodeAt(d);return new Blob([b],{type:g})},i=function(a,b){var c,d,e,f;for(f=[],d=0,e=a.length;dj;)b=e[4*(h-1)+3],0===b?f=h:j=h,h=f+j>>1;return i=h/g,0===i?1:i},g=function(a,b,c,d,e,g,h,i,j,k){var l;return l=f(b),a.drawImage(b,c,d,e,g,h,i,j,k/l)},c=function(){function a(){}return a.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a.encode64=function(a){var b,c,d,e,f,g,h,i,j;for(j="",b=void 0,c=void 0,d="",e=void 0,f=void 0,g=void 0,h="",i=0;;)if(b=a[i++],c=a[i++],d=a[i++],e=b>>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),j=j+this.KEY_STR.charAt(e)+this.KEY_STR.charAt(f)+this.KEY_STR.charAt(g)+this.KEY_STR.charAt(h),b=c=d="",e=f=g=h="",!(ia.length)break}return f},a.decode64=function(a){var b,c,d,e,f,g,h,i,j,k;for("",d=void 0,e=void 0,f="",g=void 0,h=void 0,i=void 0,j="",k=0,c=[],b=/[^A-Za-z0-9\+\/\=]/g,b.exec(a)&&console.warning("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."),a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");;)if(g=this.KEY_STR.indexOf(a.charAt(k++)),h=this.KEY_STR.indexOf(a.charAt(k++)),i=this.KEY_STR.indexOf(a.charAt(k++)),j=this.KEY_STR.indexOf(a.charAt(k++)),d=g<<2|h>>4,e=(15&h)<<4|i>>2,f=(3&i)<<6|j,c.push(d),64!==i&&c.push(e),64!==j&&c.push(f),d=e=f="",g=h=i=j="",!(k Array of selected files with properties: + * icon string + * is_file bool + * is_image bool + * name string + * thumb_url string|null + * time int + * url string + */ +window.filemanager = function filemanager() { + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/filemanager'; + var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'FileManager'; + var features = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'width=900,height=600'; + return new Promise(function (resolve) { + window.open(url, target, features); + window.SetUrl = resolve; + }); +}; diff --git a/public/vendor/laravel-filemanager/js/filemanager.min.js b/public/vendor/laravel-filemanager/js/filemanager.min.js new file mode 100644 index 0000000..bea9de2 --- /dev/null +++ b/public/vendor/laravel-filemanager/js/filemanager.min.js @@ -0,0 +1 @@ +window.filemanager=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/filemanager",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FileManager",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"width=900,height=600";return new Promise(function(o){window.open(n,e,i),window.SetUrl=o})}; \ No newline at end of file diff --git a/public/vendor/laravel-filemanager/js/script.js b/public/vendor/laravel-filemanager/js/script.js new file mode 100644 index 0000000..2a2b49c --- /dev/null +++ b/public/vendor/laravel-filemanager/js/script.js @@ -0,0 +1,812 @@ +var lfm_route = location.origin + location.pathname; +var show_list; +var sort_type = 'alphabetic'; +var multi_selection_enabled = false; +var selected = []; +var items = []; + +$.fn.fab = function (options) { + var menu = this; + menu.addClass('fab-wrapper'); + + var toggler = $('') + .addClass('fab-button fab-toggle') + .append($('').addClass('fas fa-plus')) + .click(function () { + menu.toggleClass('fab-expand'); + }); + + menu.append(toggler); + + options.buttons.forEach(function (button) { + toggler.before( + $('').addClass('fab-button fab-action') + .attr('data-label', button.label) + .attr('id', button.attrs.id) + .append($('').addClass(button.icon)) + .click(function () { + menu.removeClass('fab-expand'); + }) + ); + }); +}; + +$(document).ready(function () { + $('#fab').fab({ + buttons: [ + { + icon: 'fas fa-upload', + label: lang['nav-upload'], + attrs: {id: 'upload'} + }, + { + icon: 'fas fa-folder', + label: lang['nav-new'], + attrs: {id: 'add-folder'} + } + ] + }); + + actions.reverse().forEach(function (action) { + $('#nav-buttons > ul').prepend( + $('
  • ').addClass('nav-item').append( + $('').addClass('nav-link d-none') + .attr('data-action', action.name) + .attr('data-multiple', action.multiple) + .append($('').addClass('fas fa-fw fa-' + action.icon)) + .append($('').text(action.label)) + ) + ); + }); + + sortings.forEach(function (sort) { + $('#nav-buttons .dropdown-menu').append( + $('').addClass('dropdown-item').attr('data-sortby', sort.by) + .append($('').addClass('fas fa-fw fa-' + sort.icon)) + .append($('').text(sort.label)) + .click(function() { + sort_type = sort.by; + loadItems(); + }) + ); + }); + + loadFolders(); + performLfmRequest('errors') + .done(function (response) { + JSON.parse(response).forEach(function (message) { + $('#alerts').append( + $('
    ').addClass('alert alert-warning') + .append($('').addClass('fas fa-exclamation-circle')) + .append(' ' + message) + ); + }); + }); + + $(window).on('dragenter', function(){ + $('#uploadModal').modal('show'); + }); + + if (usingWysiwygEditor()) { + $('#multi_selection_toggle').hide(); + } +}); + +// ====================== +// == Navbar actions == +// ====================== + +$('#multi_selection_toggle').click(function () { + multi_selection_enabled = !multi_selection_enabled; + + $('#multi_selection_toggle i') + .toggleClass('fa-times', multi_selection_enabled) + .toggleClass('fa-check-double', !multi_selection_enabled); + + if (!multi_selection_enabled) { + clearSelected(); + } +}); + +$('#to-previous').click(function () { + var previous_dir = getPreviousDir(); + if (previous_dir == '') return; + goTo(previous_dir); +}); + +function toggleMobileTree(should_display) { + if (should_display === undefined) { + should_display = !$('#tree').hasClass('in'); + } + $('#tree').toggleClass('in', should_display); +} + +$('#show_tree').click(function (e) { + toggleMobileTree(); +}); + +$('#main').click(function (e) { + if ($('#tree').hasClass('in')) { + toggleMobileTree(false); + } +}); + +$(document).on('click', '#add-folder', function () { + dialog(lang['message-name'], '', createFolder); +}); + +$(document).on('click', '#upload', function () { + $('#uploadModal').modal('show'); +}); + +$(document).on('click', '[data-display]', function() { + show_list = $(this).data('display'); + loadItems(); +}); + +$(document).on('click', '[data-action]', function() { + window[$(this).data('action')]($(this).data('multiple') ? getSelectedItems() : getOneSelectedElement()); +}); + +// ========================== +// == Multiple Selection == +// ========================== + +function toggleSelected (e) { + if (!multi_selection_enabled) { + selected = []; + } + + var sequence = $(e.target).closest('a').data('id'); + var element_index = selected.indexOf(sequence); + if (element_index === -1) { + selected.push(sequence); + } else { + selected.splice(element_index, 1); + } + + updateSelectedStyle(); +} + +function clearSelected () { + selected = []; + + multi_selection_enabled = false; + + updateSelectedStyle(); +} + +function updateSelectedStyle() { + items.forEach(function (item, index) { + $('[data-id=' + index + ']') + .find('.square') + .toggleClass('selected', selected.indexOf(index) > -1); + }); + toggleActions(); +} + +function getOneSelectedElement(orderOfItem) { + var index = orderOfItem !== undefined ? orderOfItem : selected[0]; + return items[index]; +} + +function getSelectedItems() { + return selected.reduce(function (arr_objects, id) { + arr_objects.push(getOneSelectedElement(id)); + return arr_objects + }, []); +} + +function toggleActions() { + var one_selected = selected.length === 1; + var many_selected = selected.length >= 1; + var only_image = getSelectedItems() + .filter(function (item) { return !item.is_image; }) + .length === 0; + var only_file = getSelectedItems() + .filter(function (item) { return !item.is_file; }) + .length === 0; + + $('[data-action=use]').toggleClass('d-none', !(many_selected && only_file)); + $('[data-action=rename]').toggleClass('d-none', !one_selected); + $('[data-action=preview]').toggleClass('d-none', !(many_selected && only_file)); + $('[data-action=move]').toggleClass('d-none', !many_selected); + $('[data-action=download]').toggleClass('d-none', !(many_selected && only_file)); + $('[data-action=resize]').toggleClass('d-none', !(one_selected && only_image)); + $('[data-action=crop]').toggleClass('d-none', !(one_selected && only_image)); + $('[data-action=trash]').toggleClass('d-none', !many_selected); + $('[data-action=open]').toggleClass('d-none', !one_selected || only_file); + $('#multi_selection_toggle').toggleClass('d-none', usingWysiwygEditor() || !many_selected); + $('#actions').toggleClass('d-none', selected.length === 0); + $('#fab').toggleClass('d-none', selected.length !== 0); +} + +// ====================== +// == Folder actions == +// ====================== + +$(document).on('click', '#tree a', function (e) { + goTo($(e.target).closest('a').data('path')); + toggleMobileTree(false); +}); + +function goTo(new_dir) { + $('#working_dir').val(new_dir); + loadItems(); +} + +function getPreviousDir() { + var working_dir = $('#working_dir').val(); + return working_dir.substring(0, working_dir.lastIndexOf('/')); +} + +function setOpenFolders() { + $('#tree [data-path]').each(function (index, folder) { + // close folders that are not parent + var should_open = ($('#working_dir').val() + '/').startsWith($(folder).data('path') + '/'); + $(folder).children('i') + .toggleClass('fa-folder-open', should_open) + .toggleClass('fa-folder', !should_open); + }); + + $('#tree .nav-item').removeClass('active'); + $('#tree [data-path="' + $('#working_dir').val() + '"]').parent('.nav-item').addClass('active'); +} + +// ==================== +// == Ajax actions == +// ==================== + +function performLfmRequest(url, parameter, type) { + var data = defaultParameters(); + + if (parameter != null) { + $.each(parameter, function (key, value) { + data[key] = value; + }); + } + + return $.ajax({ + type: 'GET', + beforeSend: function(request) { + var token = getUrlParam('token'); + if (token !== null) { + request.setRequestHeader("Authorization", 'Bearer ' + token); + } + }, + dataType: type || 'text', + url: lfm_route + '/' + url, + data: data, + cache: false + }).fail(function (jqXHR, textStatus, errorThrown) { + displayErrorResponse(jqXHR); + }); +} + +function displayErrorResponse(jqXHR) { + notify('
    ' + jqXHR.responseText + '
    '); +} + +var refreshFoldersAndItems = function (data) { + loadFolders(); + if (data != 'OK') { + data = Array.isArray(data) ? data.join('
    ') : data; + notify(data); + } +}; + +var hideNavAndShowEditor = function (data) { + $('#nav-buttons > ul').addClass('d-none'); + $('#content').html(data); + $('#pagination').removeClass('preserve_actions_space') + clearSelected(); +} + +function loadFolders() { + performLfmRequest('folders', {}, 'html') + .done(function (data) { + $('#tree').html(data); + loadItems(); + }); +} + +function generatePaginationHTML(el, args) { + var template = '
  • <\/li>'; + var linkTemplate = '<\/a>'; + var currentPage = args.currentPage; + var totalPage = args.totalPage; + var rangeStart = args.rangeStart; + var rangeEnd = args.rangeEnd; + var i; + + // Disable page range, display all the pages + if (args.pageRange === null) { + for (i = 1; i <= totalPage; i++) { + var button = $(template) + .attr('data-num', i) + .append($(linkTemplate).html(i)); + if (i == currentPage) { + button.addClass('active'); + } + el.append(button); + } + + return; + } + + if (rangeStart <= 3) { + for (i = 1; i < rangeStart; i++) { + var button = $(template) + .attr('data-num', i) + .append($(linkTemplate).html(i)); + if (i == currentPage) { + button.addClass('active'); + } + el.append(button); + } + } else { + var button = $(template) + .attr('data-num', 1) + .append($(linkTemplate).html(1)); + el.append(button); + + var button = $(template) + .addClass('disabled') + .append($(linkTemplate).html('...')); + el.append(button); + } + + for (i = rangeStart; i <= rangeEnd; i++) { + var button = $(template) + .attr('data-num', i) + .append($(linkTemplate).html(i)); + if (i == currentPage) { + button.addClass('active'); + } + el.append(button); + } + + if (rangeEnd >= totalPage - 2) { + for (i = rangeEnd + 1; i <= totalPage; i++) { + var button = $(template) + .attr('data-num', i) + .append($(linkTemplate).html(i)); + el.append(button); + } + } else { + var button = $(template) + .addClass('disabled') + .append($(linkTemplate).html('...')); + el.append(button); + + var button = $(template) + .attr('data-num', totalPage) + .append($(linkTemplate).html(totalPage)); + el.append(button); + } +} + +function createPagination(paginationSetting) { + var el = $(''); + + var currentPage = paginationSetting.current_page; + var pageRange = 5; + var totalPage = Math.ceil(paginationSetting.total / paginationSetting.per_page); + + var rangeStart = currentPage - pageRange; + var rangeEnd = currentPage + pageRange; + + if (rangeEnd > totalPage) { + rangeEnd = totalPage; + rangeStart = totalPage - pageRange * 2; + rangeStart = rangeStart < 1 ? 1 : rangeStart; + } + + if (rangeStart <= 1) { + rangeStart = 1; + rangeEnd = Math.min(pageRange * 2 + 1, totalPage); + } + + generatePaginationHTML(el, { + totalPage: totalPage, + currentPage: currentPage, + pageRange: pageRange, + rangeStart: rangeStart, + rangeEnd: rangeEnd + }); + + $('#pagination').append(el); +} + +function loadItems(page) { + loading(true); + performLfmRequest('jsonitems', {show_list: show_list, sort_type: sort_type, page: page || 1}, 'html') + .done(function (data) { + selected = []; + var response = JSON.parse(data); + var working_dir = response.working_dir; + items = response.items; + var hasItems = items.length !== 0; + var hasPaginator = !!response.paginator; + $('#empty').toggleClass('d-none', hasItems); + $('#content').html('').removeAttr('class'); + $('#pagination').html('').removeAttr('class'); + + if (hasItems) { + $('#content').addClass(response.display); + $('#pagination').addClass('preserve_actions_space'); + + items.forEach(function (item, index) { + var template = $('#item-template').clone() + .removeAttr('id class') + .attr('data-id', index) + .click(toggleSelected) + .dblclick(function (e) { + if (item.is_file) { + use(getSelectedItems()); + } else { + goTo(item.url); + } + }); + + if (item.thumb_url) { + var image = $('
    ').css('background-image', 'url("' + item.thumb_url + '?timestamp=' + item.time + '")'); + } else { + var icon = $('
    ').addClass('ico'); + var image = $('
    ').addClass('mime-icon ico-' + item.icon).append(icon); + } + + template.find('.square').append(image); + template.find('.item_name').text(item.name); + template.find('time').text((new Date(item.time * 1000)).toLocaleString()); + + $('#content').append(template); + }); + } + + if (hasPaginator) { + createPagination(response.paginator); + + $('#pagination a').on('click', function(event) { + event.preventDefault(); + + loadItems($(this).closest('li')[0].getAttribute('data-num')); + + return false; + }); + } + + $('#nav-buttons > ul').removeClass('d-none'); + + $('#working_dir').val(working_dir); + console.log('Current working_dir : ' + working_dir); + var breadcrumbs = []; + var validSegments = working_dir.split('/').filter(function (e) { return e; }); + validSegments.forEach(function (segment, index) { + if (index === 0) { + // set root folder name as the first breadcrumb + breadcrumbs.push($("[data-path='/" + segment + "']").text()); + } else { + breadcrumbs.push(segment); + } + }); + + $('#current_folder').text(breadcrumbs[breadcrumbs.length - 1]); + $('#breadcrumbs > ol').html(''); + breadcrumbs.forEach(function (breadcrumb, index) { + var li = $('
  • ').addClass('breadcrumb-item').text(breadcrumb); + + if (index === breadcrumbs.length - 1) { + li.addClass('active').attr('aria-current', 'page'); + } else { + li.click(function () { + // go to corresponding path + goTo('/' + validSegments.slice(0, 1 + index).join('/')); + }); + } + + $('#breadcrumbs > ol').append(li); + }); + + var atRootFolder = getPreviousDir() == ''; + $('#to-previous').toggleClass('d-none invisible-lg', atRootFolder); + $('#show_tree').toggleClass('d-none', !atRootFolder).toggleClass('d-block', atRootFolder); + setOpenFolders(); + loading(false); + toggleActions(); + }); +} + +function loading(show_loading) { + $('#loading').toggleClass('d-none', !show_loading); +} + +function createFolder(folder_name) { + performLfmRequest('newfolder', {name: folder_name}) + .done(refreshFoldersAndItems); +} + +// ================================== +// == File Actions == +// ================================== + +function rename(item) { + dialog(lang['message-rename'], item.name, function (new_name) { + performLfmRequest('rename', { + file: item.name, + new_name: new_name + }).done(refreshFoldersAndItems); + }); +} + +function trash(items) { + notify(lang['message-delete'], function () { + performLfmRequest('delete', { + items: items.map(function (item) { return item.name; }) + }).done(refreshFoldersAndItems) + }); +} + +function crop(item) { + performLfmRequest('crop', {img: item.name}) + .done(hideNavAndShowEditor); +} + +function resize(item) { + performLfmRequest('resize', {img: item.name}) + .done(hideNavAndShowEditor); +} + +function download(items) { + items.forEach(function (item, index) { + var data = defaultParameters(); + + data['file'] = item.name; + + var token = getUrlParam('token'); + if (token) { + data['token'] = token; + } + + setTimeout(function () { + location.href = lfm_route + '/download?' + $.param(data); + }, index * 100); + }); +} + +function open(item) { + goTo(item.url); +} + +function preview(items) { + var carousel = $('#carouselTemplate').clone().attr('id', 'previewCarousel').removeClass('d-none'); + var imageTemplate = carousel.find('.carousel-item').clone().removeClass('active'); + var indicatorTemplate = carousel.find('.carousel-indicators > li').clone().removeClass('active'); + carousel.children('.carousel-inner').html(''); + carousel.children('.carousel-indicators').html(''); + carousel.children('.carousel-indicators,.carousel-control-prev,.carousel-control-next').toggle(items.length > 1); + + items.forEach(function (item, index) { + var carouselItem = imageTemplate.clone() + .addClass(index === 0 ? 'active' : ''); + + if (item.thumb_url) { + carouselItem.find('.carousel-image').css('background-image', 'url(\'' + item.url + '?timestamp=' + item.time + '\')'); + } else { + carouselItem.find('.carousel-image').css('width', '50vh').append($('
    ').addClass('mime-icon ico-' + item.icon)); + } + + carouselItem.find('.carousel-label').attr('target', '_blank').attr('href', item.url) + .append(item.name) + .append($('')); + + carousel.children('.carousel-inner').append(carouselItem); + + var carouselIndicator = indicatorTemplate.clone() + .addClass(index === 0 ? 'active' : '') + .attr('data-slide-to', index); + carousel.children('.carousel-indicators').append(carouselIndicator); + }); + + + // carousel swipe control + var touchStartX = null; + + carousel.on('touchstart', function (event) { + var e = event.originalEvent; + if (e.touches.length == 1) { + var touch = e.touches[0]; + touchStartX = touch.pageX; + } + }).on('touchmove', function (event) { + var e = event.originalEvent; + if (touchStartX != null) { + var touchCurrentX = e.changedTouches[0].pageX; + if ((touchCurrentX - touchStartX) > 60) { + touchStartX = null; + carousel.carousel('prev'); + } else if ((touchStartX - touchCurrentX) > 60) { + touchStartX = null; + carousel.carousel('next'); + } + } + }).on('touchend', function () { + touchStartX = null; + }); + // end carousel swipe control + + notify(carousel); +} + +function move(items) { + performLfmRequest('move', { items: items.map(function (item) { return item.name; }) }) + .done(refreshFoldersAndItems); +} + +function getUrlParam(paramName) { + var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i'); + var match = window.location.search.match(reParam); + return ( match && match.length > 1 ) ? match[1] : null; +} + +function use(items) { + function useTinymce3(url) { + if (!usingTinymce3()) { return; } + + var win = tinyMCEPopup.getWindowArg("window"); + win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = url; + if (typeof(win.ImageDialog) != "undefined") { + // Update image dimensions + if (win.ImageDialog.getImageData) { + win.ImageDialog.getImageData(); + } + + // Preview if necessary + if (win.ImageDialog.showPreviewImage) { + win.ImageDialog.showPreviewImage(url); + } + } + tinyMCEPopup.close(); + } + + function useTinymce4AndColorbox(url) { + if (!usingTinymce4AndColorbox()) { return; } + + parent.document.getElementById(getUrlParam('field_name')).value = url; + + if(typeof parent.tinyMCE !== "undefined") { + parent.tinyMCE.activeEditor.windowManager.close(); + } + if(typeof parent.$.fn.colorbox !== "undefined") { + parent.$.fn.colorbox.close(); + } + } + + function useTinymce5(url){ + if (!usingTinymce5()) { return; } + + parent.postMessage({ + mceAction: 'insert', + content: url + }); + + parent.postMessage({ mceAction: 'close' }); + } + + function useCkeditor3(url) { + if (!usingCkeditor3()) { return; } + + if (window.opener) { + // Popup + window.opener.CKEDITOR.tools.callFunction(getUrlParam('CKEditorFuncNum'), url); + } else { + // Modal (in iframe) + parent.CKEDITOR.tools.callFunction(getUrlParam('CKEditorFuncNum'), url); + parent.CKEDITOR.tools.callFunction(getUrlParam('CKEditorCleanUpFuncNum')); + } + } + + function useFckeditor2(url) { + if (!usingFckeditor2()) { return; } + + var p = url; + var w = data['Properties']['Width']; + var h = data['Properties']['Height']; + window.opener.SetUrl(p,w,h); + } + + var url = items[0].url; + var callback = getUrlParam('callback'); + var useFileSucceeded = true; + + if (usingWysiwygEditor()) { + useTinymce3(url); + + useTinymce4AndColorbox(url); + + useTinymce5(url); + + useCkeditor3(url); + + useFckeditor2(url); + } else if (callback && window[callback]) { + window[callback](getSelectedItems()); + } else if (callback && parent[callback]) { + parent[callback](getSelectedItems()); + } else if (window.opener) { // standalone button or other situations + window.opener.SetUrl(getSelectedItems()); + } else { + useFileSucceeded = false; + } + + if (useFileSucceeded) { + if (window.opener) { + window.close(); + } + } else { + console.log('window.opener not found'); + // No editor found, open/download file using browser's default method + window.open(url); + } +} +//end useFile + +// ================================== +// == WYSIWYG Editors Check == +// ================================== + +function usingTinymce3() { + return !!window.tinyMCEPopup; +} + +function usingTinymce4AndColorbox() { + return !!getUrlParam('field_name'); +} + +function usingTinymce5(){ + return !!getUrlParam('editor'); +} + +function usingCkeditor3() { + return !!getUrlParam('CKEditor') || !!getUrlParam('CKEditorCleanUpFuncNum'); +} + +function usingFckeditor2() { + return window.opener && typeof data != 'undefined' && data['Properties']['Width'] != ''; +} + +function usingWysiwygEditor() { + return usingTinymce3() || usingTinymce4AndColorbox() || usingTinymce5() || usingCkeditor3() || usingFckeditor2(); +} + +// ================================== +// == Others == +// ================================== + +function defaultParameters() { + return { + working_dir: $('#working_dir').val(), + type: $('#type').val() + }; +} + +function notImp() { + notify('Not yet implemented!'); +} + +function notify(body, callback) { + $('#notify').find('.btn-primary').toggle(callback !== undefined); + $('#notify').find('.btn-primary').unbind().click(callback); + $('#notify').modal('show').find('.modal-body').html(body); +} + +function dialog(title, value, callback) { + $('#dialog').find('input').val(value); + $('#dialog').on('shown.bs.modal', function () { + $('#dialog').find('input').focus(); + }); + $('#dialog').find('.btn-primary').unbind().click(function (e) { + callback($('#dialog').find('input').val()); + }); + $('#dialog').modal('show').find('.modal-title').text(title); +} diff --git a/public/vendor/laravel-filemanager/js/stand-alone-button.js b/public/vendor/laravel-filemanager/js/stand-alone-button.js new file mode 100644 index 0000000..18dfa28 --- /dev/null +++ b/public/vendor/laravel-filemanager/js/stand-alone-button.js @@ -0,0 +1,36 @@ +(function( $ ){ + + $.fn.filemanager = function(type, options) { + type = type || 'file'; + + this.on('click', function(e) { + var route_prefix = (options && options.prefix) ? options.prefix : '/filemanager'; + var target_input = $('#' + $(this).data('input')); + var target_preview = $('#' + $(this).data('preview')); + window.open(route_prefix + '?type=' + type, 'FileManager', 'width=900,height=600'); + window.SetUrl = function (items) { + var file_path = items.map(function (item) { + return item.url; + }).join(','); + + // set the value of the desired input to image url + target_input.val('').val(file_path).trigger('change'); + + // clear previous preview + target_preview.html(''); + + // set or change the preview image src + items.forEach(function (item) { + target_preview.append( + $('').css('height', '5rem').attr('src', item.thumb_url) + ); + }); + + // trigger change event + target_preview.trigger('change'); + }; + return false; + }); + } + +})(jQuery); diff --git a/routes/web.php b/routes/web.php index 4816907..1e4d96f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,5 +12,8 @@ Route::post('api/weibo/store', 'WeiboController@store'); Route::get('google/photo/connect', 'GooglePhotoController@connect'); Route::get('google/photo/index', 'GooglePhotoController@index'); Route::post("api/live/video/add", "LiveVideoController@add"); +Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () { + \UniSharp\LaravelFilemanager\Lfm::routes(); +});