92 Commits

Author SHA1 Message Date
NH Gooi
9698f9b103 Model classes van API repo naar deze repo verplaatst 2024-09-29 19:05:03 +02:00
NH Gooi
8d1e79f1b7 API eindpunt iets aangepast 2024-09-25 21:18:36 +02:00
NH Gooi
7f07a28b98 On air indicator in programmering 2024-09-23 22:02:53 +02:00
NH Gooi
cff9948dda Now playing aangepast tijdens live programma 2024-09-21 13:56:45 +02:00
NH Gooi
059b1ed47a Merge remote-tracking branch 'origin/dev' 2024-09-19 12:24:22 +02:00
NH Gooi
0699269fb2 Verwijder blogs want die gaven een fout 2024-09-19 12:17:33 +02:00
NH Gooi
a3e8b05008 Fix duplicate route 2024-09-12 15:48:21 +02:00
NH Gooi
389e5c6523 Fix duplicate route 2024-09-12 15:47:20 +02:00
ba06608ee0 Merge pull request 'release/live to main' (#7) from release/live into main
Reviewed-on: #7
2024-09-12 15:08:56 +02:00
8da0481296 Merge pull request 'release/dev to release/live' (#6) from release/dev into release/live
Reviewed-on: #6
2024-09-12 15:06:33 +02:00
885ce2b2cc Merge pull request 'Pull new-api into release/dev' (#5) from new-api into release/dev
Reviewed-on: #5
2024-09-12 15:04:09 +02:00
NH Gooi
6d91e1d3ca Uitgelicht podcast [#00028] 2024-09-12 14:06:28 +02:00
NH Gooi
5ebf7f20be API ondersteunt /stream en /download 2024-09-12 13:45:41 +02:00
NH Gooi
cc1eba5959 Luister popout gefixt 2024-09-10 20:54:56 +02:00
NH Gooi
3b55a1cf42 Spelling 2024-09-10 20:48:42 +02:00
NH Gooi
f4444d44e3 Lettertype en overflow fragment gefixt 2024-09-07 10:50:40 +02:00
NH Gooi
35713d2974 Parse ...Z date strings to local time correctly 2024-09-06 10:41:21 +02:00
NH Gooi
6044a670d7 Merge remote-tracking branch 'origin/release/live' into new-api 2024-07-04 14:49:44 +02:00
NH Gooi
173d9dcaf6 Favicon vervangen 2024-07-04 14:48:57 +02:00
NH Gooi
a7d1347319 Merge remote-tracking branch 'origin/release/live' into new-api 2024-07-02 21:11:07 +02:00
NH Gooi
92769463cd 500 error opgelost, dubbel Nieuws item uit menu gehaald 2024-07-02 21:09:54 +02:00
NH Gooi
47eb0952d4 Merge remote-tracking branch 'origin/release/live' into new-api 2024-07-02 17:25:40 +02:00
NH Gooi
e7bae27951 Podcasts en fragment gemist gescheiden 2024-07-02 17:23:50 +02:00
NH Gooi
50d6a97fce Regioagenda naar streekagenda hernoemd 2024-07-02 17:23:38 +02:00
NH Gooi
9d96efc022 Merge remote-tracking branch 'origin/release/live' into new-api 2024-07-02 15:33:38 +02:00
NH Gooi
539dd88d42 Content wijzigingen voor Petra en Leon plus een kleine CSS fix op toolbar 2024-07-02 15:32:48 +02:00
NH Gooi
d9c933b79a Merge branch 'release/live' into new-api 2024-07-02 15:04:47 +02:00
NH Gooi
84355b1121 Link naar TV aangepast 2024-07-02 14:34:29 +02:00
NH Gooi
70d25c3cea Podcast toegevoegd aan menu 2024-07-02 12:23:21 +02:00
NH Gooi
b628404977 Wijzigingen inhoud op verzoek Leon 2024-07-02 08:46:28 +02:00
NH Gooi
e1823a1322 Add file version to css to avoid agressive caching on Chrome 2024-07-02 08:33:48 +02:00
9364ebecad Merge pull request 'post-go-live' (#3) from post-go-live into release/live
Reviewed-on: #3
2024-07-01 11:48:45 +02:00
NH Gooi
16808e6280 Merge branch 'release/dev' into release/live 2024-07-01 11:43:13 +02:00
NH Gooi
e194e93784 Cookiestatement en privacyverklaring toegevoegd 2024-06-28 15:53:17 +02:00
NH Gooi
e551e55158 Lees ook... alleen laten zien als het naar loakle artikelen verwijst 2024-06-23 23:46:51 +02:00
NH Gooi
2799b1843f Podcasts en lees meer... toegevoegd aan nieuwsartikelen 2024-06-23 23:18:38 +02:00
NH Gooi
52f38b4c00 Inline podcastplayer toegevoegd 2024-06-22 22:58:22 +02:00
NH Gooi
e2f114a7a8 Podcast player embedded obv links in tekst 2024-06-22 22:47:20 +02:00
NH Gooi
cc58f5931c API key toegevoegd voor statistieken 2024-06-20 23:30:13 +02:00
NH Gooi
23d88ac143 Fix API call 2024-06-20 22:10:11 +02:00
NH Gooi
56adc60788 Merge branch 'release/dev' into new-api 2024-06-20 11:28:38 +02:00
NH Gooi
72da998965 TV Programmering toegevoegd 2024-06-20 11:25:43 +02:00
NH Gooi
2db970e8c6 Nieuwe API aanpassingen 2024-06-18 22:04:46 +02:00
NH Gooi
80256669b1 Wijzigingen voor nieuwe API 2024-06-17 23:11:07 +02:00
NH Gooi
738107515c Wijzigingen voor nieuwe API 2024-06-15 22:45:53 +02:00
NH Gooi
e96198bc3d Document aangepast voor Leon 2024-06-02 21:15:16 +02:00
NH Gooi
c5b9e88ad3 TV programmering toegevoegd aan TV menu 2024-05-28 15:32:25 +02:00
Jorit Tijsen
7c05b92703 Show only icons if search is opened 2024-05-17 15:25:40 +02:00
Jorit Tijsen
9ae62ab798 Fix: change background of selected menu item corner for grey background 2024-05-15 14:05:05 +02:00
Jorit Tijsen
d495cdde37 Move class grey_background to parent class 2024-05-14 15:05:39 +02:00
Jorit Tijsen
644d4f9b12 Remove "Deel op Facebook" 2024-05-14 13:47:18 +02:00
Jorit Tijsen
5948154ae1 Merge branch 'release/dev' of https://git.nhgooi.nl/NH_Gooi/nhgooi.nl into release/dev 2024-05-14 13:44:38 +02:00
Jorit Tijsen
d75ab273ff Changed primary menu order
Increase size logo and slogan
Align menu item in bar better
Fix: grey background in menu
2024-05-14 13:44:11 +02:00
NH Gooi
909126c05a Link naar nieuwe podcast toegevoegd 2024-05-13 21:21:17 +02:00
Jorit Tijsen
077fb0236f Change favicon 2024-05-08 15:36:53 +02:00
Jorit Tijsen
ecfbb47f1e Disable banner by env file
Favicon aanpassen
Logo aanpassen + subtitel toevoegd
Tab ‘Nieuws’ uit het menu gehaalt
Menu item ‘Gemist’ in menu plaaten
App uit menu balk
Adverteren toevoegen aan blauwe balk
Wat draait in sidebar NH Gooi Radio Live
Footer tekst
NAW toevoegen aan contact pagina
Op contactpagina: Chef redactie
Delen bericht
2024-05-06 15:08:19 +02:00
Jorit Tijsen
e06ecf297f Fix: calendar image 2024-05-06 13:33:03 +02:00
Jorit Tijsen
684cba6085 Add docker dev 2024-05-06 13:32:23 +02:00
NH Gooi
e0c11c50f5 Update docker files to build correctly in fresh container 2024-04-25 16:26:24 +02:00
34ca1486bd Merge pull request 'Merge release/dev to release/live' (#1) from release/dev into release/live
Reviewed-on: #1
2024-04-25 15:49:00 +02:00
Jorit Tijsen
6220a405a3 Added dummy data to calendar events
Styled calendar pages
2024-04-24 16:57:02 +02:00
Jorit Tijsen
239bff06ce Retry calculate add size if is not working 2024-04-19 15:46:16 +02:00
Jorit Tijsen
8fcd34759f Change sidebar box width to auto 2024-04-19 15:36:14 +02:00
Jorit Tijsen
4db20ca296 Calculate adds sizes
Trim white-spaces for share buttons
Increase header with 1 pixel
2024-04-19 15:25:00 +02:00
Jorit Tijsen
e7459cf026 Added header ad 2024-04-09 11:41:31 +02:00
Jorit Tijsen
26f9a71061 Auto adjust the ads height 2024-04-09 10:31:12 +02:00
Jorit Tijsen
9370b21d84 Small mobile header icons fix 2024-04-09 10:19:22 +02:00
Jorit Tijsen
be485c7300 Add ad version 0.2 2024-04-09 10:15:56 +02:00
Jorit Tijsen
c81ba184b3 Add ad version 0.1 2024-04-08 17:19:26 +02:00
Jorit Tijsen
58e291d0d3 Change adverteren text 2024-04-08 16:31:59 +02:00
Jorit Tijsen
f4ba89a6eb Fix menu on news page 2024-04-08 10:06:55 +02:00
Jorit Tijsen
9c80727a03 Small fixes 2024-04-05 16:07:59 +02:00
Jorit Tijsen
4aa1fef3ad New mobile header
Add job pages
More news button on home page links to news page
Small mobile fixes for new page and other pages
2024-04-03 16:38:10 +02:00
Jorit Tijsen
249f7a7d4c Add favicon
Change logo
Add luister and kijk icons
Tip de streekredactie points to whatsapp 088-8505651
Add s to Podcast
Removed waterschapsverkiezingen from menu
Podcast autoplay disabled
Remove Gooische Courant and NH Nieuws
Changed NH Gooi to Over NH Gooi
Added padding and border-radios to homepage posts
Changed header 12px to 14px
Add now and next programs to homepage
Add new button to programs
Changed contact text
Add fallback image to program guide
Make items height equally in program guide
2024-04-02 17:42:39 +02:00
Jorit Tijsen
cdd394a8d4 Full width feature posts 2024-03-22 16:10:57 +01:00
Jorit Tijsen
6041398e10 Style the job pages
Style the image page
Small fixes
2024-03-22 15:44:34 +01:00
Jorit Tijsen
1d94e7da7f Add some variables to the scss files
Use the period API call for the program schema
2024-03-20 17:54:10 +01:00
Jorit Tijsen
25b3d41bf1 Add scroll to top function
Add share buttons to news item
Add logo to footer
2024-03-20 15:13:59 +01:00
Jorit Tijsen
180c5d01be Fix news title item on mobile 2024-03-20 12:53:28 +01:00
Jorit Tijsen
46a39588de Add minified css style 2024-03-20 12:46:19 +01:00
Jorit Tijsen
fd2b17689c Remove last menu item bottom line 2024-03-20 12:42:52 +01:00
Jorit Tijsen
5b9dc7c7f3 Add mobile styling 2024-03-20 12:31:55 +01:00
Jorit Tijsen
04b4a3b3e5 Style cookie popover
Add 3 new pages
Link the links in the footer
2024-03-19 09:34:58 +01:00
Jorit Tijsen
742c126a0a Add postcast styling
Add prettyPhoto
2024-03-18 17:17:54 +01:00
Jorit Tijsen
8ce3a1d7b3 Bugfix: javascript error 2024-03-15 18:26:06 +01:00
Jorit Tijsen
38410b00c7 Switch animations for onair tag 2024-03-15 18:16:31 +01:00
Jorit Tijsen
6d5eff146d Change onair tag style 2024-03-15 18:12:31 +01:00
Jorit Tijsen
43c14de45d Changed onair animation 2024-03-15 18:10:52 +01:00
Jorit Tijsen
5187062cb1 Styled pages missed program and fragment missed 2024-03-15 17:46:43 +01:00
Jorit Tijsen
eaea761366 BUGFIX: player class duplicated use. 2024-03-15 13:40:06 +01:00
Jorit Tijsen
1a8bbeb084 Most pages are now styled.
Small changes to existing pages.
Changes to base layout style.
2024-03-15 13:35:43 +01:00
Jorit Tijsen
a0baa0230f Added radio page 2024-03-13 17:44:35 +01:00
170 changed files with 8007 additions and 3234 deletions

39
.env.example Normal file
View File

@@ -0,0 +1,39 @@
APP_NAME="NH Gooi"
APP_ENV=production
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APP_DEBUG=false
APP_LOG_LEVEL=error
APP_URL=https://dev.nhgooi.nl
IMAGE_BASE_URL=https://dev.nhgooi.nl
API_URL=https://api.nhgooi.nl/
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=in-v3.mailjet.com
MAIL_PORT=25
MAIL_USERNAME=mailjet_username
MAIL_PASSWORD=mailjet_password
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
DB_CONNECTION=mysql
DB_HOST=nhgooi.nl
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=6fmstats
DB_PASSWORD=dbpass
CACHE_DRIVER=file
QUEUE_DRIVER=sync

View File

@@ -27,12 +27,12 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
WORKDIR /var/www/html WORKDIR /var/www/html
COPY . /var/www/html # COPY . /var/www/html
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \ RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
chown -R www-data:www-data storage/framework && \ chown -R www-data:www-data storage/framework && \
chmod -R 775 storage chmod -R 775 storage
# RUN php artisan cache:clear && \ RUN php artisan cache:clear && \
# php artisan config:clear && \ php artisan config:clear && \
# php artisan view:clear php artisan view:clear

38
Dockerfile.dev Normal file
View File

@@ -0,0 +1,38 @@
FROM php:8.1-apache
RUN apt-get update \
&& apt-get -y install \
g++ \
libcurl4-gnutls-dev \
libxml2-dev \
libxslt-dev \
libzip-dev \
zlib1g-dev \
msmtp \
unzip \
git \
ssl-cert \
locales \
--no-install-recommends \
&& docker-php-ext-install pdo pdo_mysql mysqli xsl xml zip opcache \
&& a2enmod rewrite ssl proxy proxy_http headers \
&& apt-get purge -y g++ \
&& apt-get autoremove -y \
&& rm -r /var/lib/apt/lists/*
# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Update the default apache site with the config we created.
ADD docker/apache.dev.conf /etc/apache2/sites-enabled/000-default.conf
WORKDIR /var/www/html
COPY . /var/www/html
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
chown -R www-data:www-data storage/framework && \
chmod -R 775 storage
# RUN php artisan cache:clear && \
# php artisan config:clear && \
# php artisan view:clear

View File

@@ -12,18 +12,18 @@ class CalendarController extends Controller
$apiResult = $this->API('agenda/item/' . (int)$id); $apiResult = $this->API('agenda/item/' . (int)$id);
$calendarEvent = new \Model\CalendarEvent($apiResult); $calendarEvent = new \Model\CalendarEvent($apiResult);
return view('calendarevent', ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]); return view('calendarevent', array_merge($this->getSidebareData(), ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]));
} }
public function overview(Request $request) public function overview(Request $request)
{ {
$apiResult = $this->API('agenda/overzicht'); $apiResult = $this->API('agenda/overzicht');
$calendar = []; $calendar = [];
foreach($apiResult as $calendarItem) foreach($apiResult->events as $calendarItem)
{ {
$calendar[] = new \Model\CalendarEvent($calendarItem); $calendar[] = new \Model\CalendarEvent($calendarItem);
} }
return view('calendarlist', ['events' => $calendar]); return view('calendarlist', array_merge($this->getSidebareData(), ['events' => $calendar]));
} }
} }

View File

@@ -2,11 +2,11 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
@@ -15,124 +15,159 @@ class Controller extends BaseController
{ {
use AuthorizesRequests, DispatchesJobs, ValidatesRequests; use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $API_URL; protected $API_URL;
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0) private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
{ {
$data = json_decode(Storage::disk('local')->get($file)); $data = json_decode(Storage::disk('local')->get($file));
foreach($path as $subobject) { $data = $data->$subobject; } foreach ($path as $subobject) {
$items = []; $data = $data->$subobject;
foreach($data as $item_data)
{
$items[] = new $class($item_data);
if($maxItems && count($items) == $maxItems) { break; }
}
return $items;
} }
$items = [];
foreach ($data as $item_data) {
$items[] = new $class($item_data);
if ($maxItems && count($items) == $maxItems) {
break;
}
}
return $items;
}
public function __construct() public function __construct()
{ {
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/')); View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
View::share('imgBase', env('IMAGE_BASE_URL', '/')); View::share('imgBase', env('IMAGE_BASE_URL', '/'));
$blogs = $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1); //View::share('onAir', file_get_contents(url('onair')));
$activeBlog = count($blogs) && $blogs[0]->is_active ? $blogs[0] : null; View::composer('widgets.laatstenieuws', function ($view) {
View::share('activeBlog', $activeBlog); $view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
});
View::composer('widgets.populairnieuws', function ($view) {
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
});
View::composer('widgets.nustraks', function ($view) {
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
$programs = [];
foreach ($data as $item_data) {
$programs[] = $program = new \Model\Program($item_data->program);
$program->start = self::JsonToDateTime($item_data->start);
$program->end = self::JsonToDateTime($item_data->end);
}
// Need a bit of slack here, otherwise the current program may show up
$now = new \DateTimeImmutable('2 minutes ago');
$data = json_decode(Storage::disk('local')->get('zojuist.json'))->schedule;
$i = 0;
foreach (array_reverse($data) as $item_data) {
$recent = $program = new \Model\Program($item_data->program);
$recent->start = self::JsonToDateTime($item_data->start);
$recent->end = self::JsonToDateTime($item_data->end);
if (($recent->end < $now) && (!$recent->nonstop) && (!$recent->rerun)) {
$view->with('recent', $recent);
break;
}
}
//View::share('onAir', file_get_contents(url('onair'))); $view->with('data', $programs);
View::composer('widgets.laatstenieuws', function($view) { });
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem')); View::composer('widgets.laatstepodcasts', function ($view) {
}); $view->with('data',
View::composer('widgets.populairnieuws', function($view) { $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem')); });
}); View::composer('widgets.regioagenda', function ($view) {
View::composer('widgets.nustraks', function($view) { $view->with('data', $this->getDataFromFileAndConvert('regioagenda.json', [], '\Model\CalendarEvent'));
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule; });
$programs = []; View::composer('widgets.beelden', function ($view) {
foreach($data as $item_data) $view->with('data', $this->getDataFromFileAndConvert('beelden.json', ['items'], '\Model\NewsItem'));
{ });
$programs[] = $program = new \Model\Program($item_data->program); View::composer('widgets.menu', function ($view) {
$program->start = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone)); $view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'))
$program->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone)); ->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem', 3))
} ->with('podcasts',
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
});
// Need a bit of slack here, otherwise the current program may show up View::share('disableBanners', env('DISABLE_BANNERS', true));
$now = new \DateTimeImmutable('2 minutes ago');
$data = json_decode(Storage::disk('local')->get('zojuist.json'))->schedule;
$i = 0;
foreach(array_reverse($data) as $item_data)
{
$recent = $program = new \Model\Program($item_data->program);
$recent->start = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone));
$recent->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone));
if(($recent->end < $now) && (!$recent->nonstop) && (!$recent->rerun)) {
$view->with('recent', $recent);
break;
}
}
$view->with('data', $programs);
});
View::composer('widgets.laatstepodcasts', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
});
View::composer('widgets.regioagenda', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('regioagenda.json', [], '\Model\CalendarEvent'));
});
View::composer('widgets.beelden', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('beelden.json', ['items'], '\Model\NewsItem'));
});
View::composer('widgets.menu', function($view) {
$view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'))
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem', 3))
->with('podcasts', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
});
} }
protected function registerView(Request $request, $type, $id) protected function registerView(Request $request, $type, $id)
{ {
if(config('app.env') == 'local') { if (config('app.env') == 'local') {
return; return;
} }
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)', [ app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
'type' => $type, [
'id' => $id, 'type' => $type,
'ip' => $request->server('REMOTE_ADDR'), 'id' => $id,
'session' => md5(Session::getId()), 'ip' => $request->server('REMOTE_ADDR'),
'referer' => $request->server('HTTP_REFERRER') 'session' => md5(Session::getId()),
]); 'referer' => $request->server('HTTP_REFERRER')
]);
} }
protected function API($url) protected function API($url)
{ {
// if (strpos($url, 'nieuws/overzicht') !== false) { $arrContextOptions = [
// return json_decode(file_get_contents(__DIR__ . '/../../../storage/app/laatste_nieuws.json'));
// }
// return [];
$arrContextOptions= [
'ssl' => [ 'ssl' => [
"verify_peer"=>false, "verify_peer" => false,
"verify_peer_name"=>false, "verify_peer_name" => false,
], ],
'http' => [
'method' => 'GET',
'header' => 'X-Api-Key: ' . sha1(request()->server('REMOTE_ADDR')) . "\r\n"
. 'X-User-Agent: ' . request()->server('HTTP_USER_AGENT') . "\r\n"
]
]; ];
return json_decode(file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions))); return json_decode(file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions)));
} }
protected static function JsonToDateTime($obj) protected function checkAPI($url)
{ {
return new \DateTime($obj->date, new \DateTimeZone($obj->timezone)); return $this->get_http_response_code($this->API_URL . $url);
} }
public function __call($method, $arguments) { protected function get_http_response_code($url)
if(substr($method, 0, 5) == 'view_') { {
$view = substr($method, 5); $headers = get_headers($url);
if(view()->exists($view)) { return view($view); } return substr($headers[0], 9, 3);
} }
return abort(404);
protected static function JsonToDateTime($obj)
{
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : \Carbon\Carbon::parse($obj)->setTimezone(date_default_timezone_get());
}
public function __call($method, $arguments)
{
if (substr($method, 0, 5) == 'view_') {
$view = substr($method, 5);
if (view()->exists($view)) {
return view($view);
}
}
return abort(404);
}
public function getSidebareData()
{
$populair = [];
$apiResult = $this->API('nieuws/populair?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem);
}
$newsItems = [];
$apiResult = $this->API('nieuws/overzicht?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$newsItems[] = new \Model\NewsItem($_newsItem);
}
return ['newsItems' => $newsItems, 'populair' => $populair];
} }
} }

View File

@@ -2,36 +2,29 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use \Model\NewsItem; use \Model\NewsItem;
class HomeController extends Controller class HomeController extends Controller
{ {
public function show() public function show(Request $request)
{ {
$apiResult = $this->API('nieuws/overzicht?aantal=12'); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=10');
$news = []; $news = [];
foreach($apiResult->news as $newsItem) foreach ($apiResult->news as $newsItem) {
{ $news[] = new \Model\NewsItem($newsItem);
$news[] = new \Model\NewsItem($newsItem); }
$populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem);
} }
$apiResult = $this->API('programma/schema/nustraks'); $apiResult = $this->API('podcast/overzicht?aantal=15');
$comingUp = []; $index = array_rand($apiResult->podcasts);
foreach($apiResult->schedule as $program) $podcast = new \Model\Podcast($apiResult->podcasts[$index]);
{ return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
$comingUp[] = [
'start' => self::JsonToDateTime($program->start),
'end' => self::JsonToDateTime($program->end),
'program' => new \Model\Program($program->program)
];
}
$apiResult = $this->API('podcast/overzicht?aantal=20');
$podcasts = [];
foreach($apiResult->podcasts as $podcast) {
$podcasts[] = new \Model\Podcast($podcast);
}
return view('home', ['news' => $news, 'podcasts' => $podcasts, 'comingUp' => $comingUp]);
} }
} }

View File

@@ -18,7 +18,7 @@ class JobsController extends Controller
parent::registerView($request, 'nieuws', $id); parent::registerView($request, 'nieuws', $id);
$apiResult = $this->API('vacatures/details/' . $id); $apiResult = $this->API('vacatures/details/' . $id);
$jobsItem = new \Model\JobOpening($apiResult->item); $jobsItem = new \Model\JobOpening($apiResult->item);
return view('jobsitem', ['job' => $jobsItem, 'metadata' => $jobsItem->metadata]); return view('jobsitem', array_merge($this->getSidebareData(), ['job' => $jobsItem, 'metadata' => $jobsItem->metadata]));
} }
public function overview(Request $request) public function overview(Request $request)
@@ -29,14 +29,14 @@ class JobsController extends Controller
private function listJobs(Request $request, $url, $title = null) private function listJobs(Request $request, $url, $title = null)
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page)); #$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page));
$jobs = []; $jobs = [];
foreach($apiResult->jobs as $jobsItem) #foreach($apiResult->jobs as $jobsItem)
{ #{
$jobs[] = new \Model\JobOpening($jobsItem); # $jobs[] = new \Model\JobOpening($jobsItem);
} #}
return view('jobslist', ['title' => $title, 'jobs' => $jobs]); return view('jobslist', array_merge($this->getSidebareData(), ['title' => $title, 'jobs' => $jobs]));
//return view($request->ajax() ? 'partial/jobslist_small' : ($title == null ? 'home' : 'jobslist'), ['title' => $title, 'jobs' => $jobs, 'searchURL' => 'vacatures/zoeken']); //return view($request->ajax() ? 'partial/jobslist_small' : ($title == null ? 'home' : 'jobslist'), ['title' => $title, 'jobs' => $jobs, 'searchURL' => 'vacatures/zoeken']);
} }

View File

@@ -27,7 +27,7 @@ class NewsController extends Controller
break; break;
case 2: case 2:
$source = $apiResult->source; $source = $apiResult->source->article;
$newsItem->published = self::TimestampToDateTime($source->created); $newsItem->published = self::TimestampToDateTime($source->created);
$newsItem->edited = self::TimestampToDateTime($source->updated); $newsItem->edited = self::TimestampToDateTime($source->updated);
$newsItem->author = $source->author; $newsItem->author = $source->author;
@@ -35,19 +35,9 @@ class NewsController extends Controller
$newsItem->video = null; // Videos will be embedded $newsItem->video = null; // Videos will be embedded
$newsItem->content = $source->blocks; $newsItem->content = $source->blocks;
$populair = [];
$apiResult = $this->API('nieuws/populair?aantal=5');
foreach ($apiResult as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem);
}
$newsItems = [];
$apiResult = $this->API('nieuws/overzicht?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$newsItems[] = new \Model\NewsItem($_newsItem);
}
return view('newsitem', ['newsItems' => $newsItems, 'populair' => $populair, 'news' => $newsItem, 'metadata' => $newsItem->metadata]); return view('newsitem', array_merge($this->getSidebareData(), ['news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
} }
} }
@@ -75,21 +65,26 @@ class NewsController extends Controller
$id = $request->get('id', ''); $id = $request->get('id', '');
$populair = []; $populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5'); $apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
foreach ($apiResult as $_newsItem) { foreach ($apiResult->news as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem); $populair[] = new \Model\NewsItem($_newsItem);
} }
return view('partial/newslist_small', ['id' => $id, 'news' => $populair]); return view('partial/newslist_small', ['id' => $id, 'news' => $populair]);
} }
public function taglist(Request $request, $tag)
{
return $this->listNews($request, 'tag/' . $tag, ucfirst($tag));
}
public function regionlist(Request $request, $region) public function regionlist(Request $request, $region)
{ {
return $this->listNews($request, 'regio/' . $region, ucfirst($region)); return $this->listNews($request, 'tag/' . $region, ucfirst($region));
} }
public function themelist(Request $request, $theme) public function themelist(Request $request, $theme)
{ {
return $this->listNews($request, 'thema/' . $theme, ucfirst($theme)); return $this->listNews($request, 'tag/' . $theme, ucfirst($theme));
} }
public function search(Request $request, $query) public function search(Request $request, $query)
@@ -139,6 +134,9 @@ class NewsController extends Controller
private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null) private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null)
{ {
if ($request->ajax()) {
$total = 5;
}
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : '')); $apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
$news = []; $news = [];
@@ -147,15 +145,13 @@ class NewsController extends Controller
} }
$populair = []; $populair = [];
if ($url == 'overzicht') { if ($title == null) {
if ($title == null) { $total = 5;
$total = 5; }
} $apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
$page) . ($total ? '&aantal=' . $total : '')); foreach ($apiResult->news as $newsItem) {
foreach ($apiResult as $newsItem) { $populair[] = new \Model\NewsItem($newsItem);
$populair[] = new \Model\NewsItem($newsItem);
}
} }
$podcast = null; $podcast = null;
@@ -168,14 +164,20 @@ class NewsController extends Controller
} }
} }
return view($request->ajax() ? ($title == null ? 'partial/home_newslist_small' : 'partial/newslist_small') : ($title == null ? 'home' : 'newslist'), ['populair' => $populair, 'podcasts' => $podcasts, 'podcast' => $podcast, 'id' => $id, 'title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']); $newsItems = [];
$apiResult = $this->API('nieuws/overzicht?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$newsItems[] = new \Model\NewsItem($_newsItem);
}
return view($request->ajax() ? ($title == null ? 'partial/home_newslist_small' : 'partial/newslist_small') : ($title == null ? 'news' : 'newslist'), ['populair' => $populair, 'newsItems' => $newsItems, 'podcasts' => $podcasts, 'podcast' => $podcast, 'id' => $id, 'title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
} }
public function popular() public function popular()
{ {
$apiResult = $this->API('nieuws/populair'); $apiResult = $this->API('nieuws/populair');
$news = []; $news = [];
foreach ($apiResult as $newsItem) { foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem); $news[] = new \Model\NewsItem($newsItem);
} }

View File

@@ -22,21 +22,30 @@ class PodcastController extends Controller
private function getPodcastList(Request $request, $action, $viewData = []) private function getPodcastList(Request $request, $action, $viewData = [])
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=100'); $apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=8');
$podcasts = []; $podcasts = [];
foreach($apiResult->podcasts as $podcast) foreach($apiResult->podcasts as $podcast)
{ {
$podcasts[] = new \Model\Podcast($podcast); $podcasts[] = new \Model\Podcast($podcast);
} }
return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken'])); return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => true]));
} }
public function podcast(Request $request, $id) public function podcast(Request $request, $id)
{ {
parent::registerView($request, 'podcast', $id); parent::registerView($request, 'podcast', $id);
$apiResult = $this->API('podcast/details/' . (int)$id); $apiResult = $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult); $podcast = new \Model\Podcast($apiResult);
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]); $podcasts = [];
if($podcast->program) {
$apiResult = $this->API('podcast/programma/' . (int)$podcast->program->id . '?pagina=1&aantal=5');
$podcasts = [];
foreach($apiResult->podcasts as $p)
{
$podcasts[] = new \Model\Podcast($p);
}
}
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'isPodcast' => true]);
} }
} }

View File

@@ -7,23 +7,38 @@ use \Model\Programma;
class RadioController extends Controller class RadioController extends Controller
{ {
public function schedule(Request $request, $shiftWeeks = 0) public function schedule(Request $request, $date = '')
{ {
$apiResult = $this->API('programma/schema/week/' . (int)$shiftWeeks); $start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d');
$start = self::JsonToDateTime($apiResult->startdate); $end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d');
$end = self::JsonToDateTime($apiResult->enddate); $apiResult = $this->API('programma/schema/periode/' . $start . '/' . $end);
$schedule = []; $schedule = [];
foreach($apiResult->schedule as $program) foreach($apiResult->schedule as $program)
{ {
$schedule[] = [ $schedule[self::JsonToDateTime($program->start)->format('Ymd')][] = [
'starttime' => self::JsonToDateTime($program->start), 'starttime' => self::JsonToDateTime($program->start),
'endtime' => self::JsonToDateTime($program->end), 'endtime' => self::JsonToDateTime($program->end),
'shift' => (int)$shiftWeeks, 'shift' => 0,
'program' => new \Model\Program($program->program) 'program' => new \Model\Program($program->program)
]; ];
} }
return view($request->ajax() ? 'radioscheduleweek' : 'radioschedule', ['start' => $start, 'end' => $end, 'schedule' => $schedule, 'shift' => $shiftWeeks]); if ($date) {
$days = [
'custom' => (new \DateTime($date))->format('Ymd'),
];
} else {
$days = [
'day_before_yesterday' => (new \DateTime("-2 day"))->format('Ymd'),
'yesterday' => (new \DateTime("yesterday"))->format('Ymd'),
'today' => (new \DateTime("now"))->format('Ymd'),
'tomorrow' => (new \DateTime("+1 day"))->format('Ymd'),
'day_after_tomorrow' => (new \DateTime("+2 day"))->format('Ymd'),
'custom' => (new \DateTime($date))->format('Ymd'),
];
}
return view($request->ajax() ? 'partial/radioscheduleweek' : 'radioschedule', ['start' => $start, 'end' => $end, 'schedule' => $schedule, 'shift' => 0, 'days' => $days, 'date' => $date]);
} }
public function onair() public function onair()
@@ -38,23 +53,25 @@ class RadioController extends Controller
return view('radioprogram', ['program' => new \Model\Program($apiResult)]); return view('radioprogram', ['program' => new \Model\Program($apiResult)]);
} }
public function podcast(Request $request, $id) public function podcast(Request $request, $id, $title = '')
{ {
if($this->checkAPI('podcast/details/' . (int)$id) != "200"){
return view('podcastitem', array_merge($this->getSidebareData(), ['title' => $title, 'podcast' => null, 'metadata' => null, 'related' => [], 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
}
parent::registerView($request, 'podcast', $id); parent::registerView($request, 'podcast', $id);
$apiResult = $this->API('podcast/details/' . (int)$id); $apiResult = $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult); $podcast = new \Model\Podcast($apiResult);
$related = []; $page = (int)$request->get('pagina', 1);
if($podcast->program != null) $apiResult = $this->API('podcast/overzicht?pagina=' . (int)max(1, $page) . '&aantal=6');
$podcasts = [];
foreach($apiResult->podcasts as $_podcast)
{ {
$apiRelated = $this->API("podcast/programma/{$podcast->program->id}?date={$podcast->created->format('Y-m-d')}"); $podcasts[] = new \Model\Podcast($_podcast);
foreach($apiRelated->podcasts as $relatedItem)
{
$related[] = new \Model\Podcast($relatedItem);
}
} }
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'related' => $related, 'searchURL' => 'gemist/zoeken']); return view($request->ajax() ? 'partial/podcastitems' : 'podcastitem', ['title' => $title, 'podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]);
} }
public function podcasts(Request $request, $programma = null) public function podcasts(Request $request, $programma = null)
@@ -66,7 +83,7 @@ class RadioController extends Controller
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma)); $viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
} }
return $this->getPodcastList($request, $action, $viewData); return $this->getPodcastList($request, $action, array_merge($this->getSidebareData(), $viewData));
} }
public function searchpodcast(Request $request, $query) public function searchpodcast(Request $request, $query)
@@ -78,7 +95,8 @@ class RadioController extends Controller
{ {
$programs = []; $programs = [];
$now = new \DateTimeImmutable('2 minutes ago'); $now = new \DateTimeImmutable('2 minutes ago');
$apiResult = $this->API('programma/schema/recent'); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('programma/schema/recent?pagina=' . (int)max(1, $page) . '&aantal=12');
foreach($apiResult->schedule as $item) { foreach($apiResult->schedule as $item) {
if(!$item->program->nonstop && !$item->program->rerun) { if(!$item->program->nonstop && !$item->program->rerun) {
$item->start = self::JsonToDateTime($item->start); $item->start = self::JsonToDateTime($item->start);
@@ -89,7 +107,7 @@ class RadioController extends Controller
} }
} }
return view('programlist', ['programs' => array_reverse($programs)]); return view($request->ajax() ? 'partial/programitems' : 'programlist', ['programs' => array_reverse($programs), 'isPodcast' => false]);
} }
private function getPodcastList(Request $request, $action, $viewData = []) private function getPodcastList(Request $request, $action, $viewData = [])
@@ -102,7 +120,7 @@ class RadioController extends Controller
$podcasts[] = new \Model\Podcast($podcast); $podcasts[] = new \Model\Podcast($podcast);
} }
return view($request->ajax() ? 'partial.podcastitems' : 'podcastlist', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken'])); return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
} }
} }

View File

@@ -20,14 +20,25 @@ class StreamController extends Controller
public function livetv() public function livetv()
{ {
return view('watch', ['stream' => 'https://rrr.sz.xlcdn.com/?account=nhnieuws&file=nhgooi&type=live&service=wowza&protocol=https&output=playlist.m3u8']); return view('watch', ['title' => 'Kijk NH Gooi Tv', 'stream' => 'https://rrr.sz.xlcdn.com/?account=nhnieuws&file=nhgooi&type=live&service=wowza&protocol=https&output=playlist.m3u8']);
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/tv']); // return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/tv']);
} }
public function studio() public function studio()
{ {
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/live/studio']); // return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/live/studio']);
return view('watch', ['stream' => 'https://studiocam.nhgooi.nl/studiocam/live/index.m3u8']); return view('watch', ['title' => 'Kijk NH Gooi Tv Studio', 'stream' => 'https://studiocam.nhgooi.nl/studiocam/live/index.m3u8']);
}
public function inline(Request $request, $id)
{
$apiResult = $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult);
if(sha1($id . ':' . date('Y-m-d')) != $request->get('auth')) {
// return view('widgets/podcastplayer', ['podcast' => null]);
}
return view('widgets/podcastplayer', ['podcast' => $podcast]);
} }
public function podcast(Request $request, $id) public function podcast(Request $request, $id)
@@ -39,11 +50,11 @@ class StreamController extends Controller
} }
return view('listen', [ return view('listen', [
'source' => $this->API_URL . 'podcast/download' . $apiResult->url . '?auth=' . $podcast->auth, 'source' => $this->API_URL . 'podcast/stream/' . $apiResult->url,
'title' => $podcast->title, 'title' => $podcast->title,
'content' => $podcast->title, 'content' => $podcast->title,
'isStream' => false, 'isStream' => false,
'canDownload' => true ]); 'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
} }
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) { public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
@@ -58,7 +69,7 @@ class StreamController extends Controller
} }
return view('listen', [ return view('listen', [
'source' => $this->API_URL . 'programma/download/' . $current->format('Y/m/d/H') . '/1', 'source' => $this->API_URL . 'programma/stream/' . $current->format('Y/m/d/H'),
'tabs' => $hours, 'tabs' => $hours,
'title' => 'Uitzending terugluisteren', 'title' => 'Uitzending terugluisteren',
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur', 'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
@@ -77,10 +88,10 @@ class StreamController extends Controller
public function kerkdienst(Request $request) { public function kerkdienst(Request $request) {
return view('listen', [ return view('listen', [
'source' => $this->API_URL . 'kerkdienst/download', 'source' => $this->API_URL . 'kerkdienst/stream',
'title' => 'Kerkdienst gemist', 'title' => 'Kerkdienst gemist',
'content' => 'de kerkdienst van afgelopen zondag', 'content' => 'de kerkdienst van afgelopen zondag',
'isStream' => false, 'isStream' => false,
'canDownload' => true ]); 'canDownload' => $this->API_URL . 'kerkdienst/download' ]);
} }
} }

23
app/Models/Blog.php Normal file
View File

@@ -0,0 +1,23 @@
<?php
namespace Model;
class Blog extends Model {
public $id;
public $title;
public $description;
public $news_category;
public $start_date;
public $end_date;
public $is_active;
public $url;
public function __construct($data, $images = null, $podcast = null) {
parent::__construct($data);
parent::ConvertToDateTime($this->start_date);
parent::ConvertToDateTime($this->end_date);
$this->url = "/blog/{$this->id}/" . parent::url_slug($this->title);
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace Model;
class CalendarEvent extends Model {
public $id;
public $title;
public $region;
public $content;
public $starts;
public $ends;
public $images;
public $podcast;
public $video;
public $keywords;
public $url;
public $metadata;
public $tags;
public function __construct($data, $images = null, $podcast = null) {
parent::__construct($data);
parent::ConvertToDateTime($this->starts);
parent::ConvertToDateTime($this->ends);
$this->keywords = null;
if(isset($data->keywords)) {
if(is_array($data->keywords)) {
$this->keywords = $data->keywords;
} else if(trim($data->keywords)) {
$this->keywords = explode(' ', $data->keywords);
}
}
if($podcast)
{
$this->podcast = new \Model\Podcast($podcast);
} else if(isset($data->podcast) && $data->podcast) {
$this->podcast = new \Model\Podcast($data->podcast);
}
$images = ($images != null) ? $images
: (isset($data->images) ? $data->images : null);
if($images) {
$this->images = [];
foreach($images as $image) {
$this->images[] = new NewsImage($image, '/img/news/');
}
}
$this->url = "/agenda/{$this->id}/" . parent::url_slug($this->title);
$this->metadata = (new MetaData())
->set('title', $this->title)
->set('description', strip_tags($this->excerpt()))
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
;
}
public function excerpt() {
$hasImages = isset($this->images) && count($this->images) > 0;
$maxLength = $hasImages ? 200 : 500;
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
substr($this->content, 0, $maxLength) .
(strlen($this->content) > $maxLength ? '...' : '') .
'</p>';
}
}

61
app/Models/JobOpening.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
namespace Model;
class JobOpening extends Model {
public $id;
public $title;
public $content;
public $starts;
public $ends;
public $images;
public $url;
public function __construct($data, $images = null, $podcast = null) {
parent::__construct($data);
parent::ConvertToDateTime($this->starts);
parent::ConvertToDateTime($this->ends);
$this->keywords = null;
if(isset($data->keywords)) {
if(is_array($data->keywords)) {
$this->keywords = $data->keywords;
} else if(trim($data->keywords)) {
$this->keywords = explode(' ', $data->keywords);
}
}
if($podcast)
{
$this->podcast = new \Model\Podcast($podcast);
} else if(isset($data->podcast) && $data->podcast) {
$this->podcast = new \Model\Podcast($data->podcast);
}
$images = ($images != null) ? $images
: (isset($data->images) ? $data->images : null);
if($images) {
$this->images = [];
foreach($images as $image) {
$this->images[] = new NewsImage($image, '/img/news/');
}
}
$this->url = "/vacatures/{$this->id}/" . parent::url_slug($this->title);
$this->metadata = (new MetaData())
->set('title', $this->title)
->set('description', strip_tags($this->excerpt()))
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
;
}
public function excerpt() {
$hasImages = count($this->images) > 0;
$maxLength = $hasImages ? 200 : 500;
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
substr($this->content, 0, $maxLength) .
(strlen($this->content) > $maxLength ? '...' : '') .
'</p>';
}
}

26
app/Models/Kerkdienst.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
namespace Model;
class KerkdienstInstance extends Model {
public $name;
public $start;
public function __construct($data) {
parent::__construct($data);
parent::ConvertToDateTime($this->start);
}
}
class Kerkdienst extends Model {
public $isRunning;
public $previous;
public $next;
public function __construct($data) {
// parent::__construct($data);
$this->isRunning = $data->isRunning;
$this->previous = new KerkdienstInstance($data->previous);
$this->next = new KerkdienstInstance($data->next);
}
}

35
app/Models/MetaData.php Normal file
View File

@@ -0,0 +1,35 @@
<?php
namespace Model;
class MetaData {
private $data = ['type' => 'article', 'locale' => 'nl-nl'];
public function set($prop, $val) {
if($val) {
$this->data[$prop] = $val;
}
return $this;
}
public function append($prop, $val) {
if(array_key_exists($prop, $this->data)) {
$this->data[$prop] .= $val;
}
return $this;
}
public function prepend($prop, $val) {
if(array_key_exists($prop, $this->data)) {
$this->data[$prop] = $val . $this->data[$prop];
}
return $this;
}
public function metaTags() {
foreach($this->data as $prop => $val) {
if($val) {
echo "<meta property=\"og:$prop\" content=\"" . htmlentities($val) . "\" />\n";
}
}
}
}

64
app/Models/Model.php Normal file
View File

@@ -0,0 +1,64 @@
<?php
namespace Model;
class Model {
protected function ConvertToDateTime(&$field) {
if($field) {
// PHP7 JSON-encodes to {date: "", "timezone_type": ..., "timezone": "UTC" }
// In that case $field will be an object
if(is_object($field)) {
$field = ($field->timezone)
? new \DateTimeImmutable($field->date, new \DateTimeZone($field->timezone))
: (new \DateTimeImmutable($field->date));
} else {
// If $field is not an object, assume it's a plain, valid, string
$field = new \DateTime($field);
}
if($field === false || $field->getTimestamp() <= 0) {
// If field had data but is invalid DateTime or is 0000-00-00 00:00, set it to null.
$field = null;
} else {
// If valid, return local timezone
$field->setTimezone(new \DateTimeZone("Europe/Amsterdam"));
}
}
}
public function __construct($data) {
$class = get_class($this);
foreach($data as $key => $val) {
if(property_exists($class, $key)) {
$this->$key = is_string($val) ? stripslashes($val) : $val;
}
}
}
public function url_slug($text) {
// Alles naar kleine letter
$text = strtolower($text);
// Vervang accent-tekens door niet-geaccentueerde versies
// $text = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $text);
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$text = str_replace($search, $replace, $text);
// Verwijder alle woorden van 3 letters, behalve BEL (BEL-combinatie etc)
if(strlen($text) > 3) {
$text = preg_replace('/\b(?!bel|fm|nh)([a-z]{1,3})\b/u', '', $text);
}
// Vervang alles dat niet een woord-karakter is (letter, cijfer), een streepje of spatie
if(strlen($text) > 3) {
$text = preg_replace('/[^\w_\-\s]/', '', $text);
}
// Reeksen van één of meer spaties / streepjes vervangen door een enkel streepje
$text = preg_replace('/[\-\s]+/', '-', $text);
// Verwijder alle witruimte / streepjes aan begin en eind
return trim(strtolower($text), '-');
}
}

20
app/Models/NewsImage.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
namespace Model;
class NewsImage extends Model {
public $id;
public $title;
public $author;
public $url;
public function __construct($data, $urlPrefix = '/') {
parent::__construct($data);
// Deserialisatie van JSON heeft url in data,
// lezen uit database heeft file en (als het goed is) urlPrefix
if(isset($data->file)) {
$this->url = $urlPrefix . $data->file;
}
}
}

118
app/Models/NewsItem.php Normal file
View File

@@ -0,0 +1,118 @@
<?php
namespace Model;
require_once "NewsImage.php";
require_once "NewsSource.php";
require_once "MetaData.php";
class NewsItem extends Model {
public $id;
public $title;
public $author;
public $content;
public $published;
public $edited;
public $keywords;
public $source;
public $category;
public $theme;
public $region;
public $tags;
public $podcast;
public $images;
public $video;
public $url;
public $metadata;
public function __construct($data, $images = null, $podcast = null) {
parent::__construct($data);
parent::ConvertToDateTime($this->published);
parent::ConvertToDateTime($this->edited);
if($this->edited && ($this->edited->getTimestamp() - $this->published->getTimestamp() < 1800 /* == 30 minutes */)) {
// If last edit was within grace period, consider it unedited (note: currently RES always saves edited == published on creation)
$this->edited = null;
}
$this->source = null;
if(isset($data->source))
{
if(is_object($data->source))
{
$this->source = new \Model\NewsSource($data->source->title, $data->source->url, $data->source->show);
} else if($data->source) {
$this->source = new \Model\NewsSource($data->source, $data->source_url, $data->showsource);
}
}
if($podcast) {
$this->podcast = new \Model\Podcast($podcast);
} else if(isset($data->podcast) && $data->podcast) {
$this->podcast = new \Model\Podcast($data->podcast);
}
$this->keywords = null;
if(isset($data->keywords)) {
if(is_array($data->keywords) || is_object($data->keywords)) {
$this->keywords = $data->keywords;
} else if(trim($data->keywords)) {
$this->keywords = explode(' ', $data->keywords);
}
}
if(isset($data->region)) {
if(is_object($data->region)) {
$this->region = new \Model\NewsRegion($data->region->title, $data->region->slug);
} else {
$this->region = new \Model\NewsRegion($data->region, $data->region_slug);
}
}
if(isset($data->theme)) {
if(is_object($data->theme)) {
$this->theme = new \Model\NewsRegion($data->theme->title, $data->theme->slug);
} else {
$this->theme = new \Model\NewsRegion($data->theme, $data->theme_slug);
}
}
if(isset($data->tags)) {
foreach($data->tags as $tag) {
$this->theme = new \Model\NewsRegion($tag->titel, $tag->slug);
}
}
$images = ($images != null) ? $images
: (isset($data->images) ? $data->images : null);
if($images) {
$this->images = [];
foreach($images as $image) {
$this->images[] = new NewsImage($image, '/img/news/');
}
}
$this->url = "/nieuws/{$this->id}/" . parent::url_slug($this->title);
$this->metadata = (new MetaData())
->set('title', $this->title)
->set('description', strip_tags($this->excerpt()))
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
->set('video', isset($this->video) ? $this->video : null)
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
->set('article:published_time', $this->published->format('r'))
->set('article:modified_time', $this->edited ? $this->edited->format('r') : null)
;
}
public function excerpt() {
$hasImages = isset($this->images) && count($this->images) > 0;
$maxLength = $hasImages ? 200 : 500;
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
substr($this->content, 0, $maxLength) .
(strlen($this->content) > $maxLength ? '...' : '') .
'</p>';
}
}

25
app/Models/NewsSource.php Normal file
View File

@@ -0,0 +1,25 @@
<?php
namespace Model;
class NewsRegion {
public $title;
public $slug;
public function __construct($title, $slug = null) {
$this->title = $title;
$this->slug = $slug ? $slug : strtolower(str_replace(' ', '', $title));
}
}
class NewsSource {
public $title;
public $url;
public $show;
public function __construct($title, $url, $show) {
$this->title = $title;
$this->url = $url;
$this->show = $show;
}
}

94
app/Models/Podcast.php Normal file
View File

@@ -0,0 +1,94 @@
<?php
namespace Model;
require_once "NewsImage.php";
class Podcast extends Model {
public $id;
public $title;
public $content;
protected $soundfilename;
public $created;
public $program;
public $url;
public $auth;
public $download;
public $duration;
public $image;
public $metadata;
public $waveform;
private $key;
public function __construct($data) {
parent::__construct($data);
parent::ConvertToDateTime($this->created);
$this->url = '/' . $this->id . '/' . parent::url_slug($this->title) . '.mp3';
if($this->soundfilename) {
// Only generate when not constructing from a JSON object
$this->key = sha1($this->id . ':' . date('Y-m-d') . ':' . $this->soundfilename);
$this->auth = $this->key;
}
if(isset($data->program)) {
$this->program = null;
if(is_object($data->program)) {
$this->program = new \Model\Program($data->program);
} elseif($data->program) {
$this->program = new \Model\Program(['id' => $data->program, 'name' => $data->program_name, 'description' => $data->program_description]);
}
}
if(isset($data->imagefile)) {
$imagedata = new \stdClass();
$imagedata->id = $this->id;
$imagedata->file = $data->imagefile;
$imagedata->title = $data->imagecaption;
$this->image = new NewsImage($imagedata, '/img/podcast/');
}
if(isset($data->metadata, $data->metadata->waveform)){
$this->waveform = $data->metadata->waveform;
}
$this->metadata = (new MetaData())
->set('title', $this->title)
->set('description', strip_tags($this->excerpt()))
->set('image', isset($this->image) ? $this->image->url : null )
->set('audio', $this->url)
;
}
public function titleWithoutProgram() {
if(!$this->program) { return $this->title; }
return trim(str_replace($this->program->name, '', $this->title), "- \t\n\r\0\x0B");
}
public function isValidAuth($key) {
return ($key == $this->key);
}
public function getSoundfile() {
return '/var/audio/podcast/' . $this->soundfilename;
}
public function formatDuration() {
$seconds = $this->duration / 1000;
$milliseconds = $this->duration % 1000;
$hours = ($seconds > 3600) ? floor($seconds / 3600) : 0;
$seconds %= 3600;
return str_pad($hours, 2, '0', STR_PAD_LEFT)
. gmdate(':i:s', $seconds)
;//. ($milliseconds ? ".$milliseconds" : '') ;
}
public function excerpt() {
$maxLength = 500;
return '<p class="news-excerpt long">' .
substr($this->content, 0, $maxLength) .
(strlen($this->content) > $maxLength ? '...' : '') .
'</p>';
}
}

55
app/Models/Program.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
namespace Model;
class Program extends Model {
public $id;
public $name;
public $tagline;
public $description;
public $email;
public $nonstop;
public $rerun;
public $priority;
public $image;
public $hosts;
public $recent;
public $next;
public function __construct($data) {
parent::__construct($data);
if(isset($data->suffix) && $data->suffix) {
$this->name .= ' ' . $data->suffix;
}
if($this->recent && $this->recent) {
foreach($this->recent as &$recent) {
parent::ConvertToDateTime($recent->starts);
parent::ConvertToDateTime($recent->ends);
}
}
if($this->next && $this->next) {
foreach($this->next as &$next) {
parent::ConvertToDateTime($next->starts);
parent::ConvertToDateTime($next->ends);
}
}
if(isset($data->email) && ($mailComma = strpos($data->email, ',')) !== false) {
$this->email = substr($data->email, 0, $mailComma);
}
if(isset($data->state)) {
$this->nonstop = $data->state == 0;
$this->rerun = $data->state == 3;
}
$this->url = "/{$this->id}/" . parent::url_slug($this->name);
}
public function isSpecial() {
return ($this->priority < 2);
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace Model;
class ProgramHost extends Model {
public $id;
public $name;
public $email;
}

47
app/Models/Track.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
namespace Model;
class Track extends Model {
public $start;
public $itemCode;
public $title;
public $artist;
public $duration;
public $ends;
public $isLayout;
public function __construct($data) {
parent::__construct($data);
parent::ConvertToDateTime($this->start);
parent::ConvertToDateTime($this->ends);
$isLayout = $this->isLayout();
}
private static $IDENTS = ['UURSLUITER' => 'Nieuws', 'NIEUWSOPEN ' => 'Nieuws', 'ANWB' => 'Verkeersinformatie', 'REGIO' => 'Regionieuws', 'CB' => 'Reclame'];
public function isLayout() {
foreach(self::$IDENTS as $ident => $display) {
if(substr($this->itemCode, 0, strlen($ident)) == $ident || substr($this->title, 0, strlen($ident)) == $ident) {
$this->title = $display;
$this->artist = "";
$this->itemCode = '_' . $this->itemCode;
return false;
}
}
if(strlen($this->itemCode) > 0 && ($this->itemCode[0] == 'V')) {
return true;
}
return false;
}
public function ends($ends = null) {
$this->ends = $ends;
}
public function secondsRemaining() {
return ($this->ends) ? ($this->ends->getTimestamp() - time()) : -1;
}
}

View File

@@ -27,7 +27,7 @@
"Database\\Factories\\": "database/factories/", "Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/", "Database\\Seeders\\": "database/seeders/",
"Helpers\\": "app/Helpers", "Helpers\\": "app/Helpers",
"Model\\": "/srv/api/common/classes" "Model\\": "app/Models"
} }
}, },
"autoload-dev": { "autoload-dev": {

24
docker-compose.dev.yml Normal file
View File

@@ -0,0 +1,24 @@
version: '3.8'
services:
web:
build:
context: ./
dockerfile: Dockerfile.dev
ports:
- 8080:80
- 8443:443
volumes:
- .:/var/www/html
- ./srv:/srv
db:
image: mysql:5.5
ports:
- "3306:3306"
expose:
- "3306"
environment:
MYSQL_ROOT_PASSWORD: development-password
MYSQL_DATABASE: forge
MYSQL_USER: forge
MYSQL_PASSWORD: secret

View File

@@ -6,9 +6,9 @@ ServerTokens Prod
<VirtualHost *:80> <VirtualHost *:80>
ServerName localhost ServerName localhost
ServerAdmin support@websight.nl ServerAdmin support@websight.nl
DocumentRoot /var/www/html/public DocumentRoot /var/www/html
<Directory /var/www/html/public/> <Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All AllowOverride All
Order deny,allow Order deny,allow
@@ -23,7 +23,7 @@ ServerTokens Prod
<VirtualHost *:443> <VirtualHost *:443>
ServerName localhost ServerName localhost
ServerAdmin support@websight.nl ServerAdmin support@websight.nl
DocumentRoot /var/www/html/public DocumentRoot /var/www/html
SSLEngine on SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
@@ -32,7 +32,7 @@ ServerTokens Prod
SSLProtocol All -SSLv2 -SSLv3 SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
<Directory /var/www/html/public/> <Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All AllowOverride All
Order deny,allow Order deny,allow

46
docker/apache.dev.conf Normal file
View File

@@ -0,0 +1,46 @@
Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
ServerTokens Prod
<VirtualHost *:80>
ServerName localhost
ServerAdmin support@websight.nl
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/apache2/vhost-error.log
CustomLog /var/log/apache2/vhost-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName localhost
ServerAdmin support@websight.nl
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCompression off
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
<Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/apache2/ssl-vhost-error.log
CustomLog /var/log/apache2/ssl-vhost-access.log combined
</VirtualHost>
</IfModule>

39
env.example Normal file
View File

@@ -0,0 +1,39 @@
APP_NAME="NH Gooi"
APP_ENV=production
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APP_DEBUG=false
APP_LOG_LEVEL=error
APP_URL=https://dev.nhgooi.nl
IMAGE_BASE_URL=https://dev.nhgooi.nl
API_URL=https://api.nhgooi.nl/
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=in-v3.mailjet.com
MAIL_PORT=25
MAIL_USERNAME=mailjet_username
MAIL_PASSWORD=mailjet_password
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
DB_CONNECTION=mysql
DB_HOST=nhgooi.nl
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=6fmstats
DB_PASSWORD=dbpass
CACHE_DRIVER=file
QUEUE_DRIVER=sync

View File

@@ -1,7 +1,10 @@
{ {
"private": true, "private": true,
"scripts": { "scripts": {
"sass": "sass resources/assets/sass:public/css",
"sass-watch": "sass --watch resources/assets/sass:public/css", "sass-watch": "sass --watch resources/assets/sass:public/css",
"sass-minify": "sass resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
"sass-minify-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
"js-watch": "grunt watch" "js-watch": "grunt watch"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -1 +0,0 @@
<?php phpinfo();

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
public/css/airplay.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

1
public/css/airplay.svg Normal file
View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="17" height="14" viewBox="0 0 16.9 13.9"><defs><style>.fill{fill:#fff;}</style></defs><title>7</title><g id="airplay"><polygon class="fill" points="0 0 16.9 0 16.9 10.4 13.2 10.4 11.9 8.9 15.4 8.9 15.4 1.6 1.5 1.6 1.5 8.9 5 8.9 3.6 10.4 0 10.4 0 0"/><polygon class="fill" points="2.7 13.9 8.4 7 14.2 13.9 2.7 13.9"/></g></svg>

After

Width:  |  Height:  |  Size: 417 B

BIN
public/css/chromecast.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 B

View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16.3 13.4" x="0" y="0" width="17" height="14"><defs><style>.cls-1{fill:#fff;}</style></defs><title>5</title><path id="chromecast" class="cls-1" d="M80.4,13v2.2h2.2A2.22,2.22,0,0,0,80.4,13Zm0-2.9v1.5a3.69,3.69,0,0,1,3.7,3.68s0,0,0,0h1.5a5.29,5.29,0,0,0-5.2-5.2h0ZM93.7,4.9H83.4V6.1a9.59,9.59,0,0,1,6.2,6.2h4.1V4.9h0ZM80.4,7.1V8.6a6.7,6.7,0,0,1,6.7,6.7h1.4a8.15,8.15,0,0,0-8.1-8.2h0ZM95.1,1.9H81.8a1.54,1.54,0,0,0-1.5,1.5V5.6h1.5V3.4H95.1V13.7H89.9v1.5h5.2a1.54,1.54,0,0,0,1.5-1.5V3.4A1.54,1.54,0,0,0,95.1,1.9Z" transform="translate(-80.3 -1.9)"/></svg>

After

Width:  |  Height:  |  Size: 637 B

View File

@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../resources/assets/sass/components/posts.scss","../../../resources/assets/sass/abstracts/_mixin.scss"],"names":[],"mappings":"AAEE;EACE;ECAF;EACA;EACA;EDAE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIN;ECzBA;EACA;EACA;EDyBE;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EAEA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;ECvGF;EACA;EACA;;ADwGI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;AAKN;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE","file":"posts.css"}

View File

@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../resources/assets/sass/components/pretty_photo.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE;EACA;;;AAEF;EAEE;;;AAEF;EAEE;EACA;EACA;EACA;EACA;;;AAEF;EAEE;EACA;;;AAEF;EAEE;EACA","file":"pretty_photo.css"}

BIN
public/css/jumpforward.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" x="0" y="0" width="19" height="19"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:none;stroke:#fff;stroke-width:2px;}</style></defs><title>2</title><g id="jumpforward"><path class="cls-1" d="M32.1,2.3L27.8,4.5V0.2Z" transform="translate(-20.7 -0.2)"/><path class="cls-1" d="M34.8,2.3L30.5,4.5V0.2Z" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M29.9,2.3a8.15,8.15,0,0,0-8.2,8.1h0" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M21.8,10a8.15,8.15,0,0,0,8.1,8.2h0" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M29.5,18.2a8.15,8.15,0,0,0,8.2-8.1h0" transform="translate(-20.7 -0.2)"/></g></svg>

After

Width:  |  Height:  |  Size: 718 B

View File

@@ -0,0 +1 @@
.mejs-airplay-button>button,.mejs__airplay-button>button{background:url(airplay.svg) no-repeat 0 4px}.mejs-airplay-button>button .fill,.mejs__airplay-button>button .fill{fill:#fff}.mejs-airplay-button>button.active .fill,.mejs__airplay-button>button.active .fill{fill:#66a8cc}.mejs-chromecast-button>button,.mejs__chromecast-button>button{--disconnected-color:#fff;background:none;display:inline-block}.mejs-chromecast-container,.mejs__chromecast-container{background:#000;color:#fff;font-size:10px;left:0;padding:5px;position:absolute;top:0;z-index:1}.mejs-chromecast-layer>img,.mejs__chromecast-layer>img{left:0;position:absolute;top:0;z-index:0}.mejs-chromecast-icon,.mejs__chromecast-icon{background:url(chromecast.svg) no-repeat 0 0;display:inline-block;height:14px;margin-right:5px;width:17px}.mejs-contextmenu,.mejs__contextmenu{background:#fff;border:1px solid #999;border-radius:4px;left:0;padding:10px;position:absolute;top:0;width:150px;z-index:1}.mejs-contextmenu-separator,.mejs__contextmenu-separator{background:#333;font-size:0;height:1px;margin:5px 6px}.mejs-contextmenu-item,.mejs__contextmenu-item{color:#333;cursor:pointer;font-size:12px;padding:4px 6px}.mejs-contextmenu-item:hover,.mejs__contextmenu-item:hover{background:#2c7c91;color:#fff}.mejs-jump-forward-button>button,.mejs__jump-forward-button>button{background:url(jumpforward.svg) no-repeat 0 0;color:#fff;font-size:8px;line-height:normal;position:relative}.mejs-skip-back-button>button,.mejs__skip-back-button>button{background:url(skipback.svg) no-repeat 0 -1px;color:#fff;font-size:8px;line-height:normal;position:relative}

BIN
public/css/skipback.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

17
public/css/skipback.svg Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-290 291 19 19" style="enable-background:new -290 291 19 19;" xml:space="preserve">
<style type="text/css">
.st0{fill:#fff;}
.st1{fill:none;stroke:#fff;stroke-width:2;}
</style>
<title>2</title>
<g id="jumpforward">
<path class="st0" d="M-278.6,291v4.3l-4.3-2.2L-278.6,291z"/>
<path class="st0" d="M-281.3,291v4.3l-4.3-2.2L-281.3,291z"/>
<path class="st1" d="M-272.5,301.2L-272.5,301.2C-272.5,301.2-272.5,301.2-272.5,301.2c0-4.5-3.7-8.1-8.2-8.1"/>
<path class="st1" d="M-280.7,309L-280.7,309C-280.7,309-280.7,309-280.7,309c4.5,0,8.1-3.7,8.1-8.2"/>
<path class="st1" d="M-288.5,300.9L-288.5,300.9C-288.5,300.9-288.5,300.9-288.5,300.9c0,4.5,3.7,8.1,8.2,8.1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 948 B

1034
public/css/style.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,91 +0,0 @@
.site_container {
max-width: 1440px;
margin: 0 auto;
}
.header {
height: 110px;
}
.header .logo {
margin-left: 135px;
}
.header .logo img {
height: 75px;
}
.menu_container {
height: 75px;
margin-bottom: 20px;
background-image: linear-gradient(to right, #0102b0, #4090e3);
}
.top_menu_container {
height: 50px;
}
.menu_container .menu {
list-style-type: none;
padding: 0;
margin: 0;
overflow: hidden;
position: relative;
z-index: 0;
}
.menu_container .menu li {
float: left;
}
.menu_container .menu li ul {
display: none;
}
.menu_container .menu li a {
display: block;
text-align: center;
padding: 5px 20px 5px 40px;
text-decoration: none;
font-size: 14px;
font-weight: bold;
background: white;
}
.menu_container .menu li.selected a,.menu_container .menu li:hover a {
color: white;
background: transparent;
position: relative;
}
.menu_container .menu li.selected a:before, .menu_container .menu li:hover a:before {
content: '';
display: block;
width: 33px;
height: 25px;
background-image: URL('/images/menu-corner-1.svg');
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.menu_container .menu li.selected a:after, .menu_container .menu li:hover a:after {
content: '';
display: block;
width: 10px;
height: 12px;
background-image: URL('/images/menu-corner-2.svg');
position: absolute;
bottom: 0;
right: -1px;
z-index: 1;
}
.menu_container .menu li:first-child {
width: 135px;
display: block;
background: white;
height: 25px;
}
div ul li:last-child {
margin-left: 10px;
}
div ul li:last-child:after {
content: '\a0';
z-index: -1;
background: white;
position: absolute;
top: 0;
width: 100%;
height: 100%;
margin-left: -10px;
}

1
public/css/style.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="230mm"
height="40mm"
viewBox="0 0 210 297"
version="1.1"
id="svg4553"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:docname="Slogan_DIAP white.svg">
<defs
id="defs4547" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.47"
inkscape:cx="803.9187"
inkscape:cy="284.95533"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata4550">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Laag 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g44"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
transform="matrix(1.3988443,0,0,1.3988443,-949.97686,-1243.7313)">
<path
inkscape:connector-curvature="0"
class="st1"
d="m 220.9,998.2 c -5.3,-2.3 -12.1,-4.4 -20.6,-6.3 -8,-1.8 -13.6,-3.7 -16.9,-5.8 -3.3,-2.1 -5,-5.1 -5,-9 0,-4.6 1.9,-8.3 5.6,-10.9 3.7,-2.6 8.8,-3.9 15.3,-3.9 10.8,0 20.7,3.6 29.6,10.7 l 6.1,-13.4 c -4.1,-3.7 -9.3,-6.6 -15.7,-8.8 -6.4,-2.1 -13,-3.2 -20.1,-3.2 -7.7,0 -14.5,1.3 -20.3,3.9 -5.9,2.6 -10.4,6.2 -13.7,10.9 -3.2,4.6 -4.8,9.9 -4.8,15.8 0,5.7 1.3,10.4 4,14.1 2.7,3.7 6.6,6.7 11.8,9.1 5.2,2.4 12,4.5 20.3,6.3 8.1,1.8 13.8,3.7 17.3,5.7 3.5,2 5.2,4.9 5.2,8.7 0,4.4 -1.9,7.8 -5.6,10.2 -3.7,2.4 -9.1,3.6 -16,3.6 -6.3,0 -12.1,-0.9 -17.4,-2.6 -5.4,-1.7 -10.5,-4.4 -15.3,-8.1 l -6.1,13.4 c 4.6,3.8 10.3,6.7 17.1,8.8 6.7,2.1 13.9,3.1 21.6,3.1 8.2,0 15.2,-1.2 21.3,-3.6 6,-2.4 10.6,-5.9 13.8,-10.4 3.2,-4.5 4.8,-9.7 4.8,-15.7 0,-5.5 -1.4,-10.1 -4.2,-13.7 -2.8,-3.6 -6.9,-6.5 -12.1,-8.9 z"
id="path14"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 274.1,1023.1 v -30 h 18.4 v -13.4 h -18.4 v -20.8 h -17.8 v 20.8 H 243 V 993 h 13.4 v 30.3 c 0,8.9 2.3,15.6 7,20.1 4.6,4.5 11.9,6.8 21.6,6.8 2.4,0 5,-0.1 7.8,-0.4 l 0.9,-13.2 c -2.3,0.3 -4.5,0.4 -6.5,0.4 -8.7,0 -13.1,-4.6 -13.1,-13.9 z"
id="path16"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 334,978 c -6.5,0 -12.4,1.5 -17.6,4.6 -5.2,3 -9.2,7.3 -12,12.8 -2.8,5.5 -4.3,11.8 -4.3,18.9 0,11.2 3.3,20 9.9,26.5 6.6,6.5 15.6,9.7 27,9.7 4.9,0 9.8,-0.8 14.7,-2.4 4.9,-1.6 8.9,-3.7 12.2,-6.4 l -5.1,-12.2 c -6.4,4.9 -13.4,7.4 -21.1,7.4 -6.2,0 -10.9,-1.6 -14.2,-4.7 -3.3,-3.1 -5.3,-7.9 -5.8,-14.4 h 47.4 v -5 c 0,-10.8 -2.8,-19.3 -8.3,-25.5 C 351.2,981 343.6,978 334,978 Z m -16.3,30.1 c 0.7,-5.7 2.4,-10.1 5.3,-13.1 2.9,-3 6.7,-4.6 11.5,-4.6 4.7,0 8.4,1.5 11.1,4.5 2.7,3 4.1,7.4 4.3,13.2 z"
id="path18"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 462.2,978 c -5,0 -9.6,1.2 -13.7,3.5 -4.1,2.3 -7.2,5.5 -9.4,9.6 -3.4,-8.7 -10.4,-13.1 -20.9,-13.1 -4.7,0 -9,1 -12.7,2.9 -3.7,1.9 -6.6,4.8 -8.7,8.6 v -9.8 h -17.4 v 69.6 h 17.8 v -38.8 c 0,-5.8 1.3,-10.3 4,-13.5 2.7,-3.2 6.3,-4.8 11,-4.8 4.1,0 7,1.2 8.8,3.6 1.8,2.4 2.6,6.3 2.6,11.6 v 42 h 17.8 v -38.8 c 0,-5.8 1.3,-10.3 4,-13.5 2.7,-3.2 6.4,-4.8 11.1,-4.8 4,0 6.9,1.2 8.7,3.6 1.8,2.4 2.7,6.3 2.7,11.6 v 42 h 17.8 v -42.7 c 0,-9.7 -1.9,-16.9 -5.8,-21.6 -3.9,-4.9 -9.8,-7.2 -17.7,-7.2 z"
id="path20"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<polygon
class="st1"
points="562.7,1049.2 578.2,1049.2 608.6,979.8 591.1,979.8 570.9,1028.9 551.3,979.8 532.5,979.8 "
id="polygon22"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 646.1,978 c -4.9,0 -10.2,0.8 -15.7,2.4 -5.5,1.6 -10.2,3.7 -14.1,6.1 l 5,12.2 c 3.9,-2.3 7.8,-4.1 11.9,-5.3 4,-1.3 7.9,-1.9 11.6,-1.9 4.7,0 8.1,1 10.2,3.1 2,2.1 3.1,5.5 3.1,10.2 v 3.3 h -3.6 c -10.3,0 -18.4,0.7 -24.3,2 -5.9,1.3 -10.1,3.5 -12.7,6.4 -2.6,2.9 -3.9,7 -3.9,12.1 0,4.1 1.1,7.8 3.3,11.1 2.2,3.3 5.2,5.9 9,7.8 3.8,1.9 8,2.8 12.7,2.8 4.6,0 8.6,-1 12,-3.1 3.5,-2.1 6,-5 7.6,-8.7 v 10.7 h 16.9 V 1007 c 0,-9.9 -2.4,-17.2 -7.1,-21.9 -4.9,-4.8 -12.2,-7.1 -21.9,-7.1 z m 11.9,42.5 c 0,5 -1.5,9.1 -4.5,12.3 -3,3.2 -6.9,4.8 -11.6,4.8 -3.2,0 -5.9,-1 -8,-2.9 -2.1,-1.9 -3.1,-4.4 -3.1,-7.5 0,-2.5 0.8,-4.4 2.3,-5.8 1.5,-1.4 4,-2.4 7.5,-3 3.5,-0.6 8.4,-0.9 14.8,-0.9 h 2.6 z"
id="path24"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 733.4,978 c -5,0 -9.5,1 -13.5,3.1 -4,2.1 -7.2,5.1 -9.5,9 V 979.7 H 693 v 69.6 h 17.8 v -39.4 c 0,-5.4 1.5,-9.7 4.6,-12.9 3.1,-3.2 7.2,-4.8 12.3,-4.8 4.4,0 7.6,1.2 9.6,3.7 2,2.5 3.1,6.4 3.1,11.8 v 41.7 h 17.8 v -42.7 c 0,-9.6 -2,-16.7 -6.1,-21.5 -4.1,-4.9 -10.3,-7.2 -18.7,-7.2 z"
id="path26"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 855.2,978 c -4.8,0 -9.2,1 -13.2,2.9 -3.9,1.9 -7.1,4.8 -9.5,8.5 V 949 h -17.8 v 100.3 h 17.8 v -39.4 c 0,-5.4 1.5,-9.7 4.6,-12.9 3.1,-3.2 7.2,-4.8 12.3,-4.8 4.4,0 7.6,1.2 9.6,3.7 2,2.5 3.1,6.4 3.1,11.8 v 41.7 H 880 v -42.7 c 0,-9.6 -2,-16.7 -6.1,-21.5 -4.1,-4.9 -10.4,-7.2 -18.7,-7.2 z"
id="path28"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 928,978 c -6.5,0 -12.4,1.5 -17.6,4.6 -5.2,3 -9.2,7.3 -12,12.8 -2.8,5.5 -4.3,11.8 -4.3,18.9 0,11.2 3.3,20 9.9,26.5 6.6,6.5 15.6,9.7 27,9.7 4.9,0 9.8,-0.8 14.7,-2.4 4.9,-1.6 8.9,-3.7 12.2,-6.4 l -5.1,-12.2 c -6.4,4.9 -13.4,7.4 -21.1,7.4 -6.2,0 -10.9,-1.6 -14.2,-4.7 -3.3,-3.1 -5.3,-7.9 -5.8,-14.4 h 47.4 v -5 c 0,-10.8 -2.8,-19.3 -8.3,-25.5 C 945.2,981 937.6,978 928,978 Z m -16.3,30.1 c 0.7,-5.7 2.4,-10.1 5.3,-13.1 2.9,-3 6.7,-4.6 11.5,-4.6 4.7,0 8.4,1.5 11.1,4.5 2.7,3 4.1,7.4 4.3,13.2 z"
id="path30"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 995.2,1023.1 v -30 h 18.4 v -13.4 h -18.4 v -20.8 h -17.8 v 20.8 H 964 V 993 h 13.4 v 30.3 c 0,8.9 2.3,15.6 7,20.1 4.6,4.5 11.9,6.8 21.6,6.8 2.4,0 5,-0.1 7.8,-0.4 l 0.9,-13.2 c -2.3,0.3 -4.5,0.4 -6.5,0.4 -8.7,0 -13,-4.6 -13,-13.9 z"
id="path32"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 1110.9,1008.1 h 21.6 v 25.2 c -6.5,1.8 -12.9,2.7 -19.4,2.7 -21.6,0 -32.4,-12.3 -32.4,-37 0,-12 2.6,-21.1 7.9,-27.2 5.3,-6.1 13.1,-9.2 23.4,-9.2 5.4,0 10.4,0.8 14.9,2.3 4.5,1.6 9.1,4.1 13.7,7.8 l 6.1,-13.2 c -4.1,-3.8 -9.2,-6.7 -15.4,-8.8 -6.2,-2 -12.8,-3.1 -19.8,-3.1 -10.1,0 -18.8,2.1 -26.3,6.2 -7.4,4.1 -13.2,10.1 -17.2,17.8 -4,7.7 -6,16.9 -6,27.4 0,10.6 2,19.8 6,27.5 4,7.7 9.8,13.7 17.4,17.8 7.6,4.1 16.6,6.2 26.9,6.2 6.7,0 13.3,-0.7 19.8,-2 6.5,-1.3 12,-3.1 16.6,-5.4 V 995 h -38 v 13.1 z"
id="path34"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 1218.4,982.4 c -5.4,-2.9 -11.6,-4.4 -18.7,-4.4 -7.1,0 -13.4,1.5 -18.7,4.4 -5.4,2.9 -9.5,7.1 -12.4,12.6 -2.9,5.5 -4.4,11.8 -4.4,19.1 0,7.3 1.5,13.7 4.4,19.2 2.9,5.5 7.1,9.7 12.4,12.7 5.4,2.9 11.6,4.4 18.7,4.4 7.1,0 13.3,-1.5 18.7,-4.4 5.4,-2.9 9.5,-7.2 12.4,-12.7 2.9,-5.5 4.3,-11.9 4.3,-19.2 0,-7.3 -1.4,-13.7 -4.3,-19.1 -3,-5.5 -7.1,-9.7 -12.4,-12.6 z m -5.7,48.5 c -3,3.8 -7.4,5.7 -13.2,5.7 -5.7,0 -10.1,-1.9 -13.1,-5.7 -3,-3.8 -4.6,-9.4 -4.6,-16.8 0,-7.3 1.5,-12.9 4.6,-16.7 3.1,-3.8 7.5,-5.8 13.2,-5.8 5.7,0 10.1,1.9 13.1,5.8 3,3.8 4.6,9.4 4.6,16.7 0,7.4 -1.5,13 -4.6,16.8 z"
id="path36"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
class="st1"
d="m 1300.2,982.4 c -5.4,-2.9 -11.6,-4.4 -18.7,-4.4 -7.1,0 -13.4,1.5 -18.7,4.4 -5.4,2.9 -9.5,7.1 -12.4,12.6 -2.9,5.5 -4.4,11.8 -4.4,19.1 0,7.3 1.5,13.7 4.4,19.2 2.9,5.5 7.1,9.7 12.4,12.7 5.4,2.9 11.6,4.4 18.7,4.4 7.1,0 13.3,-1.5 18.7,-4.4 5.4,-2.9 9.5,-7.2 12.4,-12.7 2.9,-5.5 4.3,-11.9 4.3,-19.2 0,-7.3 -1.4,-13.7 -4.3,-19.1 -2.9,-5.5 -7.1,-9.7 -12.4,-12.6 z m -5.6,48.5 c -3,3.8 -7.4,5.7 -13.2,5.7 -5.7,0 -10.1,-1.9 -13.1,-5.7 -3,-3.8 -4.6,-9.4 -4.6,-16.8 0,-7.3 1.5,-12.9 4.6,-16.7 3.1,-3.8 7.5,-5.8 13.2,-5.8 5.7,0 10.1,1.9 13.1,5.8 3,3.8 4.6,9.4 4.6,16.7 -0.1,7.4 -1.6,13 -4.6,16.8 z"
id="path38"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<rect
x="1331.5"
y="979.70001"
class="st1"
width="17.799999"
height="69.599998"
id="rect40"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
<rect
x="1330.5"
y="947.40002"
class="st1"
width="19.6"
height="17.5"
id="rect42"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg"><g id="Layer_29" data-name="Layer 29"><path d="m57 18.09s0-.09 0-.09v-4a6 6 0 0 0 -6-6h-26a6 6 0 0 0 -6 6 2 2 0 1 0 4 0 2 2 0 0 1 2-2h26a2 2 0 0 1 2 2v4h-39v-14a2 2 0 0 0 -4 0v14h-2a6 6 0 0 0 -6 6v32a6 6 0 0 0 6 6h48a6 6 0 0 0 6-6v-32a6 6 0 0 0 -5-5.91zm-47 21.91a13 13 0 1 1 13 13 13 13 0 0 1 -13-13zm42.19 10h-10.19a2 2 0 0 1 0-4h10.19a2 2 0 0 1 0 4zm-10.19-12h10a2 2 0 0 1 0 4h-10a2 2 0 0 1 0-4zm-2-6a2 2 0 0 1 2-2h10a2 2 0 0 1 0 4h-10a2 2 0 0 1 -2-2zm-17 17a9 9 0 1 1 9-9 9 9 0 0 1 -9 9z"/></g></svg>

After

Width:  |  Height:  |  Size: 590 B

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 511.998 511.998" style="enable-background:new 0 0 511.998 511.998;" xml:space="preserve">
<g>
<g>
<path d="M457.274,162.266H383.78h-10.812h-90.866l78.706-139.895c4.064-7.224,1.503-16.375-5.721-20.44
c-7.225-4.064-16.375-1.503-20.44,5.721l-78.177,138.954L178.293,7.652c-4.065-7.224-13.216-9.787-20.44-5.721
c-7.224,4.065-9.786,13.216-5.721,20.44l78.706,139.895H54.723c-29.759,0-53.969,24.211-53.969,53.969v241.794
c0,29.759,24.21,53.969,53.969,53.969h318.245h10.812h73.494c29.759,0,53.969-24.211,53.969-53.969V216.236
C511.243,186.476,487.033,162.266,457.274,162.266z M409.915,211.561c20.784,0,37.694,16.91,37.694,37.695
c0,20.784-16.91,37.694-37.694,37.694c-20.785,0-37.695-16.91-37.695-37.694C372.22,228.471,389.13,211.561,409.915,211.561z
M409.915,299.643c20.784,0,37.694,16.91,37.694,37.694c0,20.785-16.91,37.695-37.694,37.695
c-20.785,0-37.695-16.91-37.695-37.695C372.22,316.552,389.13,299.643,409.915,299.643z M337.429,420.934
c0,23.838-19.393,43.231-43.231,43.231H95.318c-23.838,0-43.231-19.393-43.231-43.231V254.902
c0-23.838,19.393-43.231,43.231-43.231h198.88c23.838,0,43.231,19.393,43.231,43.231V420.934z M436.376,463.717h-52.923
c-8.289,0-15.009-6.72-15.009-15.009s6.72-15.009,15.009-15.009h52.923c8.289,0,15.009,6.72,15.009,15.009
S444.665,463.717,436.376,463.717z M436.376,418.691h-52.923c-8.289,0-15.009-6.72-15.009-15.009s6.72-15.009,15.009-15.009
h52.923c8.289,0,15.009,6.72,15.009,15.009S444.665,418.691,436.376,418.691z"/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 119 42.6" style="enable-background:new 0 0 119 42.6;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{display:inline;}
.st2{fill:#FFFFFF;}
.st3{display:inline;fill:#0017A0;}
.st4{fill:#0017A0;}
</style>
<g class="st0">
<g class="st1">
<g>
<defs>
<path id="SVGID_7_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
</defs>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="0" y1="21.3127" x2="30.2681" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_2_);"/>
<clipPath id="SVGID_3_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st2" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
</g>
<path class="st3" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
C42.1,42.3,41.8,42.6,41.3,42.6"/>
<g class="st1">
<defs>
<path id="SVGID_10_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h63.4c0.9,0,1.6-0.7,1.6-1.6V7.7
c0-0.9-0.7-1.6-1.6-1.6H54z"/>
</defs>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="52.4293" y1="21.3127" x2="119" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="0.9999" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_4_);"/>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
</clipPath>
</g>
<g class="st1">
<path class="st2" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
<path class="st2" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
<path class="st2" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
<path class="st2" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
</g>
</g>
<g>
<g>
<g>
<defs>
<path id="SVGID_5_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
</defs>
<use xlink:href="#SVGID_5_" style="overflow:visible;fill:#FFFFFF;"/>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st4" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
</g>
<path class="st2" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
C42.1,42.3,41.8,42.6,41.3,42.6"/>
<g>
<defs>
<path id="SVGID_1_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h63.4c0.9,0,1.6-0.7,1.6-1.6V7.7
c0-0.9-0.7-1.6-1.6-1.6H54z"/>
</defs>
<use xlink:href="#SVGID_1_" style="overflow:visible;fill:#FFFFFF;"/>
<clipPath id="SVGID_9_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st4" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
<path class="st4" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
<path class="st4" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
<path class="st4" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 119 42.7" style="enable-background:new 0 0 119 42.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#0017A0;}
</style>
<g>
<g>
<defs>
<path id="SVGID_7_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h13.7c1.1,0,2.1,0.4,2.8,1.2l2.7,3.2
c0.7,0.9,1.9,1.4,3,1.4h41.3c0.9,0,1.6-0.7,1.6-1.6v-33c0-0.9-0.7-1.6-1.6-1.6H54z"/>
</defs>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="52.4293" y1="24.2191" x2="119" y2="24.2191">
<stop offset="2.612876e-04" style="stop-color:#0000AF"/>
<stop offset="0.2194" style="stop-color:#142DBF"/>
<stop offset="0.4641" style="stop-color:#2758CF"/>
<stop offset="0.6846" style="stop-color:#3577DA"/>
<stop offset="0.8707" style="stop-color:#3E8AE1"/>
<stop offset="1" style="stop-color:#4191E3"/>
</linearGradient>
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_1_);"/>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st0" d="M93.7,38.8h-0.9l-0.7-1.4c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.2-0.1-0.4-0.1h-0.6v1.7h-0.8v-4.3H92
c0.5,0,0.9,0.1,1.1,0.3c0.3,0.2,0.4,0.5,0.4,0.9c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.4,0.4-0.8,0.4c0.2,0.1,0.4,0.2,0.6,0.5
L93.7,38.8z M92.6,36.3c0.1-0.1,0.2-0.3,0.2-0.5c0-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.4-0.2-0.7-0.2h-1v1.4h1
C92.2,36.4,92.4,36.4,92.6,36.3z"/>
<path class="st0" d="M98.2,38.8l-0.4-1h-2.1l-0.4,1h-0.8l2-4.3h0.6l2,4.3H98.2z M96,37.1h1.6l-0.8-1.8L96,37.1z"/>
<path class="st0" d="M100.1,34.4h1.6c0.7,0,1.3,0.2,1.6,0.6c0.4,0.4,0.6,0.9,0.6,1.6c0,0.7-0.2,1.2-0.6,1.6
c-0.4,0.4-0.9,0.6-1.6,0.6h-1.6V34.4z M101.7,38.1c1,0,1.5-0.5,1.5-1.5c0-1-0.5-1.5-1.5-1.5h-0.8v3H101.7z"/>
<path class="st0" d="M105.3,38.8v-4.3h0.8v4.3H105.3z"/>
<path class="st0" d="M108.5,38.6c-0.3-0.2-0.5-0.4-0.7-0.8c-0.2-0.3-0.3-0.7-0.3-1.2c0-0.5,0.1-0.8,0.2-1.2
c0.2-0.3,0.4-0.6,0.7-0.8c0.3-0.2,0.7-0.3,1.1-0.3c0.4,0,0.8,0.1,1.1,0.3c0.3,0.2,0.5,0.4,0.7,0.8c0.2,0.3,0.2,0.7,0.2,1.2
c0,0.5-0.1,0.8-0.3,1.2c-0.2,0.3-0.4,0.6-0.7,0.8c-0.3,0.2-0.7,0.3-1.1,0.3C109.2,38.8,108.8,38.7,108.5,38.6z M110.5,37.8
c0.2-0.3,0.3-0.7,0.3-1.2c0-0.5-0.1-0.9-0.3-1.2c-0.2-0.3-0.5-0.4-0.9-0.4c-0.4,0-0.7,0.1-0.9,0.4c-0.2,0.3-0.3,0.7-0.3,1.2
c0,0.5,0.1,0.9,0.3,1.2c0.2,0.3,0.5,0.4,0.9,0.4C110,38.2,110.3,38.1,110.5,37.8z"/>
</g>
<path class="st1" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
C42.1,42.3,41.8,42.6,41.3,42.6"/>
<g>
<path class="st0" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
<path class="st0" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
<path class="st0" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
<path class="st0" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
</g>
<g>
<g>
<defs>
<path id="SVGID_10_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
</defs>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="0" y1="21.3127" x2="30.2681" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_3_);"/>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st0" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,226 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1190 550" style="enable-background:new 0 0 1190 550;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{display:inline;}
.st2{fill:#FFFFFF;}
.st3{fill:#0017A0;}
</style>
<g id="Layer_1" class="st0">
<g class="st1">
<g>
<g>
<g>
<defs>
<path id="SVGID_7_" d="M196,61.5c-8.3,0-15.1,6.7-15.1,15.1v45.2l-40.6-48.6c-7.5-7.5-17.7-11.7-28.3-11.7h-97
C6.8,61.5,0,68.3,0,76.6V348c0,8.3,6.8,15.1,15.1,15.1h90.5c8.3,0,15.1-6.7,15.1-15.1v-45.2l40.6,48.6
c7.5,7.5,17.7,11.7,28.3,11.7h97c8.3,0,15.1-6.7,15.1-15.1V76.6c0-8.3-6.7-15.1-15.1-15.1H196z"/>
</defs>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="212.311" x2="301.5229" y2="212.311">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_1_);"/>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st2" d="M247.2,293.7c0,5-4,9-9,9H190c-5,0-9-4-9-9v-51.3h-60.4v60.3H63.3c-5,0-9-4-9-9V130.9c0-5,4.1-9,9-9h48.2
c5,0,9,4.1,9,9v51.3H181l0-60.3h57.3c5,0,9,4.1,9,9V293.7z"/>
</g>
<path class="st3" d="M411.9,424.7c-4.2,0-7.6-3.4-7.6-7.6V7.6c0-4.2,3.4-7.6,7.6-7.6c4.2,0,7.6,3.4,7.6,7.6v409.6
C419.5,421.3,416.1,424.7,411.9,424.7"/>
<g>
<defs>
<path id="SVGID_10_" d="M537.9,61.5c-8.6,0-15.6,7-15.6,15.6v270.3c0,8.6,7,15.6,15.6,15.6h632c8.6,0,15.6-7,15.6-15.6V77.1
c0-8.6-7-15.6-15.6-15.6H537.9z"/>
</defs>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="522.2867" y1="212.311" x2="1185.446" y2="212.311">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_3_);"/>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st2" d="M745,203.6v88.3c-8.4,4.2-18.5,7.5-30.4,9.9c-11.9,2.4-24.1,3.7-36.5,3.7c-19,0-35.4-3.8-49.4-11.4
c-13.9-7.6-24.6-18.5-32-32.7c-7.4-14.2-11.1-31-11.1-50.6c0-19.3,3.7-36.1,11.1-50.3c7.4-14.2,17.9-25.1,31.6-32.7
c13.7-7.6,29.7-11.4,48.2-11.4c12.9,0,25,1.9,36.3,5.6c11.3,3.7,20.7,9.1,28.2,16.1l-11.2,24.3c-8.5-6.6-16.9-11.4-25.2-14.2
c-8.3-2.9-17.4-4.3-27.3-4.3c-19,0-33.3,5.6-43,16.9c-9.7,11.2-14.5,27.9-14.5,50c0,45.3,19.9,67.9,59.6,67.9
c11.8,0,23.7-1.7,35.5-5v-46.2h-39.7v-24H745z"/>
<path class="st2" d="M804,297.1c-9.8-5.4-17.5-13.2-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1
c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1
c5.3,10,8,21.7,8,35.1c0,13.4-2.7,25.2-8,35.3c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1
C825.3,305.2,813.8,302.5,804,297.1 M862.4,269.4c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7c-5.6-7.1-13.6-10.6-24-10.6
c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8c5.6,7,13.6,10.5,24,10.5
C848.7,279.9,856.8,276.4,862.4,269.4"/>
<path class="st2" d="M954.2,297.1c-9.8-5.4-17.5-13.2-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1
c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1
c5.3,10,8,21.7,8,35.1c0,13.4-2.7,25.2-8,35.3c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1
C975.5,305.2,964,302.5,954.2,297.1 M1012.6,269.4c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
c-5.6-7.1-13.6-10.6-24-10.6c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5C998.9,279.9,1007,276.4,1012.6,269.4"/>
<path class="st2" d="M1078.7,120.8h36.1V153h-36.1V120.8z M1080.5,175.4h32.7v127.8h-32.7V175.4z"/>
</g>
</g>
<g>
<g>
<g>
<path class="st3" d="M17,546.9c-6.7-2.1-12.4-5-17-8.8l6.1-13.3c4.8,3.7,9.9,6.4,15.2,8.1c5.3,1.7,11.1,2.5,17.3,2.5
c6.9,0,12.2-1.2,15.9-3.6c3.7-2.4,5.6-5.8,5.6-10.1c0-3.8-1.7-6.7-5.2-8.6c-3.4-2-9.2-3.9-17.2-5.7c-8.3-1.8-15.1-3.9-20.2-6.2
c-5.2-2.4-9.1-5.4-11.7-9.1c-2.6-3.7-4-8.4-4-14c0-5.8,1.6-11.1,4.8-15.7c3.2-4.6,7.7-8.2,13.6-10.8c5.9-2.6,12.6-3.9,20.2-3.9
c7,0,13.6,1.1,20,3.2c6.3,2.1,11.5,5,15.6,8.7l-6.1,13.3c-8.9-7.1-18.7-10.6-29.4-10.6c-6.4,0-11.5,1.3-15.2,3.9
c-3.7,2.6-5.6,6.2-5.6,10.8c0,3.9,1.6,6.8,5,8.9c3.3,2.1,8.9,4,16.8,5.8c8.4,1.9,15.2,4,20.5,6.3c5.2,2.3,9.2,5.3,12,8.8
c2.8,3.6,4.2,8.1,4.2,13.6c0,5.9-1.6,11.2-4.7,15.6c-3.2,4.5-7.7,7.9-13.7,10.3c-6,2.4-13,3.6-21.2,3.6
C30.9,550,23.7,549,17,546.9"/>
<path class="st3" d="M134.3,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20
v-30.1H83.9v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C129.9,536.6,132.1,536.4,134.3,536.1"
/>
<path class="st3" d="M205.4,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.7,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M163.6,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C170.2,490.3,166.4,491.8,163.6,494.8"/>
<path class="st3" d="M319.6,484.8c3.9,4.7,5.8,11.8,5.8,21.4v42.5h-17.7V507c0-5.3-0.9-9.1-2.7-11.5c-1.8-2.4-4.7-3.6-8.6-3.6
c-4.7,0-8.4,1.6-11,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7V507c0-5.3-0.9-9.1-2.6-11.5c-1.7-2.4-4.6-3.6-8.7-3.6
c-4.6,0-8.3,1.6-10.9,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7v-69.2h17.3v9.8c2.1-3.8,5-6.6,8.6-8.6c3.7-1.9,7.9-2.9,12.6-2.9
c10.5,0,17.4,4.3,20.8,13c2.2-4.1,5.3-7.2,9.3-9.6c4.1-2.3,8.6-3.5,13.6-3.5C309.9,477.8,315.7,480.1,319.6,484.8"/>
<polygon class="st3" points="430.3,479.7 447.7,479.7 417.4,548.7 402,548.7 372,479.7 390.7,479.7 410.2,528.5 "/>
<path class="st3" d="M506.6,484.9c4.7,4.7,7.1,12,7.1,21.8v42h-16.8v-10.6c-1.6,3.7-4.1,6.6-7.6,8.6c-3.4,2.1-7.4,3.1-12,3.1
c-4.6,0-8.8-0.9-12.6-2.8c-3.8-1.9-6.7-4.5-8.9-7.8c-2.2-3.3-3.3-7-3.3-11c0-5.1,1.3-9.1,3.9-12c2.6-2.9,6.8-5,12.7-6.4
c5.9-1.3,13.9-2,24.2-2h3.5v-3.3c0-4.7-1-8.1-3-10.2c-2-2.1-5.4-3.1-10.1-3.1c-3.7,0-7.5,0.6-11.5,1.9c-4,1.3-8,3-11.8,5.3
l-5-12.2c3.9-2.5,8.5-4.5,14-6.1c5.5-1.6,10.7-2.4,15.6-2.4C494.7,477.8,501.9,480.2,506.6,484.9 M492.4,532.4
c3-3.2,4.5-7.2,4.5-12.2v-3h-2.5c-6.3,0-11.2,0.3-14.7,0.8c-3.5,0.6-6,1.6-7.5,3c-1.5,1.4-2.3,3.4-2.3,5.8c0,3,1,5.5,3.1,7.4
c2.1,1.9,4.7,2.9,7.9,2.9C485.5,537.1,489.4,535.5,492.4,532.4"/>
<path class="st3" d="M590.4,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-69.2h17.3v10.3c2.4-3.9,5.5-6.8,9.5-8.9
c4-2.1,8.4-3.1,13.4-3.1C580.1,477.8,586.3,480.2,590.4,484.9"/>
<path class="st3" d="M711.6,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-99.8h17.7v40.2c2.4-3.7,5.5-6.5,9.4-8.4
c3.9-1.9,8.3-2.9,13.1-2.9C701.3,477.8,707.5,480.2,711.6,484.9"/>
<path class="st3" d="M796.3,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.6,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M754.5,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C761.2,490.3,757.4,491.8,754.5,494.8"/>
<path class="st3" d="M851.7,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20
v-30.1h-13.3v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C847.2,536.6,849.4,536.4,851.7,536.1"
/>
<path class="st3" d="M985.2,494.8v47.8c-4.5,2.3-10,4.1-16.5,5.4c-6.5,1.3-13,2-19.7,2c-10.3,0-19.2-2.1-26.8-6.2
c-7.6-4.1-13.3-10-17.3-17.7c-4-7.7-6-16.8-6-27.4c0-10.5,2-19.6,6-27.2c4-7.7,9.7-13.6,17.1-17.7c7.4-4.1,16.1-6.2,26.1-6.2
c7,0,13.5,1,19.7,3c6.1,2,11.2,4.9,15.3,8.7l-6.1,13.2c-4.6-3.6-9.2-6.2-13.7-7.7c-4.5-1.6-9.4-2.3-14.8-2.3
c-10.3,0-18,3-23.3,9.1c-5.2,6.1-7.9,15.1-7.9,27.1c0,24.5,10.8,36.8,32.3,36.8c6.4,0,12.8-0.9,19.3-2.7v-25.1h-21.5v-13H985.2
z"/>
<path class="st3" d="M1017.1,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1028.6,549.9,1022.4,548.4,1017.1,545.5 M1048.7,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1041.3,536.1,1045.7,534.2,1048.7,530.5"/>
<path class="st3" d="M1098.5,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1110,549.9,1103.8,548.4,1098.5,545.5 M1130.1,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1122.7,536.1,1127.1,534.2,1130.1,530.5"/>
<path class="st3" d="M1165.9,447.4h19.5v17.4h-19.5V447.4z M1166.9,479.5h17.7v69.2h-17.7V479.5z"/>
</g>
</g>
</g>
</g>
</g>
<g id="Layer_1_copy">
<g>
<g>
<g>
<path class="st2" d="M17,546.9c-6.7-2.1-12.4-5-17-8.8l6.1-13.3c4.8,3.7,9.9,6.4,15.2,8.1c5.3,1.7,11.1,2.5,17.3,2.5
c6.9,0,12.2-1.2,15.9-3.6c3.7-2.4,5.6-5.8,5.6-10.1c0-3.8-1.7-6.7-5.2-8.6c-3.4-2-9.2-3.9-17.2-5.7c-8.3-1.8-15.1-3.9-20.2-6.2
c-5.2-2.4-9.1-5.4-11.7-9.1c-2.6-3.7-4-8.4-4-14c0-5.8,1.6-11.1,4.8-15.7c3.2-4.6,7.7-8.2,13.6-10.8c5.9-2.6,12.6-3.9,20.2-3.9
c7,0,13.6,1.1,20,3.2c6.3,2.1,11.5,5,15.6,8.7l-6.1,13.3c-8.9-7.1-18.7-10.6-29.4-10.6c-6.4,0-11.5,1.3-15.2,3.9
c-3.7,2.6-5.6,6.2-5.6,10.8c0,3.9,1.6,6.8,5,8.9c3.3,2.1,8.9,4,16.8,5.8c8.4,1.9,15.2,4,20.5,6.3c5.2,2.3,9.2,5.3,12,8.8
c2.8,3.6,4.2,8.1,4.2,13.6c0,5.9-1.6,11.2-4.7,15.6c-3.2,4.5-7.7,7.9-13.7,10.3c-6,2.4-13,3.6-21.2,3.6
C30.9,550,23.7,549,17,546.9"/>
<path class="st2" d="M134.3,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20v-30.1
H83.9v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C129.9,536.6,132.1,536.4,134.3,536.1"/>
<path class="st2" d="M205.4,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.7,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M163.6,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C170.2,490.3,166.4,491.8,163.6,494.8"/>
<path class="st2" d="M319.6,484.8c3.9,4.7,5.8,11.8,5.8,21.4v42.5h-17.7V507c0-5.3-0.9-9.1-2.7-11.5c-1.8-2.4-4.7-3.6-8.6-3.6
c-4.7,0-8.4,1.6-11,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7V507c0-5.3-0.9-9.1-2.6-11.5c-1.7-2.4-4.6-3.6-8.7-3.6
c-4.6,0-8.3,1.6-10.9,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7v-69.2h17.3v9.8c2.1-3.8,5-6.6,8.6-8.6c3.7-1.9,7.9-2.9,12.6-2.9
c10.5,0,17.4,4.3,20.8,13c2.2-4.1,5.3-7.2,9.3-9.6c4.1-2.3,8.6-3.5,13.6-3.5C309.9,477.8,315.7,480.1,319.6,484.8"/>
<polygon class="st2" points="430.3,479.7 447.7,479.7 417.4,548.7 402,548.7 372,479.7 390.7,479.7 410.2,528.5 "/>
<path class="st2" d="M506.6,484.9c4.7,4.7,7.1,12,7.1,21.8v42h-16.8v-10.6c-1.6,3.7-4.1,6.6-7.6,8.6c-3.4,2.1-7.4,3.1-12,3.1
c-4.6,0-8.8-0.9-12.6-2.8c-3.8-1.9-6.7-4.5-8.9-7.8c-2.2-3.3-3.3-7-3.3-11c0-5.1,1.3-9.1,3.9-12c2.6-2.9,6.8-5,12.7-6.4
c5.9-1.3,13.9-2,24.2-2h3.5v-3.3c0-4.7-1-8.1-3-10.2c-2-2.1-5.4-3.1-10.1-3.1c-3.7,0-7.5,0.6-11.5,1.9c-4,1.3-8,3-11.8,5.3
l-5-12.2c3.9-2.5,8.5-4.5,14-6.1c5.5-1.6,10.7-2.4,15.6-2.4C494.7,477.8,501.9,480.2,506.6,484.9 M492.4,532.4
c3-3.2,4.5-7.2,4.5-12.2v-3h-2.5c-6.3,0-11.2,0.3-14.7,0.8c-3.5,0.6-6,1.6-7.5,3c-1.5,1.4-2.3,3.4-2.3,5.8c0,3,1,5.5,3.1,7.4
c2.1,1.9,4.7,2.9,7.9,2.9C485.5,537.1,489.4,535.5,492.4,532.4"/>
<path class="st2" d="M590.4,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-69.2h17.3v10.3c2.4-3.9,5.5-6.8,9.5-8.9
c4-2.1,8.4-3.1,13.4-3.1C580.1,477.8,586.3,480.2,590.4,484.9"/>
<path class="st2" d="M711.6,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-99.8h17.7v40.2c2.4-3.7,5.5-6.5,9.4-8.4
c3.9-1.9,8.3-2.9,13.1-2.9C701.3,477.8,707.5,480.2,711.6,484.9"/>
<path class="st2" d="M796.3,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.6,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M754.5,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C761.2,490.3,757.4,491.8,754.5,494.8"/>
<path class="st2" d="M851.7,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20v-30.1
h-13.3v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C847.2,536.6,849.4,536.4,851.7,536.1"/>
<path class="st2" d="M985.2,494.8v47.8c-4.5,2.3-10,4.1-16.5,5.4c-6.5,1.3-13,2-19.7,2c-10.3,0-19.2-2.1-26.8-6.2
c-7.6-4.1-13.3-10-17.3-17.7c-4-7.7-6-16.8-6-27.4c0-10.5,2-19.6,6-27.2c4-7.7,9.7-13.6,17.1-17.7c7.4-4.1,16.1-6.2,26.1-6.2
c7,0,13.5,1,19.7,3c6.1,2,11.2,4.9,15.3,8.7l-6.1,13.2c-4.6-3.6-9.2-6.2-13.7-7.7c-4.5-1.6-9.4-2.3-14.8-2.3
c-10.3,0-18,3-23.3,9.1c-5.2,6.1-7.9,15.1-7.9,27.1c0,24.5,10.8,36.8,32.3,36.8c6.4,0,12.8-0.9,19.3-2.7v-25.1h-21.5v-13H985.2z
"/>
<path class="st2" d="M1017.1,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1028.6,549.9,1022.4,548.4,1017.1,545.5 M1048.7,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1041.3,536.1,1045.7,534.2,1048.7,530.5"/>
<path class="st2" d="M1098.5,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1110,549.9,1103.8,548.4,1098.5,545.5 M1130.1,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1122.7,536.1,1127.1,534.2,1130.1,530.5"/>
<path class="st2" d="M1165.9,447.4h19.5v17.4h-19.5V447.4z M1166.9,479.5h17.7v69.2h-17.7V479.5z"/>
</g>
</g>
</g>
<path class="st2" d="M15.1,363.1h90.5c8.3,0,15.1-6.7,15.1-15.1v-45.2l40.6,48.6c7.5,7.5,17.7,11.7,28.3,11.7h97
c8.3,0,15.1-6.7,15.1-15.1V76.6c0-8.3-6.7-15.1-15.1-15.1H196c-8.3,0-15.1,6.7-15.1,15.1v45.2l-40.6-48.6
c-7.5-7.5-17.7-11.7-28.3-11.7h-97C6.8,61.5,0,68.3,0,76.6V348C0,356.3,6.8,363.1,15.1,363.1z M54.3,130.9c0-5,4.1-9,9-9h48.2
c5,0,9,4.1,9,9v51.3H181l0-60.3h57.3c5,0,9,4.1,9,9v162.8c0,5-4,9-9,9H190c-5,0-9-4-9-9v-51.3h-60.4v60.3H63.3c-5,0-9-4-9-9V130.9z
"/>
<path class="st2" d="M411.9,424.7c4.2,0,7.6-3.4,7.6-7.6V7.6c0-4.2-3.4-7.6-7.6-7.6c-4.2,0-7.6,3.4-7.6,7.6v409.6
C404.4,421.3,407.7,424.7,411.9,424.7z"/>
<path class="st2" d="M1169.9,61.5h-632c-8.6,0-15.6,7-15.6,15.6v270.3c0,8.6,7,15.6,15.6,15.6h632c8.6,0,15.6-7,15.6-15.6V77.1
C1185.4,68.5,1178.5,61.5,1169.9,61.5z M745,291.9c-8.4,4.2-18.5,7.5-30.4,9.9c-11.9,2.4-24.1,3.7-36.5,3.7
c-19,0-35.4-3.8-49.4-11.4c-13.9-7.6-24.6-18.5-32-32.7c-7.4-14.2-11.1-31-11.1-50.6c0-19.3,3.7-36.1,11.1-50.3
c7.4-14.2,17.9-25.1,31.6-32.7c13.7-7.6,29.7-11.4,48.2-11.4c12.9,0,25,1.9,36.3,5.6c11.3,3.7,20.7,9.1,28.2,16.1l-11.2,24.3
c-8.5-6.6-16.9-11.4-25.2-14.2c-8.3-2.9-17.4-4.3-27.3-4.3c-19,0-33.3,5.6-43,16.9c-9.7,11.2-14.5,27.9-14.5,50
c0,45.3,19.9,67.9,59.6,67.9c11.8,0,23.7-1.7,35.5-5v-46.2h-39.7v-24H745V291.9z M895.4,273.9c-5.3,10.1-12.9,17.9-22.7,23.3
c-9.8,5.4-21.3,8.1-34.4,8.1c-13.1,0-24.5-2.7-34.4-8.1c-9.8-5.4-17.5-13.1-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3
c0-13.4,2.7-25.1,8.1-35.1c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1
c9.8,5.4,17.4,13.1,22.7,23.1c5.3,10,8,21.7,8,35.1C903.4,252,900.7,263.8,895.4,273.9z M1045.6,273.9
c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1c-13.1,0-24.5-2.7-34.4-8.1c-9.8-5.4-17.5-13.1-22.9-23.3
c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1
c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1c5.3,10,8,21.7,8,35.1C1053.6,252,1051,263.8,1045.6,273.9z M1113.2,303.1
h-32.7V175.4h32.7V303.1z M1114.8,153h-36.1v-32.1h36.1V153z"/>
<path class="st2" d="M838.3,197.3c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5c10.6,0,18.7-3.5,24.3-10.5c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
C856.8,200.8,848.8,197.3,838.3,197.3z"/>
<path class="st2" d="M988.6,197.3c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5c10.6,0,18.7-3.5,24.3-10.5c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
C1007,200.8,999,197.3,988.6,197.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,227 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1190 550" style="enable-background:new 0 0 1190 550;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#0017A0;}
.st2{display:none;}
.st3{display:inline;}
.st4{display:inline;fill:#FFFFFF;}
</style>
<g id="Layer_1">
<g>
<g>
<g>
<g>
<defs>
<path id="SVGID_7_" d="M196,61.5c-8.3,0-15.1,6.7-15.1,15.1v45.2l-40.6-48.6c-7.5-7.5-17.7-11.7-28.3-11.7h-97
C6.8,61.5,0,68.3,0,76.6V348c0,8.3,6.8,15.1,15.1,15.1h90.5c8.3,0,15.1-6.7,15.1-15.1v-45.2l40.6,48.6
c7.5,7.5,17.7,11.7,28.3,11.7h97c8.3,0,15.1-6.7,15.1-15.1V76.6c0-8.3-6.7-15.1-15.1-15.1H196z"/>
</defs>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="212.311" x2="301.5229" y2="212.311">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_1_);"/>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st0" d="M247.2,293.7c0,5-4,9-9,9H190c-5,0-9-4-9-9v-51.3h-60.4v60.3H63.3c-5,0-9-4-9-9V130.9c0-5,4.1-9,9-9h48.2
c5,0,9,4.1,9,9v51.3H181l0-60.3h57.3c5,0,9,4.1,9,9V293.7z"/>
</g>
<path class="st1" d="M411.9,424.7c-4.2,0-7.6-3.4-7.6-7.6V7.6c0-4.2,3.4-7.6,7.6-7.6c4.2,0,7.6,3.4,7.6,7.6v409.6
C419.5,421.3,416.1,424.7,411.9,424.7"/>
<g>
<defs>
<path id="SVGID_10_" d="M537.9,61.5c-8.6,0-15.6,7-15.6,15.6v270.3c0,8.6,7,15.6,15.6,15.6h632c8.6,0,15.6-7,15.6-15.6V77.1
c0-8.6-7-15.6-15.6-15.6H537.9z"/>
</defs>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="522.2867" y1="212.311" x2="1185.446" y2="212.311">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_3_);"/>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st0" d="M745,203.6v88.3c-8.4,4.2-18.5,7.5-30.4,9.9c-11.9,2.4-24.1,3.7-36.5,3.7c-19,0-35.4-3.8-49.4-11.4
c-13.9-7.6-24.6-18.5-32-32.7c-7.4-14.2-11.1-31-11.1-50.6c0-19.3,3.7-36.1,11.1-50.3c7.4-14.2,17.9-25.1,31.6-32.7
c13.7-7.6,29.7-11.4,48.2-11.4c12.9,0,25,1.9,36.3,5.6c11.3,3.7,20.7,9.1,28.2,16.1l-11.2,24.3c-8.5-6.6-16.9-11.4-25.2-14.2
c-8.3-2.9-17.4-4.3-27.3-4.3c-19,0-33.3,5.6-43,16.9c-9.7,11.2-14.5,27.9-14.5,50c0,45.3,19.9,67.9,59.6,67.9
c11.8,0,23.7-1.7,35.5-5v-46.2h-39.7v-24H745z"/>
<path class="st0" d="M804,297.1c-9.8-5.4-17.5-13.2-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1
c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1
c5.3,10,8,21.7,8,35.1c0,13.4-2.7,25.2-8,35.3c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1
C825.3,305.2,813.8,302.5,804,297.1 M862.4,269.4c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7c-5.6-7.1-13.6-10.6-24-10.6
c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8c5.6,7,13.6,10.5,24,10.5
C848.7,279.9,856.8,276.4,862.4,269.4"/>
<path class="st0" d="M954.2,297.1c-9.8-5.4-17.5-13.2-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1
c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1
c5.3,10,8,21.7,8,35.1c0,13.4-2.7,25.2-8,35.3c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1
C975.5,305.2,964,302.5,954.2,297.1 M1012.6,269.4c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
c-5.6-7.1-13.6-10.6-24-10.6c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5C998.9,279.9,1007,276.4,1012.6,269.4"/>
<path class="st0" d="M1078.7,120.8h36.1V153h-36.1V120.8z M1080.5,175.4h32.7v127.8h-32.7V175.4z"/>
</g>
</g>
<g>
<g>
<g>
<path class="st1" d="M17,546.9c-6.7-2.1-12.4-5-17-8.8l6.1-13.3c4.8,3.7,9.9,6.4,15.2,8.1c5.3,1.7,11.1,2.5,17.3,2.5
c6.9,0,12.2-1.2,15.9-3.6c3.7-2.4,5.6-5.8,5.6-10.1c0-3.8-1.7-6.7-5.2-8.6c-3.4-2-9.2-3.9-17.2-5.7c-8.3-1.8-15.1-3.9-20.2-6.2
c-5.2-2.4-9.1-5.4-11.7-9.1c-2.6-3.7-4-8.4-4-14c0-5.8,1.6-11.1,4.8-15.7c3.2-4.6,7.7-8.2,13.6-10.8c5.9-2.6,12.6-3.9,20.2-3.9
c7,0,13.6,1.1,20,3.2c6.3,2.1,11.5,5,15.6,8.7l-6.1,13.3c-8.9-7.1-18.7-10.6-29.4-10.6c-6.4,0-11.5,1.3-15.2,3.9
c-3.7,2.6-5.6,6.2-5.6,10.8c0,3.9,1.6,6.8,5,8.9c3.3,2.1,8.9,4,16.8,5.8c8.4,1.9,15.2,4,20.5,6.3c5.2,2.3,9.2,5.3,12,8.8
c2.8,3.6,4.2,8.1,4.2,13.6c0,5.9-1.6,11.2-4.7,15.6c-3.2,4.5-7.7,7.9-13.7,10.3c-6,2.4-13,3.6-21.2,3.6
C30.9,550,23.7,549,17,546.9"/>
<path class="st1" d="M134.3,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20
v-30.1H83.9v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C129.9,536.6,132.1,536.4,134.3,536.1"
/>
<path class="st1" d="M205.4,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.7,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M163.6,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C170.2,490.3,166.4,491.8,163.6,494.8"/>
<path class="st1" d="M319.6,484.8c3.9,4.7,5.8,11.8,5.8,21.4v42.5h-17.7V507c0-5.3-0.9-9.1-2.7-11.5c-1.8-2.4-4.7-3.6-8.6-3.6
c-4.7,0-8.4,1.6-11,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7V507c0-5.3-0.9-9.1-2.6-11.5c-1.7-2.4-4.6-3.6-8.7-3.6
c-4.6,0-8.3,1.6-10.9,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7v-69.2h17.3v9.8c2.1-3.8,5-6.6,8.6-8.6c3.7-1.9,7.9-2.9,12.6-2.9
c10.5,0,17.4,4.3,20.8,13c2.2-4.1,5.3-7.2,9.3-9.6c4.1-2.3,8.6-3.5,13.6-3.5C309.9,477.8,315.7,480.1,319.6,484.8"/>
<polygon class="st1" points="430.3,479.7 447.7,479.7 417.4,548.7 402,548.7 372,479.7 390.7,479.7 410.2,528.5 "/>
<path class="st1" d="M506.6,484.9c4.7,4.7,7.1,12,7.1,21.8v42h-16.8v-10.6c-1.6,3.7-4.1,6.6-7.6,8.6c-3.4,2.1-7.4,3.1-12,3.1
c-4.6,0-8.8-0.9-12.6-2.8c-3.8-1.9-6.7-4.5-8.9-7.8c-2.2-3.3-3.3-7-3.3-11c0-5.1,1.3-9.1,3.9-12c2.6-2.9,6.8-5,12.7-6.4
c5.9-1.3,13.9-2,24.2-2h3.5v-3.3c0-4.7-1-8.1-3-10.2c-2-2.1-5.4-3.1-10.1-3.1c-3.7,0-7.5,0.6-11.5,1.9c-4,1.3-8,3-11.8,5.3
l-5-12.2c3.9-2.5,8.5-4.5,14-6.1c5.5-1.6,10.7-2.4,15.6-2.4C494.7,477.8,501.9,480.2,506.6,484.9 M492.4,532.4
c3-3.2,4.5-7.2,4.5-12.2v-3h-2.5c-6.3,0-11.2,0.3-14.7,0.8c-3.5,0.6-6,1.6-7.5,3c-1.5,1.4-2.3,3.4-2.3,5.8c0,3,1,5.5,3.1,7.4
c2.1,1.9,4.7,2.9,7.9,2.9C485.5,537.1,489.4,535.5,492.4,532.4"/>
<path class="st1" d="M590.4,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-69.2h17.3v10.3c2.4-3.9,5.5-6.8,9.5-8.9
c4-2.1,8.4-3.1,13.4-3.1C580.1,477.8,586.3,480.2,590.4,484.9"/>
<path class="st1" d="M711.6,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-99.8h17.7v40.2c2.4-3.7,5.5-6.5,9.4-8.4
c3.9-1.9,8.3-2.9,13.1-2.9C701.3,477.8,707.5,480.2,711.6,484.9"/>
<path class="st1" d="M796.3,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.6,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M754.5,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C761.2,490.3,757.4,491.8,754.5,494.8"/>
<path class="st1" d="M851.7,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20
v-30.1h-13.3v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C847.2,536.6,849.4,536.4,851.7,536.1"
/>
<path class="st1" d="M985.2,494.8v47.8c-4.5,2.3-10,4.1-16.5,5.4c-6.5,1.3-13,2-19.7,2c-10.3,0-19.2-2.1-26.8-6.2
c-7.6-4.1-13.3-10-17.3-17.7c-4-7.7-6-16.8-6-27.4c0-10.5,2-19.6,6-27.2c4-7.7,9.7-13.6,17.1-17.7c7.4-4.1,16.1-6.2,26.1-6.2
c7,0,13.5,1,19.7,3c6.1,2,11.2,4.9,15.3,8.7l-6.1,13.2c-4.6-3.6-9.2-6.2-13.7-7.7c-4.5-1.6-9.4-2.3-14.8-2.3
c-10.3,0-18,3-23.3,9.1c-5.2,6.1-7.9,15.1-7.9,27.1c0,24.5,10.8,36.8,32.3,36.8c6.4,0,12.8-0.9,19.3-2.7v-25.1h-21.5v-13H985.2
z"/>
<path class="st1" d="M1017.1,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1028.6,549.9,1022.4,548.4,1017.1,545.5 M1048.7,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1041.3,536.1,1045.7,534.2,1048.7,530.5"/>
<path class="st1" d="M1098.5,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1110,549.9,1103.8,548.4,1098.5,545.5 M1130.1,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1122.7,536.1,1127.1,534.2,1130.1,530.5"/>
<path class="st1" d="M1165.9,447.4h19.5v17.4h-19.5V447.4z M1166.9,479.5h17.7v69.2h-17.7V479.5z"/>
</g>
</g>
</g>
</g>
</g>
<g id="Layer_1_copy" class="st2">
<g class="st3">
<g>
<g>
<path class="st0" d="M17,546.9c-6.7-2.1-12.4-5-17-8.8l6.1-13.3c4.8,3.7,9.9,6.4,15.2,8.1c5.3,1.7,11.1,2.5,17.3,2.5
c6.9,0,12.2-1.2,15.9-3.6c3.7-2.4,5.6-5.8,5.6-10.1c0-3.8-1.7-6.7-5.2-8.6c-3.4-2-9.2-3.9-17.2-5.7c-8.3-1.8-15.1-3.9-20.2-6.2
c-5.2-2.4-9.1-5.4-11.7-9.1c-2.6-3.7-4-8.4-4-14c0-5.8,1.6-11.1,4.8-15.7c3.2-4.6,7.7-8.2,13.6-10.8c5.9-2.6,12.6-3.9,20.2-3.9
c7,0,13.6,1.1,20,3.2c6.3,2.1,11.5,5,15.6,8.7l-6.1,13.3c-8.9-7.1-18.7-10.6-29.4-10.6c-6.4,0-11.5,1.3-15.2,3.9
c-3.7,2.6-5.6,6.2-5.6,10.8c0,3.9,1.6,6.8,5,8.9c3.3,2.1,8.9,4,16.8,5.8c8.4,1.9,15.2,4,20.5,6.3c5.2,2.3,9.2,5.3,12,8.8
c2.8,3.6,4.2,8.1,4.2,13.6c0,5.9-1.6,11.2-4.7,15.6c-3.2,4.5-7.7,7.9-13.7,10.3c-6,2.4-13,3.6-21.2,3.6
C30.9,550,23.7,549,17,546.9"/>
<path class="st0" d="M134.3,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20v-30.1
H83.9v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C129.9,536.6,132.1,536.4,134.3,536.1"/>
<path class="st0" d="M205.4,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.7,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M163.6,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C170.2,490.3,166.4,491.8,163.6,494.8"/>
<path class="st0" d="M319.6,484.8c3.9,4.7,5.8,11.8,5.8,21.4v42.5h-17.7V507c0-5.3-0.9-9.1-2.7-11.5c-1.8-2.4-4.7-3.6-8.6-3.6
c-4.7,0-8.4,1.6-11,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7V507c0-5.3-0.9-9.1-2.6-11.5c-1.7-2.4-4.6-3.6-8.7-3.6
c-4.6,0-8.3,1.6-10.9,4.8c-2.6,3.2-4,7.7-4,13.4v38.6h-17.7v-69.2h17.3v9.8c2.1-3.8,5-6.6,8.6-8.6c3.7-1.9,7.9-2.9,12.6-2.9
c10.5,0,17.4,4.3,20.8,13c2.2-4.1,5.3-7.2,9.3-9.6c4.1-2.3,8.6-3.5,13.6-3.5C309.9,477.8,315.7,480.1,319.6,484.8"/>
<polygon class="st0" points="430.3,479.7 447.7,479.7 417.4,548.7 402,548.7 372,479.7 390.7,479.7 410.2,528.5 "/>
<path class="st0" d="M506.6,484.9c4.7,4.7,7.1,12,7.1,21.8v42h-16.8v-10.6c-1.6,3.7-4.1,6.6-7.6,8.6c-3.4,2.1-7.4,3.1-12,3.1
c-4.6,0-8.8-0.9-12.6-2.8c-3.8-1.9-6.7-4.5-8.9-7.8c-2.2-3.3-3.3-7-3.3-11c0-5.1,1.3-9.1,3.9-12c2.6-2.9,6.8-5,12.7-6.4
c5.9-1.3,13.9-2,24.2-2h3.5v-3.3c0-4.7-1-8.1-3-10.2c-2-2.1-5.4-3.1-10.1-3.1c-3.7,0-7.5,0.6-11.5,1.9c-4,1.3-8,3-11.8,5.3
l-5-12.2c3.9-2.5,8.5-4.5,14-6.1c5.5-1.6,10.7-2.4,15.6-2.4C494.7,477.8,501.9,480.2,506.6,484.9 M492.4,532.4
c3-3.2,4.5-7.2,4.5-12.2v-3h-2.5c-6.3,0-11.2,0.3-14.7,0.8c-3.5,0.6-6,1.6-7.5,3c-1.5,1.4-2.3,3.4-2.3,5.8c0,3,1,5.5,3.1,7.4
c2.1,1.9,4.7,2.9,7.9,2.9C485.5,537.1,489.4,535.5,492.4,532.4"/>
<path class="st0" d="M590.4,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-69.2h17.3v10.3c2.4-3.9,5.5-6.8,9.5-8.9
c4-2.1,8.4-3.1,13.4-3.1C580.1,477.8,586.3,480.2,590.4,484.9"/>
<path class="st0" d="M711.6,484.9c4.1,4.7,6.1,11.8,6.1,21.4v42.5h-17.7v-41.5c0-5.4-1-9.3-3-11.7c-2-2.5-5.2-3.7-9.6-3.7
c-5.1,0-9.2,1.6-12.2,4.8c-3.1,3.2-4.6,7.5-4.6,12.9v39.2h-17.7v-99.8h17.7v40.2c2.4-3.7,5.5-6.5,9.4-8.4
c3.9-1.9,8.3-2.9,13.1-2.9C701.3,477.8,707.5,480.2,711.6,484.9"/>
<path class="st0" d="M796.3,517.3h-47.1c0.6,6.4,2.5,11.2,5.8,14.3c3.3,3.1,8,4.7,14.2,4.7c7.6,0,14.6-2.5,20.9-7.4l5.1,12.2
c-3.2,2.6-7.2,4.8-12.1,6.4c-4.9,1.6-9.7,2.4-14.6,2.4c-11.3,0-20.3-3.2-26.8-9.6c-6.6-6.4-9.8-15.2-9.8-26.3
c0-7.1,1.4-13.4,4.2-18.8c2.8-5.5,6.8-9.7,12-12.7c5.1-3,11-4.5,17.5-4.5c9.5,0,17.1,3.1,22.6,9.2c5.5,6.1,8.3,14.6,8.3,25.3
V517.3z M754.5,494.8c-2.9,3-4.6,7.4-5.3,13h32c-0.2-5.8-1.6-10.1-4.2-13.1c-2.6-3-6.3-4.5-11-4.5
C761.2,490.3,757.4,491.8,754.5,494.8"/>
<path class="st0" d="M851.7,536.1l-0.8,13.2c-2.8,0.3-5.4,0.4-7.8,0.4c-9.7,0-16.9-2.2-21.5-6.7c-4.6-4.5-6.9-11.2-6.9-20v-30.1
h-13.3v-13.3h13.3v-20.7h17.7v20.7h18.3v13.3h-18.3v29.9c0,9.2,4.3,13.9,12.9,13.9C847.2,536.6,849.4,536.4,851.7,536.1"/>
<path class="st0" d="M985.2,494.8v47.8c-4.5,2.3-10,4.1-16.5,5.4c-6.5,1.3-13,2-19.7,2c-10.3,0-19.2-2.1-26.8-6.2
c-7.6-4.1-13.3-10-17.3-17.7c-4-7.7-6-16.8-6-27.4c0-10.5,2-19.6,6-27.2c4-7.7,9.7-13.6,17.1-17.7c7.4-4.1,16.1-6.2,26.1-6.2
c7,0,13.5,1,19.7,3c6.1,2,11.2,4.9,15.3,8.7l-6.1,13.2c-4.6-3.6-9.2-6.2-13.7-7.7c-4.5-1.6-9.4-2.3-14.8-2.3
c-10.3,0-18,3-23.3,9.1c-5.2,6.1-7.9,15.1-7.9,27.1c0,24.5,10.8,36.8,32.3,36.8c6.4,0,12.8-0.9,19.3-2.7v-25.1h-21.5v-13H985.2z
"/>
<path class="st0" d="M1017.1,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1028.6,549.9,1022.4,548.4,1017.1,545.5 M1048.7,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1041.3,536.1,1045.7,534.2,1048.7,530.5"/>
<path class="st0" d="M1098.5,545.5c-5.3-2.9-9.5-7.1-12.4-12.6c-2.9-5.5-4.4-11.8-4.4-19.1c0-7.3,1.5-13.6,4.4-19
c2.9-5.4,7.1-9.6,12.4-12.5c5.3-2.9,11.5-4.4,18.6-4.4c7.1,0,13.3,1.5,18.6,4.4c5.3,2.9,9.4,7.1,12.3,12.5
c2.9,5.4,4.3,11.8,4.3,19c0,7.3-1.4,13.6-4.3,19.1c-2.9,5.5-7,9.7-12.3,12.6c-5.3,2.9-11.5,4.4-18.6,4.4
C1110,549.9,1103.8,548.4,1098.5,545.5 M1130.1,530.5c3-3.8,4.5-9.3,4.5-16.7c0-7.3-1.5-12.8-4.5-16.6c-3-3.8-7.4-5.7-13-5.7
c-5.7,0-10,1.9-13.1,5.7c-3.1,3.8-4.6,9.4-4.6,16.6c0,7.4,1.5,12.9,4.5,16.7c3,3.8,7.4,5.7,13,5.7
C1122.7,536.1,1127.1,534.2,1130.1,530.5"/>
<path class="st0" d="M1165.9,447.4h19.5v17.4h-19.5V447.4z M1166.9,479.5h17.7v69.2h-17.7V479.5z"/>
</g>
</g>
</g>
<path class="st4" d="M15.1,363.1h90.5c8.3,0,15.1-6.7,15.1-15.1v-45.2l40.6,48.6c7.5,7.5,17.7,11.7,28.3,11.7h97
c8.3,0,15.1-6.7,15.1-15.1V76.6c0-8.3-6.7-15.1-15.1-15.1H196c-8.3,0-15.1,6.7-15.1,15.1v45.2l-40.6-48.6
c-7.5-7.5-17.7-11.7-28.3-11.7h-97C6.8,61.5,0,68.3,0,76.6V348C0,356.3,6.8,363.1,15.1,363.1z M54.3,130.9c0-5,4.1-9,9-9h48.2
c5,0,9,4.1,9,9v51.3H181l0-60.3h57.3c5,0,9,4.1,9,9v162.8c0,5-4,9-9,9H190c-5,0-9-4-9-9v-51.3h-60.4v60.3H63.3c-5,0-9-4-9-9V130.9z
"/>
<path class="st4" d="M411.9,424.7c4.2,0,7.6-3.4,7.6-7.6V7.6c0-4.2-3.4-7.6-7.6-7.6c-4.2,0-7.6,3.4-7.6,7.6v409.6
C404.4,421.3,407.7,424.7,411.9,424.7z"/>
<path class="st4" d="M1169.9,61.5h-632c-8.6,0-15.6,7-15.6,15.6v270.3c0,8.6,7,15.6,15.6,15.6h632c8.6,0,15.6-7,15.6-15.6V77.1
C1185.4,68.5,1178.5,61.5,1169.9,61.5z M745,291.9c-8.4,4.2-18.5,7.5-30.4,9.9c-11.9,2.4-24.1,3.7-36.5,3.7
c-19,0-35.4-3.8-49.4-11.4c-13.9-7.6-24.6-18.5-32-32.7c-7.4-14.2-11.1-31-11.1-50.6c0-19.3,3.7-36.1,11.1-50.3
c7.4-14.2,17.9-25.1,31.6-32.7c13.7-7.6,29.7-11.4,48.2-11.4c12.9,0,25,1.9,36.3,5.6c11.3,3.7,20.7,9.1,28.2,16.1l-11.2,24.3
c-8.5-6.6-16.9-11.4-25.2-14.2c-8.3-2.9-17.4-4.3-27.3-4.3c-19,0-33.3,5.6-43,16.9c-9.7,11.2-14.5,27.9-14.5,50
c0,45.3,19.9,67.9,59.6,67.9c11.8,0,23.7-1.7,35.5-5v-46.2h-39.7v-24H745V291.9z M895.4,273.9c-5.3,10.1-12.9,17.9-22.7,23.3
c-9.8,5.4-21.3,8.1-34.4,8.1c-13.1,0-24.5-2.7-34.4-8.1c-9.8-5.4-17.5-13.1-22.9-23.3c-5.4-10.1-8.1-21.9-8.1-35.3
c0-13.4,2.7-25.1,8.1-35.1c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1c13.1,0,24.5,2.7,34.4,8.1
c9.8,5.4,17.4,13.1,22.7,23.1c5.3,10,8,21.7,8,35.1C903.4,252,900.7,263.8,895.4,273.9z M1045.6,273.9
c-5.3,10.1-12.9,17.9-22.7,23.3c-9.8,5.4-21.3,8.1-34.4,8.1c-13.1,0-24.5-2.7-34.4-8.1c-9.8-5.4-17.5-13.1-22.9-23.3
c-5.4-10.1-8.1-21.9-8.1-35.3c0-13.4,2.7-25.1,8.1-35.1c5.4-10,13-17.7,22.9-23.1c9.8-5.4,21.3-8.1,34.4-8.1
c13.1,0,24.5,2.7,34.4,8.1c9.8,5.4,17.4,13.1,22.7,23.1c5.3,10,8,21.7,8,35.1C1053.6,252,1051,263.8,1045.6,273.9z M1113.2,303.1
h-32.7V175.4h32.7V303.1z M1114.8,153h-36.1v-32.1h36.1V153z"/>
<path class="st4" d="M838.3,197.3c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5c10.6,0,18.7-3.5,24.3-10.5c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
C856.8,200.8,848.8,197.3,838.3,197.3z"/>
<path class="st4" d="M988.6,197.3c-10.5,0-18.5,3.5-24.2,10.6c-5.7,7.1-8.5,17.3-8.5,30.7c0,13.6,2.8,23.9,8.4,30.8
c5.6,7,13.6,10.5,24,10.5c10.6,0,18.7-3.5,24.3-10.5c5.6-7,8.4-17.2,8.4-30.8c0-13.4-2.8-23.6-8.4-30.7
C1007,200.8,999,197.3,988.6,197.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 119 42.7" style="enable-background:new 0 0 119 42.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#0017A0;}
</style>
<g>
<g>
<defs>
<path id="SVGID_1_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h13.7c1.1,0,2.1,0.4,2.8,1.2l2.7,3.2
c0.7,0.9,1.9,1.4,3,1.4h41.3c0.9,0,1.6-0.7,1.6-1.6v-33c0-0.9-0.7-1.6-1.6-1.6H54z"/>
</defs>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="52.4293" y1="24.2191" x2="119" y2="24.2191">
<stop offset="2.612876e-04" style="stop-color:#0000AF"/>
<stop offset="0.2194" style="stop-color:#142DBF"/>
<stop offset="0.4641" style="stop-color:#2758CF"/>
<stop offset="0.6846" style="stop-color:#3577DA"/>
<stop offset="0.8707" style="stop-color:#3E8AE1"/>
<stop offset="1" style="stop-color:#4191E3"/>
</linearGradient>
<use xlink:href="#SVGID_1_" style="overflow:visible;fill:url(#SVGID_2_);"/>
<clipPath id="SVGID_3_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st0" d="M78.8,38.8v-3.7h-1.4v-0.7H81v0.7h-1.4v3.7H78.8z"/>
<path class="st0" d="M82.2,38.8v-4.3h2.9v0.6h-2.1v1.2h2v0.6h-2v1.3h2.1v0.6H82.2z"/>
<path class="st0" d="M86.4,38.8v-4.3h0.8v3.7h2v0.7H86.4z"/>
<path class="st0" d="M90.4,38.8v-4.3h2.9v0.6h-2.1v1.2h2v0.6h-2v1.3h2.1v0.6H90.4z"/>
<path class="st0" d="M97.8,34.4h0.8l-1.9,4.3h-0.6l-1.9-4.3h0.8l1.4,3.3L97.8,34.4z"/>
<path class="st0" d="M99.6,38.8v-4.3h0.8v4.3H99.6z"/>
<path class="st0" d="M102.5,38.7c-0.3-0.1-0.5-0.2-0.7-0.4l0.3-0.6c0.2,0.2,0.4,0.3,0.7,0.3c0.2,0.1,0.5,0.1,0.8,0.1
c0.3,0,0.5-0.1,0.7-0.2c0.2-0.1,0.2-0.3,0.2-0.4c0-0.2-0.1-0.3-0.2-0.4c-0.1-0.1-0.4-0.2-0.7-0.2c-0.4-0.1-0.7-0.2-0.9-0.3
c-0.2-0.1-0.4-0.2-0.5-0.4c-0.1-0.2-0.2-0.4-0.2-0.6c0-0.3,0.1-0.5,0.2-0.7c0.1-0.2,0.3-0.4,0.6-0.5c0.3-0.1,0.5-0.2,0.9-0.2
c0.3,0,0.6,0,0.9,0.1c0.3,0.1,0.5,0.2,0.7,0.4l-0.3,0.6c-0.4-0.3-0.8-0.5-1.3-0.5c-0.3,0-0.5,0.1-0.7,0.2
c-0.2,0.1-0.2,0.3-0.2,0.5c0,0.2,0.1,0.3,0.2,0.4c0.1,0.1,0.4,0.2,0.7,0.3c0.4,0.1,0.7,0.2,0.9,0.3c0.2,0.1,0.4,0.2,0.5,0.4
c0.1,0.2,0.2,0.4,0.2,0.6c0,0.3-0.1,0.5-0.2,0.7c-0.1,0.2-0.3,0.3-0.6,0.4c-0.3,0.1-0.6,0.2-0.9,0.2
C103.1,38.8,102.8,38.8,102.5,38.7z"/>
<path class="st0" d="M106.5,38.8v-4.3h0.8v4.3H106.5z"/>
<path class="st0" d="M108.9,38.8v-4.3h2.9v0.6h-2.1v1.2h2v0.6h-2v1.3h2.1v0.6H108.9z"/>
</g>
<path class="st1" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
C42.1,42.3,41.8,42.6,41.3,42.6"/>
<g>
<path class="st0" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
<path class="st0" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
<path class="st0" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
<path class="st0" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
</g>
<g>
<g>
<defs>
<path id="SVGID_4_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
</defs>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="0" y1="21.3127" x2="30.2681" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_4_" style="overflow:visible;fill:url(#SVGID_5_);"/>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_4_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st0" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 119 42.6" style="enable-background:new 0 0 119 42.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#0017A0;}
</style>
<g>
<g>
<g>
<defs>
<path id="SVGID_7_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
</defs>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="21.3127" x2="30.2681" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="1" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_1_);"/>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
</g>
<path class="st0" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
</g>
<path class="st1" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
C42.1,42.3,41.8,42.6,41.3,42.6"/>
<g>
<defs>
<path id="SVGID_10_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h63.4c0.9,0,1.6-0.7,1.6-1.6V7.7
c0-0.9-0.7-1.6-1.6-1.6H54z"/>
</defs>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="52.4293" y1="21.3127" x2="119" y2="21.3127">
<stop offset="0" style="stop-color:#0017A0"/>
<stop offset="0.9999" style="stop-color:#41A5F7"/>
</linearGradient>
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_3_);"/>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
</clipPath>
</g>
<g>
<path class="st0" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
<path class="st0" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
<path class="st0" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
<path class="st0" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 21 KiB

203
public/js/functions.js vendored
View File

@@ -1,15 +1,37 @@
function calculateSize(targetId, tries) {
if (tries == undefined) {
tries = 0;
}
setTimeout(function(){
if (($('#' + targetId).children(":first").height() == 0 || $('#' + targetId).children(":first").width() == 0) && tries < 4) {
calculateSize(targetId, tries + 1);
} else {
$('#' + targetId).height($('#' + targetId).children(":first").height());
$('#' + targetId).width($('#' + targetId).children(":first").width());
}
}, 500);
$('#' + targetId).css({backgroundColor: 'transparent'});
}
$(document).ready(function(){
$('#changePreferences, .cc_b_cp').click(function(){
$('#title_targeting').parent('li').hide();
$('#content_targeting').hide();
});
});
(function ($) { (function ($) {
/** /**
* @param {object} _options * @param {object} _options
*/ */
$.fn.loadMoreNews = function (_options) { $.fn.loadMoreNews = function (_options) {
var nextPage = 2;
var isLoading = false; var isLoading = false;
var page = 1; var page = 1;
var options = { var options = {
loadingElementId: '#loading', loadingElementId: '#loading',
container: '', container: '',
url: document.location.pathname url: document.location.pathname,
nextPage: 2
}; };
$.extend(options, _options); $.extend(options, _options);
@@ -26,7 +48,7 @@
var $container = $(options.container) var $container = $(options.container)
// Fire request for the next page // Fire request for the next page
$.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + nextPage}) $.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + options.nextPage})
.always(function () { .always(function () {
// Whether success or failure, update the UI again // Whether success or failure, update the UI again
isLoading = 0; isLoading = 0;
@@ -45,7 +67,7 @@
var id = this.toString(); var id = this.toString();
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data)); $(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
}); });
++nextPage; ++options.nextPage;
}); });
} }
}); });
@@ -80,25 +102,186 @@ $(function () {
var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone()); var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone());
var pos = $menuItem.offset(); var pos = $menuItem.offset();
submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left}); submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left});
submenu.on( "mouseleave", function(){ submenu.on( "mouseleave", function() {
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()}); $('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
$menuItem.removeClass('hover'); $menuItem.removeClass('hover');
} ); } );
$('body').append(submenu); $('body').append(submenu);
submenu.children('ul.submenu').slideDown(); submenu.children('ul.submenu').slideDown();
submenu.find('ul.submenu li.has_submenu').click(function(){ submenu.find('ul.submenu').subMenu({});
$(this).find('ul.submenu').slideToggle();
$(this).toggleClass('opened');
});
openPlayerInNewScreen(); openPlayerInNewScreen();
}); });
}; };
/**
* @param {object} _options
*/
$.fn.subMenu = function (_options) {
var options = {
menuSubmenuClass: 'has_submenu'
};
$.extend(options, _options);
var $container = $(this);
$container.find('li.' + options.menuSubmenuClass + ' > a').click(function(e) {
e.preventDefault();
var $li = $(this).closest('li');
$li.children('ul.submenu').slideToggle();
$li.toggleClass('opened');
});
};
}(jQuery)); }(jQuery));
$(function () { $(function () {
$('.menu, .mobile-menu').menu({}); $('.menu').menu({});
$('.mobile-menu').subMenu({});
$('.mobile_menu_button a').click(function() {
$('.mobile_menu_container').show();
});
$('.mobile_close_menu_button a').click(function() {
$('.mobile_menu_container').hide();
});
$('.mobile_menu_container').click(function(e){
var $target = $(e.target);
if(!$target.closest('#mobile_menu_nav').length &&
$('.mobile_menu_container').is(":visible")) {
$('.mobile_menu_container').hide();
}
});
});
$(function () {
$(".prettyPhoto[rel^='prettyPhoto']").prettyPhoto({
show_title: false,
slideshow: 3000,
overlay_gallery: true,
social_tools: ''
});
});
$(function () {
$('.scroll_top').click(function (e) {
e.preventDefault();
$("html, body").stop().animate({scrollTop: 0}, 500, 'swing');
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.share = function (_options) {
var options = {
type: '',
types: {
facebook: {
url: 'https://www.facebook.com/sharer/sharer.php?u=',
textOption: false
},
twitter_x: {
url: 'https://twitter.com/share?url=',
textOption: 'text='
},
},
excerptClass: 'excerpt'
};
$.extend(options, _options);
this.click(function (e) {
e.preventDefault();
var type = options.types[options.type];
if (options.type == 'native' && navigator.share != undefined) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
var data = {
url: encodeURI(location.href),
text: text,
title: $('.page_title').text().trim()
};
navigator.share(data)
}
else if (type !== undefined) {
var extra = '';
if (type.textOption) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
extra = '&' + type.textOption + encodeURI(text);
}
window.open(type.url + encodeURI(location.href) + extra, "pop", "width=600, height=400, scrollbars=no");
} else {
console.error(options.type + ' is unknown');
}
});
};
}(jQuery));
$(function () {
$('[data-share]').each(function () {
$(this).share({type: $(this).data('share')});
});
});
(function ($) {
/**
* @param {object} _options
*/
$.fn.snapTo = function (_options) {
var options = {
elementClass: 'post'
};
$.extend(options, _options);
var $container = $(this);
var $elements = $container.find('.' + options.elementClass + ':visible');
var stopSnapTo = false;
var snapTimeout = null;
var snapHandler = function() {
if (!stopSnapTo) {
stopSnapTo = true;
var y = $container.scrollLeft();
$elements.each(function () {
var offset = $(this).offset();
if (offset.left > -(window.screen.width / 2) && offset.left < window.screen.width / 2) {
$container.animate({
scrollLeft: Math.round(y + offset.left) + 'px'
}, 300);
return false;
}
});
if (snapTimeout) {
clearTimeout(snapTimeout);
}
snapTimeout = setTimeout(function () {
stopSnapTo = false;
}, 500);
}
}
var snapToHandlerTimer = null;
var scrollHandler = function() {
if (snapToHandlerTimer) {
clearTimeout(snapToHandlerTimer);
}
snapToHandlerTimer = setTimeout(snapHandler, 300);
};
$container.on( "scroll", scrollHandler);
};
}(jQuery));
$(function () {
$('[data-snapto]').each(function () {
$(this).snapTo($(this).data('snapto'));
});
}); });
(function ($) { (function ($) {

File diff suppressed because one or more lines are too long

910
public/js/jquery.prettyPhoto.js vendored Normal file
View File

@@ -0,0 +1,910 @@
/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.1.6
------------------------------------------------------------------------- */
(function($) {
$.prettyPhoto = {version: '3.1.6'};
$.fn.prettyPhoto = function(pp_settings) {
pp_settings = jQuery.extend({
hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */
animation_speed: 'fast', /* fast/slow/normal */
ajaxcallback: function() {},
slideshow: 5000, /* false OR interval time in ms */
autoplay_slideshow: false, /* true/false */
opacity: 0.80, /* Value between 0 and 1 */
show_title: true, /* true/false */
allow_resize: true, /* Resize the photos bigger than viewport. true/false */
allow_expand: true, /* Allow the user to expand a resized image. true/false */
default_width: 500,
default_height: 344,
counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
horizontal_padding: 20, /* The padding on each side of the picture */
hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
wmode: 'opaque', /* Set the flash wmode attribute */
autoplay: true, /* Automatically start videos: True/False */
modal: false, /* If set to true, only the close button will close the window */
deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */
overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */
keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
callback: function(){}, /* Called when prettyPhoto is closed */
ie6_fallback: true,
markup: '<div class="pp_pic_holder"> \
<div class="ppt">&nbsp;</div> \
<div class="pp_top"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
<div class="pp_content_container"> \
<div class="pp_left"> \
<div class="pp_right"> \
<div class="pp_content"> \
<div class="pp_loaderIcon"></div> \
<div class="pp_fade"> \
<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
<div class="pp_hoverContainer"> \
<a class="pp_next" href="#">next</a> \
<a class="pp_previous" href="#">previous</a> \
</div> \
<div id="pp_full_res"></div> \
<div class="pp_details"> \
<div class="pp_nav"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<p class="currentTextHolder">0/0</p> \
<a href="#" class="pp_arrow_next">Next</a> \
</div> \
<p class="pp_description"></p> \
<div class="pp_social">{pp_social}</div> \
<a class="pp_close" href="#">Close</a> \
</div> \
</div> \
</div> \
</div> \
</div> \
</div> \
<div class="pp_bottom"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
</div> \
<div class="pp_overlay"></div>',
gallery_markup: '<div class="pp_gallery"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<div> \
<ul> \
{gallery} \
</ul> \
</div> \
<a href="#" class="pp_arrow_next">Next</a> \
</div>',
image_markup: '<img id="fullResImage" src="{path}" />',
flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',
iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
inline_markup: '<div class="pp_inline">{content}</div>',
custom_markup: '',
social_tools: '<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>' /* html or false to disable */
}, pp_settings);
// Global variables accessible only by prettyPhoto
var matchedObjects = this, percentBased = false, pp_dimensions, pp_open,
// prettyPhoto container specific
pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
// Window size
windowHeight = $(window).height(), windowWidth = $(window).width(),
// Global elements
pp_slideshow;
doresize = true, scroll_pos = _get_scroll();
// Window/Keyboard events
$(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); });
if(pp_settings.keyboard_shortcuts) {
$(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){
if(typeof $pp_pic_holder != 'undefined'){
if($pp_pic_holder.is(':visible')){
switch(e.keyCode){
case 37:
$.prettyPhoto.changePage('previous');
e.preventDefault();
break;
case 39:
$.prettyPhoto.changePage('next');
e.preventDefault();
break;
case 27:
if(!settings.modal)
$.prettyPhoto.close();
e.preventDefault();
break;
};
// return false;
};
};
});
};
/**
* Initialize prettyPhoto.
*/
$.prettyPhoto.initialize = function() {
settings = pp_settings;
if(settings.theme == 'pp_default') settings.horizontal_padding = 16;
// Find out if the picture is part of a set
theRel = $(this).attr(settings.hook);
galleryRegExp = /\[(?:.*)\]/;
isSet = (galleryRegExp.exec(theRel)) ? true : false;
// Put the SRCs, TITLEs, ALTs into an array.
pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href'));
pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt'));
pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title'));
if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false;
set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this));
_build_overlay(this); // Build the overlay {this} being the caller
if(settings.allow_resize)
$(window).bind('scroll.prettyphoto',function(){ _center_overlay(); });
$.prettyPhoto.open();
return false;
}
/**
* Opens the prettyPhoto modal box.
* @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
* @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
* @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
*/
$.prettyPhoto.open = function(event) {
if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables
settings = pp_settings;
pp_images = $.makeArray(arguments[0]);
pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray("");
pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
isSet = (pp_images.length > 1) ? true : false;
set_position = (arguments[3])? arguments[3]: 0;
_build_overlay(event.target); // Build the overlay {this} being the caller
}
if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash
_checkPosition($(pp_images).length); // Hide the next/previous links if on first or last images.
$('.pp_loaderIcon').show();
if(settings.deeplinking)
setHashtag();
// Rebuild Facebook Like Button with updated href
if(settings.social_tools){
facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
$pp_pic_holder.find('.pp_social').html(facebook_like_link);
}
// Fade the content in
if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);
// Display the current position
$pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).length);
// Set the description
if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){
$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
}else{
$pp_pic_holder.find('.pp_description').hide();
}
// Get the dimensions
movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString();
movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString();
// If the size is % based, calculate according to window dimensions
percentBased=false;
if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; }
if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; }
// Fade the holder
$pp_pic_holder.fadeIn(function(){
// Set the title
(settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html('&nbsp;');
imgPreloader = "";
skipInjection = false;
// Inject the proper content
switch(_getFileType(pp_images[set_position])){
case 'image':
imgPreloader = new Image();
// Preload the neighbour images
nextImage = new Image();
if(isSet && set_position < $(pp_images).length -1) nextImage.src = pp_images[set_position + 1];
prevImage = new Image();
if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1];
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]);
imgPreloader.onload = function(){
// Fit item to viewport
pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height);
_showContent();
};
imgPreloader.onerror = function(){
alert('Image cannot be loaded. Make sure the path is correct and image exist.');
$.prettyPhoto.close();
};
imgPreloader.src = pp_images[set_position];
break;
case 'youtube':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
// Regular youtube link
movie_id = getParam('v',pp_images[set_position]);
// youtu.be link
if(movie_id == ""){
movie_id = pp_images[set_position].split('youtu.be/');
movie_id = movie_id[1];
if(movie_id.indexOf('?') > 0)
movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ?
if(movie_id.indexOf('&') > 0)
movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the &
}
movie = 'http://www.youtube.com/embed/'+movie_id;
(getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1";
if(settings.autoplay) movie += "&autoplay=1";
toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
break;
case 'vimeo':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
movie_id = pp_images[set_position];
var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/;
var match = movie_id.match(regExp);
movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&amp;byline=0&amp;portrait=0';
if(settings.autoplay) movie += "&autoplay=1;";
vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width'];
toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);
break;
case 'quicktime':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar
toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);
break;
case 'flash':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
flash_vars = pp_images[set_position];
flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length);
filename = pp_images[set_position];
filename = filename.substring(0,filename.indexOf('?'));
toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
break;
case 'iframe':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
frame_url = pp_images[set_position];
frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);
break;
case 'ajax':
doresize = false; // Make sure the dimensions are not resized.
pp_dimensions = _fitToViewport(movie_width,movie_height);
doresize = true; // Reset the dimensions
skipInjection = true;
$.get(pp_images[set_position],function(responseHTML){
toInject = settings.inline_markup.replace(/{content}/g,responseHTML);
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
_showContent();
});
break;
case 'custom':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
toInject = settings.custom_markup;
break;
case 'inline':
// to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show();
doresize = false; // Make sure the dimensions are not resized.
pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height());
doresize = true; // Reset the dimensions
$(myClone).remove();
toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());
break;
};
if(!imgPreloader && !skipInjection){
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
// Show content
_showContent();
};
});
return false;
};
/**
* Change page in the prettyPhoto modal box
* @param direction {String} Direction of the paging, previous or next.
*/
$.prettyPhoto.changePage = function(direction){
currentGalleryPage = 0;
if(direction == 'previous') {
set_position--;
if (set_position < 0) set_position = $(pp_images).length-1;
}else if(direction == 'next'){
set_position++;
if(set_position > $(pp_images).length-1) set_position = 0;
}else{
set_position=direction;
};
rel_index = set_position;
if(!doresize) doresize = true; // Allow the resizing of the images
if(settings.allow_expand) {
$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');
}
_hideContent(function(){ $.prettyPhoto.open(); });
};
/**
* Change gallery page in the prettyPhoto modal box
* @param direction {String} Direction of the paging, previous or next.
*/
$.prettyPhoto.changeGalleryPage = function(direction){
if(direction=='next'){
currentGalleryPage ++;
if(currentGalleryPage > totalPage) currentGalleryPage = 0;
}else if(direction=='previous'){
currentGalleryPage --;
if(currentGalleryPage < 0) currentGalleryPage = totalPage;
}else{
currentGalleryPage = direction;
};
slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0;
slide_to = currentGalleryPage * (itemsPerPage * itemWidth);
$pp_gallery.find('ul').animate({left:-slide_to},slide_speed);
};
/**
* Start the slideshow...
*/
$.prettyPhoto.startSlideshow = function(){
if(typeof pp_slideshow == 'undefined'){
$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){
$.prettyPhoto.stopSlideshow();
return false;
});
pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow);
}else{
$.prettyPhoto.changePage('next');
};
}
/**
* Stop the slideshow...
*/
$.prettyPhoto.stopSlideshow = function(){
$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){
$.prettyPhoto.startSlideshow();
return false;
});
clearInterval(pp_slideshow);
pp_slideshow=undefined;
}
/**
* Closes prettyPhoto.
*/
$.prettyPhoto.close = function(){
if($pp_overlay.is(":animated")) return;
$.prettyPhoto.stopSlideshow();
$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');
$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); });
$pp_overlay.fadeOut(settings.animation_speed, function(){
if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash
$(this).remove(); // No more need for the prettyPhoto markup
$(window).unbind('scroll.prettyphoto');
clearHashtag();
settings.callback();
doresize = true;
pp_open = false;
delete settings;
});
};
/**
* Set the proper sizes on the containers and animate the content in.
*/
function _showContent(){
$('.pp_loaderIcon').hide();
// Calculate the opened top position of the pic holder
projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2));
if(projectedTop < 0) projectedTop = 0;
$ppt.fadeTo(settings.animation_speed,1);
// Resize the content holder
$pp_pic_holder.find('.pp_content')
.animate({
height:pp_dimensions['contentHeight'],
width:pp_dimensions['contentWidth']
},settings.animation_speed);
// Resize picture the holder
$pp_pic_holder.animate({
'top': projectedTop,
'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2),
width:pp_dimensions['containerWidth']
},settings.animation_speed,function(){
$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);
$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content
// Show the nav
if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }
if(settings.allow_expand) {
if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized
$('a.pp_expand,a.pp_contract').show();
}else{
$('a.pp_expand').hide();
}
}
if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow();
settings.changepicturecallback(); // Callback!
pp_open = true;
});
_insert_gallery();
pp_settings.ajaxcallback();
};
/**
* Hide the content...DUH!
*/
function _hideContent(callback){
// Fade out the current picture
$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){
$('.pp_loaderIcon').show();
callback();
});
};
/**
* Check the item position in the gallery array, hide or show the navigation links
* @param setCount {integer} The total number of items in the set
*/
function _checkPosition(setCount){
(setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set.
};
/**
* Resize the item dimensions if it's bigger than the viewport
* @param width {integer} Width of the item to be opened
* @param height {integer} Height of the item to be opened
* @return An array containin the "fitted" dimensions
*/
function _fitToViewport(width,height){
resized = false;
_getDimensions(width,height);
// Define them in case there's no resize needed
imageWidth = width, imageHeight = height;
if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) {
resized = true, fitting = false;
while (!fitting){
if((pp_containerWidth > windowWidth)){
imageWidth = (windowWidth - 200);
imageHeight = (height/width) * imageWidth;
}else if((pp_containerHeight > windowHeight)){
imageHeight = (windowHeight - 200);
imageWidth = (width/height) * imageHeight;
}else{
fitting = true;
};
pp_containerHeight = imageHeight, pp_containerWidth = imageWidth;
};
if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){
_fitToViewport(pp_containerWidth,pp_containerHeight)
};
_getDimensions(imageWidth,imageHeight);
};
return {
width:Math.floor(imageWidth),
height:Math.floor(imageHeight),
containerHeight:Math.floor(pp_containerHeight),
containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2),
contentHeight:Math.floor(pp_contentHeight),
contentWidth:Math.floor(pp_contentWidth),
resized:resized
};
};
/**
* Get the containers dimensions according to the item size
* @param width {integer} Width of the item to be opened
* @param height {integer} Height of the item to be opened
*/
function _getDimensions(width,height){
width = parseFloat(width);
height = parseFloat(height);
// Get the details height, to do so, I need to clone it since it's invisible
$pp_details = $pp_pic_holder.find('.pp_details');
$pp_details.width(width);
detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
$pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({
'position':'absolute',
'top':-10000
});
detailsHeight += $pp_details.height();
detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
$pp_details.remove();
// Get the titles height, to do so, I need to clone it since it's invisible
$pp_title = $pp_pic_holder.find('.ppt');
$pp_title.width(width);
titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom'));
$pp_title = $pp_title.clone().appendTo($('body')).css({
'position':'absolute',
'top':-10000
});
titleHeight += $pp_title.height();
$pp_title.remove();
// Get the container size, to resize the holder to the right dimensions
pp_contentHeight = height + detailsHeight;
pp_contentWidth = width;
pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
pp_containerWidth = width;
}
function _getFileType(itemSrc){
if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) {
return 'youtube';
}else if (itemSrc.match(/vimeo\.com/i)) {
return 'vimeo';
}else if(itemSrc.match(/\b.mov\b/i)){
return 'quicktime';
}else if(itemSrc.match(/\b.swf\b/i)){
return 'flash';
}else if(itemSrc.match(/\biframe=true\b/i)){
return 'iframe';
}else if(itemSrc.match(/\bajax=true\b/i)){
return 'ajax';
}else if(itemSrc.match(/\bcustom=true\b/i)){
return 'custom';
}else if(itemSrc.substr(0,1) == '#'){
return 'inline';
}else{
return 'image';
};
};
function _center_overlay(){
if(doresize && typeof $pp_pic_holder != 'undefined') {
scroll_pos = _get_scroll();
contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width();
projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2);
if(projectedTop < 0) projectedTop = 0;
if(contentHeight > windowHeight)
return;
$pp_pic_holder.css({
'top': projectedTop,
'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2)
});
};
};
function _get_scroll(){
if (self.pageYOffset) {
return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
} else if (document.body) {// all other Explorers
return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
};
};
function _resize_overlay() {
windowHeight = $(window).height(), windowWidth = $(window).width();
if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth);
};
function _insert_gallery(){
if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") {
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme
itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth);
itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1;
// Hide the nav in the case there's no need for links
if(totalPage == 0){
navWidth = 0; // No nav means no width!
$pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide();
}else{
$pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show();
};
galleryWidth = itemsPerPage * itemWidth;
fullGalleryWidth = pp_images.length * itemWidth;
// Set the proper width to the gallery items
$pp_gallery
.css('margin-left',-((galleryWidth/2) + (navWidth/2)))
.find('div:first').width(galleryWidth+5)
.find('ul').width(fullGalleryWidth)
.find('li.selected').removeClass('selected');
goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage;
$.prettyPhoto.changeGalleryPage(goToPage);
$pp_gallery_li.filter(':eq('+set_position+')').addClass('selected');
}else{
$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');
// $pp_gallery.hide();
}
}
function _build_overlay(caller){
// Inject Social Tool markup into General markup
if(settings.social_tools)
facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
settings.markup = settings.markup.replace('{pp_social}','');
$('body').append(settings.markup); // Inject the markup
$pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
// Inject the inline gallery!
if(isSet && settings.overlay_gallery) {
currentGalleryPage = 0;
toInject = "";
for (var i=0; i < pp_images.length; i++) {
if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){
classname = 'default';
img_src = '';
}else{
classname = '';
img_src = pp_images[i];
}
toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>";
};
toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
$pp_pic_holder.find('#pp_full_res').after(toInject);
$pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors
$pp_gallery.find('.pp_arrow_next').click(function(){
$.prettyPhoto.changeGalleryPage('next');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_gallery.find('.pp_arrow_previous').click(function(){
$.prettyPhoto.changeGalleryPage('previous');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_pic_holder.find('.pp_content').hover(
function(){
$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();
},
function(){
$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();
});
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
$pp_gallery_li.each(function(i){
$(this)
.find('a')
.click(function(){
$.prettyPhoto.changePage(i);
$.prettyPhoto.stopSlideshow();
return false;
});
});
};
// Inject the play/pause if it's a slideshow
if(settings.slideshow){
$pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
$pp_pic_holder.find('.pp_nav .pp_play').click(function(){
$.prettyPhoto.startSlideshow();
return false;
});
}
$pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
$pp_overlay
.css({
'opacity':0,
'height':$(document).height(),
'width':$(window).width()
})
.bind('click',function(){
if(!settings.modal) $.prettyPhoto.close();
});
$('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; });
if(settings.allow_expand) {
$('a.pp_expand').bind('click',function(e){
// Expand the image
if($(this).hasClass('pp_expand')){
$(this).removeClass('pp_expand').addClass('pp_contract');
doresize = false;
}else{
$(this).removeClass('pp_contract').addClass('pp_expand');
doresize = true;
};
_hideContent(function(){ $.prettyPhoto.open(); });
return false;
});
}
$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){
$.prettyPhoto.changePage('previous');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){
$.prettyPhoto.changePage('next');
$.prettyPhoto.stopSlideshow();
return false;
});
_center_overlay(); // Center it
};
if(!pp_alreadyInitialized && getHashtag()){
pp_alreadyInitialized = true;
// Grab the rel index to trigger the click on the correct element
hashIndex = getHashtag();
hashRel = hashIndex;
hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);
hashRel = hashRel.substring(0,hashRel.indexOf('/'));
// Little timeout to make sure all the prettyPhoto initialize scripts has been run.
// Useful in the event the page contain several init scripts.
setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50);
}
return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
};
function getHashtag(){
var url = location.href;
hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false;
if(hashtag){ hashtag = hashtag.replace(/<|>/g,''); }
return hashtag;
};
function setHashtag(){
if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API
location.hash = theRel + '/'+rel_index+'/';
};
function clearHashtag(){
if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto";
}
function getParam(name,url){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
return ( results == null ) ? "" : results[1];
}
})(jQuery);
var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.

File diff suppressed because one or more lines are too long

41
public/js/main.js vendored
View File

@@ -1,41 +0,0 @@
function loadMoreNews(e, _options) {
var options = $.extend( {
loadingElementId: '#loading'
}, _options );
window.loadMoreNews = window.loadMoreNewsSettings ?? {}
var nextPage = window.loadMoreNewsSettings.nextPage ?? 2;
var isLoading = window.loadMoreNewsSettings.isLoading ?? false;
var $isLoading = $(options.loadingElementId).hide();
e.preventDefault();
if (!isLoading) {
// Set flag and update UI
isLoading = 1;
$isLoading.show();
var $button = $(this).attr("disabled", "disabled");
// Fire request for the next page
$.ajax({url: document.location.pathname + '?pagina=' + nextPage})
.always(function () {
// Whether success or failure, update the UI again
isLoading = 0;
$isLoading.hide();
$button.removeAttr("disabled");
})
.done(function (data) {
if (!data) {
// When no data was returned, disable the button permanently
page = -1;
$button.attr("disabled", "disabled").text("Geen nieuws meer.");
return;
}
console.log($(data));
console.log($(data).find('#items-more-news'));
$('#items-more-news').append($(data).find('#items-more-news'));
$('#items-most-read').append($(data).find('#items-most-read'));
++nextPage;
});
}
}

1
public/site.webmanifest Normal file
View File

@@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

View File

@@ -0,0 +1,14 @@
function calculateSize(targetId, tries) {
if (tries == undefined) {
tries = 0;
}
setTimeout(function(){
if (($('#' + targetId).children(":first").height() == 0 || $('#' + targetId).children(":first").width() == 0) && tries < 4) {
calculateSize(targetId, tries + 1);
} else {
$('#' + targetId).height($('#' + targetId).children(":first").height());
$('#' + targetId).width($('#' + targetId).children(":first").width());
}
}, 500);
$('#' + targetId).css({backgroundColor: 'transparent'});
}

View File

@@ -0,0 +1,6 @@
$(document).ready(function(){
$('#changePreferences, .cc_b_cp').click(function(){
$('#title_targeting').parent('li').hide();
$('#content_targeting').hide();
});
});

View File

@@ -3,13 +3,13 @@
* @param {object} _options * @param {object} _options
*/ */
$.fn.loadMoreNews = function (_options) { $.fn.loadMoreNews = function (_options) {
var nextPage = 2;
var isLoading = false; var isLoading = false;
var page = 1; var page = 1;
var options = { var options = {
loadingElementId: '#loading', loadingElementId: '#loading',
container: '', container: '',
url: document.location.pathname url: document.location.pathname,
nextPage: 2
}; };
$.extend(options, _options); $.extend(options, _options);
@@ -26,7 +26,7 @@
var $container = $(options.container) var $container = $(options.container)
// Fire request for the next page // Fire request for the next page
$.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + nextPage}) $.ajax({url: options.url + (options.url.indexOf('?') >= 0 ? '&' : '?') + 'pagina=' + options.nextPage})
.always(function () { .always(function () {
// Whether success or failure, update the UI again // Whether success or failure, update the UI again
isLoading = 0; isLoading = 0;
@@ -45,7 +45,7 @@
var id = this.toString(); var id = this.toString();
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data)); $(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
}); });
++nextPage; ++options.nextPage;
}); });
} }
}); });

View File

@@ -19,23 +19,52 @@
var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone()); var submenu = $('<div style="width: ' + $menuItem.outerWidth() + 'px"><a href="' + $menuItem.find('a').attr('href') + '" style="width: ' + $menuItem.outerWidth() + 'px"></a></div>').append($menuItem.children('ul.submenu').clone());
var pos = $menuItem.offset(); var pos = $menuItem.offset();
submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left}); submenu.addClass('menu-submenu').css({top: pos.top, left: pos.left});
submenu.on( "mouseleave", function(){ submenu.on( "mouseleave", function() {
$('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()}); $('.menu-submenu > ul.submenu').slideUp(400, function(){$(this).closest('.menu-submenu').remove()});
$menuItem.removeClass('hover'); $menuItem.removeClass('hover');
} ); } );
$('body').append(submenu); $('body').append(submenu);
submenu.children('ul.submenu').slideDown(); submenu.children('ul.submenu').slideDown();
submenu.find('ul.submenu li.has_submenu').click(function(){ submenu.find('ul.submenu').subMenu({});
$(this).find('ul.submenu').slideToggle();
$(this).toggleClass('opened');
});
openPlayerInNewScreen(); openPlayerInNewScreen();
}); });
}; };
/**
* @param {object} _options
*/
$.fn.subMenu = function (_options) {
var options = {
menuSubmenuClass: 'has_submenu'
};
$.extend(options, _options);
var $container = $(this);
$container.find('li.' + options.menuSubmenuClass + ' > a').click(function(e) {
e.preventDefault();
var $li = $(this).closest('li');
$li.children('ul.submenu').slideToggle();
$li.toggleClass('opened');
});
};
}(jQuery)); }(jQuery));
$(function () { $(function () {
$('.menu, .mobile-menu').menu({}); $('.menu').menu({});
$('.mobile-menu').subMenu({});
$('.mobile_menu_button a').click(function() {
$('.mobile_menu_container').show();
});
$('.mobile_close_menu_button a').click(function() {
$('.mobile_menu_container').hide();
});
$('.mobile_menu_container').click(function(e){
var $target = $(e.target);
if(!$target.closest('#mobile_menu_nav').length &&
$('.mobile_menu_container').is(":visible")) {
$('.mobile_menu_container').hide();
}
});
}); });

View File

@@ -0,0 +1,8 @@
$(function () {
$(".prettyPhoto[rel^='prettyPhoto']").prettyPhoto({
show_title: false,
slideshow: 3000,
overlay_gallery: true,
social_tools: ''
});
});

View File

@@ -0,0 +1,6 @@
$(function () {
$('.scroll_top').click(function (e) {
e.preventDefault();
$("html, body").stop().animate({scrollTop: 0}, 500, 'swing');
});
});

60
resources/assets/js/functions/share.js vendored Normal file
View File

@@ -0,0 +1,60 @@
(function ($) {
/**
* @param {object} _options
*/
$.fn.share = function (_options) {
var options = {
type: '',
types: {
facebook: {
url: 'https://www.facebook.com/sharer/sharer.php?u=',
textOption: false
},
twitter_x: {
url: 'https://twitter.com/share?url=',
textOption: 'text='
},
},
excerptClass: 'excerpt'
};
$.extend(options, _options);
this.click(function (e) {
e.preventDefault();
var type = options.types[options.type];
if (options.type == 'native' && navigator.share != undefined) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
var data = {
url: encodeURI(location.href),
text: text,
title: $('.page_title').text().trim()
};
navigator.share(data)
}
else if (type !== undefined) {
var extra = '';
if (type.textOption) {
var text = $('.' + options.excerptClass).text().trim();
if (text.length + location.href.length > 278) {
text = text.substring(0, 278 - (location.href.length + 3)) + '...';
}
extra = '&' + type.textOption + encodeURI(text);
}
window.open(type.url + encodeURI(location.href) + extra, "pop", "width=600, height=400, scrollbars=no");
} else {
console.error(options.type + ' is unknown');
}
});
};
}(jQuery));
$(function () {
$('[data-share]').each(function () {
$(this).share({type: $(this).data('share')});
});
});

54
resources/assets/js/functions/snapTo.js vendored Normal file
View File

@@ -0,0 +1,54 @@
(function ($) {
/**
* @param {object} _options
*/
$.fn.snapTo = function (_options) {
var options = {
elementClass: 'post'
};
$.extend(options, _options);
var $container = $(this);
var $elements = $container.find('.' + options.elementClass + ':visible');
var stopSnapTo = false;
var snapTimeout = null;
var snapHandler = function() {
if (!stopSnapTo) {
stopSnapTo = true;
var y = $container.scrollLeft();
$elements.each(function () {
var offset = $(this).offset();
if (offset.left > -(window.screen.width / 2) && offset.left < window.screen.width / 2) {
$container.animate({
scrollLeft: Math.round(y + offset.left) + 'px'
}, 300);
return false;
}
});
if (snapTimeout) {
clearTimeout(snapTimeout);
}
snapTimeout = setTimeout(function () {
stopSnapTo = false;
}, 500);
}
}
var snapToHandlerTimer = null;
var scrollHandler = function() {
if (snapToHandlerTimer) {
clearTimeout(snapToHandlerTimer);
}
snapToHandlerTimer = setTimeout(snapHandler, 300);
};
$container.on( "scroll", scrollHandler);
};
}(jQuery));
$(function () {
$('[data-snapto]').each(function () {
$(this).snapTo($(this).data('snapto'));
});
});

View File

@@ -1,20 +1,34 @@
@use "variables" as *; @use "variables" as *;
@mixin container {
max-width: 1170px;
margin: 0 auto;
}
@mixin reset-list { @mixin reset-list {
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style: none; list-style: none;
} }
@mixin post_date { @mixin font_base {
display: block;
height: 30px;
font-family: Nunito, serif; font-family: Nunito, serif;
font-size: 12px;
font-weight: 500; font-weight: 500;
line-height: 3.17; line-height: 3.17;
letter-spacing: normal; letter-spacing: normal;
text-align: left; text-align: left;
color: #666; }
@mixin font_normal {
@include font_base;
font-size: 14px;
}
@mixin font_small {
@include font_base;
font-size: 12px;
}
@mixin post_date {
@include font_small;
color: $text-secondary-color;
display: block;
height: 30px;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
@@ -30,11 +44,7 @@
} }
@mixin program_name { @mixin program_name {
font-family: Nunito, serif; @include font_small;
font-size: 12px;
font-weight: 500;
line-height: 3.17;
text-align: left;
color: #000; color: #000;
margin-right: 10px; margin-right: 10px;
text-decoration: none; text-decoration: none;

View File

@@ -1,46 +1,14 @@
// Container
// Body $container-bg: #f9f9f9;
$body-bg: #f5f8fa;
// Borders
$laravel-border-color: darken($body-bg, 10%);
$list-group-border: $laravel-border-color;
$navbar-default-border: $laravel-border-color;
$panel-default-border: $laravel-border-color;
$panel-inner-border: $laravel-border-color;
// Brands
$brand-primary: #3097D1;
$brand-info: #8eb4cb;
$brand-success: #2ab27b;
$brand-warning: #cbb956;
$brand-danger: #bf5329;
// Typography
$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
$font-family-sans-serif: "Raleway", sans-serif;
$font-size-base: 14px;
$line-height-base: 1.6;
$text-color: #636b6f;
// Navbar
$navbar-default-bg: #fff;
// Buttons
$btn-default-color: $text-color;
// Inputs
$input-border: lighten($text-color, 40%);
$input-border-focus: lighten($brand-primary, 25%);
$input-color-placeholder: lighten($text-color, 30%);
// Panels
$panel-default-heading-bg: #fff;
// Nav // Nav
$nav-text-color: #1a1a1a;
$nav-text-weight: bold; $nav-text-weight: bold;
$nav-text-size: 14px; $nav-text-size: 14px;
// News // Base
$news-banner-text-color: #fff; $text-color: #1a1a1a;
$text-inverted-color: #fff;
$text-secondary-color: #666;
$text-dark-color: #282828;
$element-bg: #fff;
$text-description-color: #585858;

View File

@@ -2,5 +2,36 @@
@use "clearfix"; @use "clearfix";
@use "container"; @use "container";
@use "../components/button"; @use "../components/button";
@use "../components/pretty_photo";
@use "../components/cookie";
@use "../components/list";
@use "../layout"; @use "../layout";
@use "mobile";
.mejs__overlay-button {
border: none;
}
.clipText {
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
}
@for $i from 1 through (10) {
.clipText-#{$i} {
-webkit-line-clamp: $i;
}
}
a, a:hover, a:active {
color: #0f259d;
}
@media (min-width: 768px) {
.md_padding_top_80 {
padding-top: 80px
}
}

View File

@@ -1,9 +1,43 @@
@use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
body {
margin: 0;
padding: 0;
}
.site_container { .site_container {
max-width: 1440px;
margin: 0 auto;
} }
.body_container { .body_container {
padding: 67px 135px; @include container;
background-color: #f9f9f9; padding: 67px 0;
margin: 0; @media (max-width: 768px) {
padding: 50px 0;
}
background-color: $container-bg;
}
.header_container {
@include container;
}
@media (min-width: 768px) {
.grey_background:not(.site_container) {
background-color: $container-bg;
}
}
.page {
padding-top: 20px;
}
.content_container {
padding-right: 50px;
}
.sidebar {
width: CALC(300px + var(--bs-gutter-x));
}
@media (max-width: 768px) {
.content_container {
padding-right: calc(var(--bs-gutter-x)* .5);
}
.site_container {
overflow: hidden;
}
} }

View File

View File

@@ -1,27 +1,36 @@
@use "../abstracts/mixin" as *; @use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.blog { .blog {
@include reset-list; @include reset-list;
.post { .post {
margin-bottom: 27px; margin-bottom: 27px;
&:not(.auto_height) {
height: 90px;
}
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
} }
h2 { .post_title {
margin: 0; margin: 0;
font-family: Montserrat, serif;
font-size: 14px;
font-weight: 600;
line-height: 1.43;
color: $text-color;
a { a {
font-family: Montserrat, serif;
font-size: 14px;
font-weight: 600;
line-height: 1.43;
color: #1a1a1a;
text-decoration: none; text-decoration: none;
display: inline-block; display: inline-block;
color: $text-color;
&.clipText {
display: -webkit-box;
}
} }
} }
@@ -32,5 +41,17 @@
.post_date { .post_date {
@include post_date; @include post_date;
} }
.disabled {
color: #A1A1A1;
cursor: not-allowed;
}
.post_body {
font-family: Nunito, serif;
font-size: 15px;
line-height: 1.6;
color: $text-dark-color;
}
} }
} }

View File

@@ -1,3 +1,5 @@
@use "../abstracts/variables" as *;
.box_header { .box_header {
span { span {
font-family: Nunito, serif; font-family: Nunito, serif;
@@ -9,33 +11,77 @@
text-transform: uppercase; text-transform: uppercase;
height: 30px; height: 30px;
} }
&.extra_small span {
font-size: 12px;
}
&.small span {
font-size: 14px;
}
&.medium span {
font-size: 18px;
}
border-bottom: 1px solid #efefef; border-bottom: 1px solid #efefef;
padding-right: 20px;
} }
.box { .box {
display: inline-block; display: inline-block;
width: auto; width: auto;
padding: 30px 23px 30px 30px; background-color: $element-bg;
border-radius: 3px;
box-shadow: 0 0 15px 0 rgba(35, 31, 32, 0.1);
background-color: #fff;
margin-bottom: 50px; margin-bottom: 50px;
@media (min-width: 768px) {
border-radius: 3px;
box-shadow: 0 0 15px 0 rgba(35, 31, 32, 0.1);
padding: 30px 23px 30px 30px;
}
@media (max-width: 768px) {
padding: 10px 10px 10px 10px;
}
&.full-width { &.full-width {
width: CALC(100% - 60px); @media (min-width: 768px) {
width: CALC(100% - 60px);
}
@media (max-width: 768px) {
width: CALC(100% - 20px);
}
}
&.full-height {
height: CALC(100% - 103px);
}
@media (min-width: 768px) {
&.md_margin_top {
margin-top: 77px;
}
} }
} }
.tabs { .tabs {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap;
&.fit_content {
width: fit-content;
}
.box_header { .box_header {
padding-right: 20px;
&:last-of-type {
padding-right: 0;
}
span { span {
color: #999; color: #999;
border-bottom: none; border-bottom: none;
cursor: pointer; cursor: pointer;
padding-bottom: 3px;
}
&.extra_small span {
font-size: 12px;
} }
&.small span { &.small span {
font-size: 13px; font-size: 14px;
} }
&.medium span { &.medium span {
@@ -46,12 +92,14 @@
span { span {
color: #0f259d; color: #0f259d;
border-bottom: 3px solid #0f259d; border-bottom: 3px solid #0f259d;
padding-bottom: 0;
} }
} }
} }
} }
.tab_content { .tab_content {
display: none; display: none;
padding: 20px 23px 20px 20px;
&.active { &.active {
display: block; display: block;
} }

View File

@@ -0,0 +1,29 @@
@use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.bread_crumb {
height: 38px;
@include reset-list;
li {
float: left;
@include font_small;
color: $text-secondary-color;
margin-right: 5px;
a {
color: $text-secondary-color;
text-decoration: none;
}
i {
font-size: 8px;
}
@media (max-width: 768px) {
&:nth-last-child(-n+2) {
display: none;
}
}
}
}

View File

@@ -1,3 +1,5 @@
@use "../abstracts/variables" as *;
.btn { .btn {
display: block; display: block;
width: CALC(100% - 78px); width: CALC(100% - 78px);
@@ -9,13 +11,30 @@
font-weight: bold; font-weight: bold;
line-height: 0.93; line-height: 0.93;
text-align: center; text-align: center;
color: #fff; color: $text-inverted-color;
margin-bottom: 10px; margin-bottom: 10px;
text-decoration: none; text-decoration: none;
text-transform: uppercase; text-transform: uppercase;
&:hover, &:active {
color: $text-inverted-color;
}
&.auto_width { &.auto_width {
width: fit-content; width: fit-content;
margin: 0 auto; margin: 0 auto;
} }
&.fit_content {
width: fit-content;
}
&.btn_facebook_share {
background-image: none;
background-color: #0f259d;
}
&.btn_twitter_x_share {
background-image: none;
background-color: #5ba8f4;
}
} }

View File

@@ -1,7 +1,10 @@
@use "../abstracts/mixin" as *; @use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.contact_box { .contact_box {
position: relative; position: relative;
padding: 15px 23px 15px 15px;
.logo-whatsapp { .logo-whatsapp {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -13,7 +16,7 @@
font-size: 24px; font-size: 24px;
font-weight: 600; font-weight: 600;
line-height: 1.17; line-height: 1.17;
color: #282828; color: $text-dark-color;
margin-top: 0; margin-top: 0;
padding-right: 60px; padding-right: 60px;
} }
@@ -23,10 +26,15 @@
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
line-height: 1.57; line-height: 1.57;
color: #666; color: $text-secondary-color;
} }
.read_more { .read_more {
@include read_more_link; @include read_more_link;
} }
} }
@media (max-width: 768px) and (min-width: 423px) {
.contact_box p {
width: CALC(100% - 81px);
}
}

View File

@@ -0,0 +1,30 @@
@use "../abstracts/variables" as *;
.light.cc_dialog button.cc_b_ok, .light.cc_dialog button.cc_b_cp {
padding: 10px 39px;
border-radius: 3px;
font-family: Nunito, serif;
font-size: 14px;
font-weight: bold;
line-height: 0.93;
text-align: center;
margin-bottom: 10px;
text-decoration: none;
text-transform: uppercase;
}
.light.cc_dialog button.cc_b_ok {
background-image: linear-gradient(to right, #0f259d, #5ba8f4);
color: $text-inverted-color;
}
.light.cc_dialog .cc_dialog_headline {
font-family: Montserrat, serif;
font-weight: 600;
line-height: 1.15;
color: $text-dark-color;
}
.light.cc_dialog .cc_dialog_text {
font-family: Nunito, serif;
font-size: 15px;
line-height: 1.6;
color: $text-dark-color;
}

View File

@@ -1,8 +1,11 @@
@use "../abstracts/mixin" as *; @use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.featured { .featured {
img { img {
width: 100%; width: 100%;
object-fit: cover;
max-height: 218px;
} }
h2 { h2 {
margin: 0; margin: 0;
@@ -12,7 +15,7 @@
font-weight: 600; font-weight: 600;
line-height: 1.35; line-height: 1.35;
text-align: left; text-align: left;
color: #1a1a1a; color: $text-color;
text-decoration: none; text-decoration: none;
} }
} }
@@ -27,7 +30,7 @@
font-weight: 500; font-weight: 500;
line-height: 1.57; line-height: 1.57;
text-align: left; text-align: left;
color: #666; color: $text-secondary-color;
margin: 10px 0; margin: 10px 0;
} }
} }

View File

@@ -1,4 +1,5 @@
@use "../abstracts/mixin" as *; @use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.footer_container { .footer_container {
font-family: Montserrat, serif; font-family: Montserrat, serif;
@@ -6,36 +7,48 @@
font-weight: 600; font-weight: 600;
line-height: 1.71; line-height: 1.71;
text-align: left; text-align: left;
color: #fff; color: $text-inverted-color;
.footer_menu { .footer_menu {
padding: 61px 135px 38px 134px;
background-image: linear-gradient(to right, #0102b0, #4090e3); background-image: linear-gradient(to right, #0102b0, #4090e3);
padding: 15px 0;
@media (max-width: 768px) {
padding: 60px 30px 30px 30px;
}
.row {
@include container;
}
.row:first-child { .row:first-child {
padding-bottom: 70px; padding-bottom: 70px;
margin-bottom: 34px; margin-bottom: 34px;
border-bottom: 1px solid #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.2);
} }
a { a {
color: #fff; color: $text-inverted-color;
text-decoration: none; text-decoration: none;
display: block; display: block;
width: 100%; width: 100%;
} }
.about a {
display: inline;
text-decoration: underline;
}
.buttons a { .buttons a {
text-transform: uppercase; text-transform: uppercase;
margin-bottom: 10px; margin-bottom: 10px;
} }
.box_header { .box_header {
border-bottom: 1px solid #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.2);
span { span {
border-bottom: 3px solid #fff; border-bottom: 3px solid #fff;
color: #fff; color: $text-inverted-color;
font-size: 14px; font-size: 14px;
} }
} }
@@ -54,7 +67,7 @@
width: 38px; width: 38px;
height: 38px; height: 38px;
background-color: #5ba8f4; background-color: #5ba8f4;
color: #fff; color: $text-inverted-color;
text-decoration: none; text-decoration: none;
line-height: 40px; line-height: 40px;
border-radius: 5px; border-radius: 5px;
@@ -63,10 +76,27 @@
.footer_menu2 { .footer_menu2 {
@include reset-list; @include reset-list;
float: left;
margin-bottom: 20px;
li { li {
float: left; @media (min-width: 768px) {
float: left;
}
margin-right: 40px; margin-right: 40px;
padding: 9px 0;
&:first-child {
padding: 0;
@media (max-width: 768px) {
padding: 0 0 15px 0;
}
}
.logo {
display: block;
width: 115px;
height: 41px;
}
a { a {
text-decoration: underline; text-decoration: underline;

View File

@@ -1,10 +1,37 @@
.header { .header {
height: 110px; height: 111px;
.logo {
float: left;
margin-top: 10px;
img {
height: 95px;
}
}
.advertisement {
float: right;
width: 728px;
height: 90px;
}
} }
.header .logo {
margin-left: 135px; @media (max-width: 1170px) {
float: left; .header {
padding: 0 20px;
}
} }
.header .logo img { @media (max-width: 980px) {
height: 75px; .header {
height: 212px;
.logo {
float: none;
}
.advertisement {
float: none;
}
}
}
@media (max-width: 768px) {
.header_container {
display: none;
}
} }

View File

@@ -0,0 +1,41 @@
@use "../abstracts/variables" as *;
.input_container {
border: 1px solid #efefef;
border-radius: 5px;
background-color: $element-bg;
display: flex;
height: 48px;
font-family: Montserrat, serif;
font-size: 16px;
line-height: 1.25;
color: $text-color;
.input_prefix, .input_postfix {
padding: 13px 10px 13px 15px;
}
input {
border: none;
padding: 13px 5px;
font-family: Montserrat, serif;
font-size: 16px;
font-weight: 600;
line-height: 1.25;
color: $text-color;
}
}
.text_input, .texterea_input {
padding: 13px 5px;
font-family: Montserrat, serif;
font-size: 14px;
font-weight: normal;
line-height: 1.25;
color: $text-color;
border: 1px solid #efefef;
border-radius: 5px;
background-color: $element-bg;
}

View File

@@ -0,0 +1,4 @@
@use '../abstracts/mixin' as *;
.list {
@include reset-list;
}

View File

@@ -2,6 +2,28 @@
@use "../abstracts/variables" as *; @use "../abstracts/variables" as *;
.blog_grid { .blog_grid {
@media (max-width: 768px) {
overflow-x: auto;
overflow-y: hidden;
&::-webkit-scrollbar {
height: 8px;
}
/* Track */
&::-webkit-scrollbar-track {
border-radius: 100vw;
background: #eee;
}
/* Handle */
&::-webkit-scrollbar-thumb {
border-radius: 4px;
background: linear-gradient(to right, #10229c, #64a9f2);
}
.grid_view {
width: 300%;
}
}
.row, .row > * { .row, .row > * {
padding: 0; padding: 0;
margin: 0; margin: 0;
@@ -11,13 +33,18 @@
} }
.post { .post {
position: relative; position: relative;
height: 100%; height: CALC(100% - 10px);
padding: 5px;
@media (max-width: 768px) {
height: CALC(50% - 10px);
}
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
filter: brightness(50%); filter: brightness(70%);
border-radius: 3px;
} }
&.small { &.small {
@@ -43,7 +70,7 @@
font-size: 10px; font-size: 10px;
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
color: $news-banner-text-color; color: $text-inverted-color;
text-decoration: none; text-decoration: none;
text-transform: uppercase; text-transform: uppercase;
} }
@@ -57,16 +84,23 @@
font-size: 30px; font-size: 30px;
font-weight: 600; font-weight: 600;
line-height: 1; line-height: 1;
color: $news-banner-text-color; color: $text-inverted-color;
text-decoration: none; text-decoration: none;
} }
h5 a { h5 a {
font-size: 16px; font-size: 16px;
line-height: 1.17; line-height: 1.17;
} }
@media (max-width: 768px) {
h2 a, h5 a {
display: block;
font-size: 16px;
line-height: 1.17;
}
}
.post_date { .post_date {
@include post_date; @include post_date;
color: $news-banner-text-color; color: $text-inverted-color;
} }
} }
} }

View File

@@ -2,9 +2,20 @@
@use "../abstracts/mixin" as *; @use "../abstracts/mixin" as *;
.menu_container { .menu_container {
height: 75px; @media (min-width: 767px) {
margin-bottom: 20px; height: 75px;
background-image: linear-gradient(to right, #0102b0, #4090e3); background-image: linear-gradient(to right, #0102b0, #4090e3);
}
nav {
display: flex;
> div {
height: 30px;
background: white;
flex-grow: 1;
border: 1px solid white;
}
}
.menu { .menu {
@include reset-list; @include reset-list;
@@ -12,6 +23,8 @@
position: relative; position: relative;
z-index: 0; z-index: 0;
margin: 0px -1px; margin: 0px -1px;
width: 1170px;
margin: 0 auto;
> li { > li {
float: left; float: left;
@@ -28,13 +41,14 @@
a { a {
display: block; display: block;
font-family: Nunito, serif; font-family: Nunito, serif;
color: $nav-text-color; color: $text-color;
font-weight: $nav-text-weight; font-weight: $nav-text-weight;
font-size: $nav-text-size; font-size: $nav-text-size;
text-align: center; text-align: center;
padding: 5px 20px 5px 40px; padding: 5px 20px 5px 40px;
text-decoration: none; text-decoration: none;
background: white; background: white;
text-transform: uppercase
} }
&.selected a, &:hover a, &.hover a { &.selected a, &:hover a, &.hover a {
@@ -47,7 +61,9 @@
display: block; display: block;
width: 33px; width: 33px;
height: 25px; height: 25px;
background-image: URL('/images/menu-corner-1.svg'); -webkit-mask-image: URL("/images/menu-corner-1.svg");
mask-image: URL("/images/menu-corner-1.svg");
background-color: white;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
@@ -59,7 +75,9 @@
display: block; display: block;
width: 12px; width: 12px;
height: 15px; height: 15px;
background-image: URL('/images/menu-corner-2.svg'); -webkit-mask-image: URL("/images/menu-corner-2.svg");
mask-image: URL("/images/menu-corner-2.svg");
background-color: white;
position: absolute; position: absolute;
bottom: 0; bottom: 0;
right: -1px; right: -1px;
@@ -67,13 +85,6 @@
} }
} }
&:first-child {
width: 135px;
display: block;
background: white;
height: 29px;
}
&:last-child { &:last-child {
margin-left: 10px; margin-left: 10px;
@@ -91,32 +102,67 @@
} }
} }
} }
.top_menu_container { .top_menu_container, .menu_mobile_container {
height: 50px; height: 50px;
@include container;
overflow: hidden;
ul { ul.right_menu {
float: right; float: right;
@include reset-list; @include reset-list;
li { li {
float: left; float: left;
padding: 6px 19px; padding: 3px 19px;
margin: 8px; margin: 8px;
border-right: 1px solid #fff; border-right: 1px solid rgba(255, 255, 255, 0.2);
line-height: 2;
height: 28px;
&.collapsed {
padding: 3px 9px 3px 6px;
margin: 8px auto;
}
&:last-child { &:last-child {
border: none; border: none;
line-height: 1;
} }
/*&:nth-child(2) {
padding: 0 19px;
}*/
a { a {
float: left; float: left;
font-family: Nunito, serif; font-family: Nunito, serif;
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
text-align: right; text-align: right;
color: #fff; color: $text-inverted-color;
text-decoration: none; text-decoration: none;
text-transform: uppercase; text-transform: uppercase;
display: flex;
span {
overflow: hidden;
display: block;
height: 28px;
}
&.with_svg_icon {
position: relative;
margin-right: 30px;
}
svg {
fill: $text-inverted-color;
height: 20px;
width: 20px;
position: absolute;
right: -25px;
top: 2px;
}
i { i {
font-size: 18px; font-size: 18px;
@@ -129,14 +175,91 @@
.search_form { .search_form {
float: left; float: left;
overflow: hidden; overflow: hidden;
height: 21px; height: 34px;
margin-right: 10px; margin-right: 10px;
.search_input {
border: 1px solid #efefef;
border-radius: 3px;
background-color: $element-bg;
height: 26px;
font-family: Montserrat, serif;
font-size: 16px;
line-height: 1.25;
color: $text-color;
}
.search_submit {
float: right;
margin: 4px;
}
}
.search_button {
margin-top: 6px;
}
}
}
}
.menu_mobile_container {
height: 46px;
padding: 12px 0;
background-color: #10229c;
.mobile_menu_button a {
display: block;
width: 20px;
height: 21px;
padding: 4px 10px 4px 11px;
margin-right: 12px;
i {
color: white;
font-size: 19px;
}
}
.logo_mobile {
height: 100%;
img {
height: 100%;
}
}
.right_menu_container {
background-color: #10229c;
margin-left: 12px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
flex-grow: 1;
ul.right_menu {
li {
padding: 0 10px;
margin: 0;
a.with_svg_icon {
margin-right: 10px;
}
a {
svg {
position: static;
}
}
.search_form {
height: 25px;
.search_input {
height: 18px;
width: 80px;
}
.search_submit {
margin: 0 6px;
}
}
.search_button {
margin: 0;
}
} }
} }
} }
} }
.menu-submenu { .menu-submenu, .mobile_menu_container {
position: absolute; position: absolute;
> a { > a {
@@ -151,10 +274,14 @@
font-family: Nunito, serif; font-family: Nunito, serif;
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
color: #1a1a1a; color: $text-color;
text-decoration: none; text-decoration: none;
padding: 15px 0; padding: 15px 0;
border-bottom: 1px solid #f8f8f8; border-bottom: 1px solid #f8f8f8;
text-transform: uppercase;
}
li:last-child a {
border-bottom: none;
} }
} }
@@ -162,7 +289,7 @@
padding: 20px; padding: 20px;
border-radius: 3px; border-radius: 3px;
box-shadow: 0 0 15px 0 rgba(35, 31, 32, 0.1); box-shadow: 0 0 15px 0 rgba(35, 31, 32, 0.1);
background-color: #fff; background-color: $element-bg;
margin-left: 20px; margin-left: 20px;
width: max-content; width: max-content;
display: none; display: none;
@@ -192,6 +319,7 @@
top: 15px; top: 15px;
-webkit-transform: rotate(270deg); -webkit-transform: rotate(270deg);
transform: rotate(270deg); transform: rotate(270deg);
transition: 0.6s ease;
} }
&.opened:after { &.opened:after {
-webkit-transform: rotate(0deg); -webkit-transform: rotate(0deg);
@@ -200,3 +328,135 @@
} }
} }
} }
.mobile_menu_container {
display: none;
position: fixed;
z-index: 15;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.8);
nav {
background: white;
width: fit-content;
height: 100vh;
padding: 20px;
min-width: 70vw;
max-width: 100vw;
overflow-x: hidden;
overflow-y: auto;
ul, li, li a {
width: 100%;
}
ul > li > ul > li {
padding-left: 20px;
width: CALC(100% - 20px);
}
.submenu {
display: none;
}
li.has_submenu {
position: relative;
&:after {
-webkit-font-smoothing: antialiased;
display: var(--fa-display, inline-block);
font-style: normal;
font-variant: normal;
line-height: 1;
text-rendering: auto;
font-family: "Font Awesome 6 Free";
font-weight: 900;
content: "\f0d7";
position: absolute;
right: 0;
top: 15px;
-webkit-transform: rotate(270deg);
transform: rotate(270deg);
}
&.opened:after {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}
}
}
.logo_close_button {
display: flex;
height: 42px;
margin-bottom: 37px;
.logo {
flex-grow: 1;
height: 42px;
a {
height: 100%;
padding: 0;
border-bottom: none;
img {
height: 100%;
}
}
}
.mobile_close_menu_button {
height: 30px;
width: 22.5px;
padding: 4px;
a {
font-size: 30px;
color: #1d2bb2;
padding: 0;
border-bottom: none;
}
}
}
.mobile_menu_container nav li.has_submenu {
&:after {
content: "\f054";
-webkit-transform: rotate(0);
transform: rotate(0);
transition: 0.6s ease;
}
&.opened:after {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
}
.slogan {
width: 190px;
margin: 8px 0;
}
.grey_background {
nav {
> div {
background: $container-bg;
border-color: $container-bg;
}
}
.menu {
> li {
a {
background: $container-bg;
}
&.selected a, &:hover a, &.hover a {
&:before, &:after {
background-color: $container-bg;
}
}
&:last-child {
&:after {
background: $container-bg;
}
}
}
}
}

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