153 Commits

Author SHA1 Message Date
Jorit Tijsen
6333ff6433 Added description how to use it. 2025-07-07 15:29:36 +02:00
Jorit Tijsen
99720de0ca Use Monday as the first day of the week. 2025-07-07 14:47:42 +02:00
Jorit Tijsen
ae0e83def6 Merge branch 'feature-news-date-filter' of https://git.nhgooi.nl/NH_Gooi/nhgooi.nl into feature-news-date-filter 2025-06-30 17:37:21 +02:00
Jorit Tijsen
68ae6f9161 Fix: "Attempt to read property \"news\" on null" error 2025-06-30 17:36:04 +02:00
Jorit Tijsen
863381a226 Fix: "Attempt to read property \"news\" on null" error 2025-06-30 17:33:22 +02:00
Jorit Tijsen
94eddea78b Add loading text + no items found text
Remove logging
2025-06-30 17:29:58 +02:00
Jorit Tijsen
7f1688ee89 Feature: Added new News date filter to the news page 2025-06-30 16:40:44 +02:00
NH Gooi
34f5cfca73 Peter Schavemaker -> Marco Willemse als chef redactie 2025-06-10 15:14:57 +02:00
NH Gooi
676569256e Fix dubbele header redacite 2025-06-06 14:46:09 +02:00
NH Gooi
5cd69739e5 Inhoud aanpassingen redactie 2025-06-06 14:19:34 +02:00
NH Gooi
b24fdc8e41 Chef redactie -> Peter 2025-05-19 18:44:51 +02:00
NH Gooi
e12fcf8ad7 Oproep agendaitems toegevoegd 2025-05-07 08:33:36 +02:00
NH Gooi
5b4b0011ea Add header block type to block_story 2025-04-01 10:04:47 +02:00
NH Gooi
5e3604da33 Preview functionality for unpublished articles 2025-03-29 21:29:13 +01:00
NH Gooi
aec6690c9e Controller::API() returns null on error, so we can return 404 instead of 500. 2025-03-19 22:18:22 +01:00
NH Gooi
3e7490531d Merge remote-tracking branch 'origin/dev' 2025-03-18 21:54:01 +01:00
NH Gooi
c7243f31a0 Render articles directly from block source instead of prerendered text 2025-03-18 21:53:01 +01:00
NH Gooi
2e1f496eea Render articles directly from block source instead of prerendered text 2025-03-18 21:51:18 +01:00
NH Gooi
92c66e4ed9 Adverteren-pagina aangepasT 2025-02-04 21:18:13 +01:00
NH Gooi
37745e8ae9 Margin toegevoegd op div.text in post, want intranet editor maakt geen p tags 2025-01-04 17:51:04 +01:00
NH Gooi
eb9813c239 Contactinfo aangepast 2024-12-21 11:31:11 +01:00
NH Gooi
9dc9b30afa Regionieuws lengte - 4 samples per seconde 2024-12-16 20:40:43 +01:00
NH Gooi
761cec4257 Laad 'meer fragmenten' in de juiste container 2024-12-16 20:27:47 +01:00
NH Gooi
0e2148956f Regionieuws waveform gefixt 2024-12-07 18:37:57 +01:00
1863ff766f Merge pull request 'Correcties voor banner placement' (#10) from dev into main
Reviewed-on: #10
2024-12-06 17:45:27 +01:00
96748c0c01 fix: center sidebar banner on mobile 2024-12-06 14:58:16 +01:00
c16a2db01d fix: set correct margin on banner 2024-12-06 14:54:51 +01:00
df4d48a327 fix: remove extra margin above banner 2024-12-06 14:49:26 +01:00
187fc7b273 fix: small styling fixes for sidebar banner 2024-12-06 14:46:28 +01:00
06e7741d3b fix: less space above homepage banner 2024-12-06 14:15:18 +01:00
262aec618b fix: build was not run properly 2024-12-06 14:05:30 +01:00
98a9cd2c53 fix: center banners on mobile 2024-12-06 14:02:56 +01:00
21ca729958 fix: placement of mobile banner 2024-12-06 13:49:31 +01:00
367527098d Merge pull request 'Add mobile header banner' (#9) from dev into main
Reviewed-on: #9
2024-12-04 11:15:40 +01:00
a86f8e56a1 fix: show banner full-width on mobile 2024-12-04 10:42:30 +01:00
c1ddaa15c6 fix: only show mobile banner on mobile 2024-12-04 10:27:15 +01:00
39f1ee4823 feat: add mobile banner to header 2024-12-04 08:07:46 +01:00
71a5d3a690 fix: add mobile banner 2024-12-02 12:09:22 +01:00
NH Gooi
6db6de8e49 Artiest en titel omgedraaid in nustraks 2024-11-28 21:45:17 +01:00
NH Gooi
e06ce1507b Revive URL en ID via .env 2024-11-28 21:09:07 +01:00
3ef630c7cc fix: correct margin for homepage banner 2024-11-25 20:57:49 +01:00
2ba81f8550 fix: add leaderboard on homepage 2024-11-25 20:52:33 +01:00
f3fa2c109a fix: add margin to header banner 2024-11-25 20:49:31 +01:00
52df85716b fix: move new styling into scss files 2024-11-25 20:47:18 +01:00
22292e10ed fix: add banner styling 2024-11-25 20:03:11 +01:00
9428e1d2ee fix: move ad prefix to banner system 2024-11-25 19:44:07 +01:00
1c587684f3 fix: enable banners by default 2024-11-25 19:30:18 +01:00
918255be1c feat: update banners with new system 2024-11-25 19:28:35 +01:00
NH Gooi
35a5aa636f Merge branch 'main' into dev 2024-11-12 14:17:24 +01:00
NH Gooi
e2551b1dab Podcast toegevoegd, NH Gooi -> NHGooi 2024-11-12 14:16:01 +01:00
NH Gooi
552c638571 Agenda items kon niet doorklikken 2024-10-20 18:02:20 +02:00
NH Gooi
a930fb7216 Merge remote-tracking branch 'origin/main' into dev 2024-10-03 19:33:29 +02:00
NH Gooi
58ea5c0c85 iframe blocktype toegevoegd [#00033] 2024-10-03 19:32:44 +02:00
NH Gooi
8616cb3d56 Relatieve links gefixt in Lees Ook blok 2024-10-03 19:22:25 +02:00
NH Gooi
dbca7e2bc5 Composer autoload opnieuw gegenereerd 2024-09-29 19:10:40 +02:00
NH Gooi
437e6243e7 Merge branch 'feature/api-to-repo' into dev 2024-09-29 19:06:46 +02:00
NH Gooi
9698f9b103 Model classes van API repo naar deze repo verplaatst 2024-09-29 19:05:03 +02:00
NH Gooi
6008d3175b Merge remote-tracking branch 'origin/main' into dev 2024-09-25 21:19:15 +02:00
NH Gooi
8d1e79f1b7 API eindpunt iets aangepast 2024-09-25 21:18:36 +02:00
NH Gooi
ab7246e123 Merge remote-tracking branch 'origin/main' into dev 2024-09-25 17:32:04 +02:00
NH Gooi
d9627a54c4 Player styling verplaatst naar style.css 2024-09-25 17:32:00 +02:00
NH Gooi
6c732f90e8 Wavesurfer voor audio file player 2024-09-25 17:30:15 +02:00
NH Gooi
1dadbc62af WaveSurfer player voor podcasts, voor live WIP 2024-09-24 17:29:57 +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
181 changed files with 8968 additions and 3345 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
WORKDIR /var/www/html
COPY . /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
RUN php artisan cache:clear && \
php artisan config: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

@@ -10,20 +10,20 @@ class CalendarController extends Controller
{
parent::registerView($request, 'agenda', $id);
$apiResult = $this->API('agenda/item/' . (int)$id);
$calendarEvent = new \Model\CalendarEvent($apiResult);
$calendarEvent = new \Model\CalendarEvent($apiResult->news);
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)
{
$apiResult = $this->API('agenda/overzicht');
$calendar = [];
foreach($apiResult as $calendarItem)
foreach($apiResult->events as $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;
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\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\View;
@@ -15,124 +15,160 @@ class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $API_URL;
protected $API_URL;
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
{
$data = json_decode(Storage::disk('local')->get($file));
foreach($path as $subobject) { $data = $data->$subobject; }
$items = [];
foreach($data as $item_data)
{
$items[] = new $class($item_data);
if($maxItems && count($items) == $maxItems) { break; }
}
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
{
$data = json_decode(Storage::disk('local')->get($file));
foreach ($path as $subobject) {
$data = $data->$subobject ?? [];
}
$items = [];
foreach ($data as $item_data) {
$items[] = new $class($item_data);
if ($maxItems && count($items) == $maxItems) {
break;
}
}
return $items;
}
return $items;
}
public function __construct()
{
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
$blogs = $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1);
$activeBlog = count($blogs) && $blogs[0]->is_active ? $blogs[0] : null;
View::share('activeBlog', $activeBlog);
//View::share('onAir', file_get_contents(url('onair')));
View::composer('widgets.laatstenieuws', function ($view) {
$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::composer('widgets.laatstenieuws', function($view) {
$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', [], '\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 = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone));
$program->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone));
}
$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', ['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
$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'));
});
View::share('disableBanners', env('DISABLE_BANNERS', false));
}
protected function registerView(Request $request, $type, $id)
{
if(config('app.env') == 'local') {
return;
}
if (config('app.env') == 'local') {
return;
}
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)', [
'type' => $type,
'id' => $id,
'ip' => $request->server('REMOTE_ADDR'),
'session' => md5(Session::getId()),
'referer' => $request->server('HTTP_REFERRER')
]);
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
[
'type' => $type,
'id' => $id,
'ip' => $request->server('REMOTE_ADDR'),
'session' => md5(Session::getId()),
'referer' => $request->server('HTTP_REFERRER')
]);
}
protected function API($url)
{
// if (strpos($url, 'nieuws/overzicht') !== false) {
// return json_decode(file_get_contents(__DIR__ . '/../../../storage/app/laatste_nieuws.json'));
// }
// return [];
$arrContextOptions= [
$arrContextOptions = [
'ssl' => [
"verify_peer"=>false,
"verify_peer_name"=>false,
"verify_peer" => 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)));
//\dump($http_response_header);
$result = @file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions));
return $result ? json_decode($result) : null;
}
protected function checkAPI($url)
{
return $this->get_http_response_code($this->API_URL . $url);
}
protected function get_http_response_code($url)
{
$headers = get_headers($url);
return substr($headers[0], 9, 3);
}
protected static function JsonToDateTime($obj)
{
return new \DateTime($obj->date, new \DateTimeZone($obj->timezone));
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 __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;
use Illuminate\Http\Request;
use \Model\NewsItem;
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 = [];
foreach($apiResult->news as $newsItem)
{
$news[] = new \Model\NewsItem($newsItem);
}
foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
}
$apiResult = $this->API('programma/schema/nustraks');
$comingUp = [];
foreach($apiResult->schedule as $program)
{
$comingUp[] = [
'start' => self::JsonToDateTime($program->start),
'end' => self::JsonToDateTime($program->end),
'program' => new \Model\Program($program->program)
];
$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('podcast/overzicht?aantal=20');
$podcasts = [];
foreach($apiResult->podcasts as $podcast) {
$podcasts[] = new \Model\Podcast($podcast);
}
return view('home', ['news' => $news, 'podcasts' => $podcasts, 'comingUp' => $comingUp]);
$apiResult = $this->API('podcast/overzicht?aantal=15');
$index = array_rand($apiResult->podcasts);
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
}
}

View File

@@ -6,19 +6,19 @@ use Illuminate\Http\Request;
use \Model\JobOpening;
class JobsController extends Controller
{
{
private static function TimestampToDateTime($timestamp) {
$result = new \DateTime;
$result->setTimestamp($timestamp);
return $result;
}
public function show(Request $request, $id)
{
parent::registerView($request, 'nieuws', $id);
$apiResult = $this->API('vacatures/details/' . $id);
$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)
@@ -29,17 +29,17 @@ class JobsController extends Controller
private function listJobs(Request $request, $url, $title = null)
{
$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 = [];
foreach($apiResult->jobs as $jobsItem)
{
$jobs[] = new \Model\JobOpening($jobsItem);
}
#foreach($apiResult->jobs as $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']);
}
public function bijeenkomst() {
return view('kennismakingsbijeenkomst', ['a' => 2]);
}

View File

@@ -17,37 +17,30 @@ class NewsController extends Controller
public function show(Request $request, $id)
{
parent::registerView($request, 'nieuws', $id);
$apiResult = $this->API('nieuws/bericht/' . $id);
$preview = "";
if(request()->get('preview', null) != null) {
$preview = "?preview=" . request()->get('preview');
}
$apiResult = $this->API('nieuws/bericht/' . $id . $preview);
$newsItem = new \Model\NewsItem($apiResult->news);
switch ($apiResult->version) {
case 1:
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
break;
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
case 2:
$source = $apiResult->source;
case 2:
if(isset($apiResult->source->article)) {
$source = $apiResult->source->article;
$newsItem->published = self::TimestampToDateTime($source->created);
$newsItem->edited = self::TimestampToDateTime($source->updated);
$newsItem->author = $source->author;
$newsItem->images = null; // Images will be embedded
$newsItem->video = null; // Videos will be embedded
$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]);
$newsItem->content = $source->blocks;
} elseif(isset($apiResult->source->blocks)) {
$newsItem->content = $apiResult->source->blocks;
}
return view('newsitem', array_merge($this->getSidebareData(), ['type' => $apiResult->type, 'news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
}
}
@@ -75,21 +68,26 @@ class NewsController extends Controller
$id = $request->get('id', '');
$populair = [];
$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);
}
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)
{
return $this->listNews($request, 'regio/' . $region, ucfirst($region));
return $this->listNews($request, 'tag/' . $region, ucfirst($region));
}
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)
@@ -139,23 +137,27 @@ class NewsController extends Controller
private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null)
{
if ($request->ajax()) {
$total = 5;
}
$page = (int)$request->get('pagina', 1);
if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) {
$url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null);
}
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
$news = [];
foreach ($apiResult->news as $newsItem) {
foreach ($apiResult->news ?? [] as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
}
$populair = [];
if ($url == 'overzicht') {
if ($title == null) {
$total = 5;
}
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
$page) . ($total ? '&aantal=' . $total : ''));
foreach ($apiResult as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem);
}
if ($title == null) {
$total = 5;
}
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
$page) . ($total ? '&aantal=' . $total : ''));
foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem);
}
$podcast = null;
@@ -168,14 +170,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()
{
$apiResult = $this->API('nieuws/populair');
$news = [];
foreach ($apiResult as $newsItem) {
foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
}
@@ -184,11 +192,15 @@ class NewsController extends Controller
public function regionieuws()
{
$data = $this->API('nieuws/regionieuws.json');
return view('listen', [
'source' => $this->API_URL . 'nieuws/regionieuws',
'source' => $this->API_URL . 'nieuws/regionieuws.mp3',
'title' => 'Regionieuws',
'content' => 'het laatste nieuws uit de regio',
'isStream' => false,
'canDownload' => true]);
'canDownload' => true,
'lengte' => $data->length * 0.25,
'waveform' => $data
]);
}
}

View File

@@ -15,28 +15,37 @@ class PodcastController extends Controller
$action = 'programma/' . (int)$programma;
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
}
return $this->getPodcastList($request, $action, $viewData);
}
private function getPodcastList(Request $request, $action, $viewData = [])
{
$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 = [];
foreach($apiResult->podcasts as $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)
{
parent::registerView($request, 'podcast', $id);
$apiResult = $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult);
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]);
$podcast = new \Model\Podcast($apiResult);
$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,54 +7,74 @@ use \Model\Programma;
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 = self::JsonToDateTime($apiResult->startdate);
$end = self::JsonToDateTime($apiResult->enddate);
$start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d');
$end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d');
$apiResult = $this->API('programma/schema/periode/' . $start . '/' . $end);
$schedule = [];
foreach($apiResult->schedule as $program)
{
$schedule[] = [
$schedule[self::JsonToDateTime($program->start)->format('Ymd')][] = [
'starttime' => self::JsonToDateTime($program->start),
'endtime' => self::JsonToDateTime($program->end),
'shift' => (int)$shiftWeeks,
'shift' => 0,
'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()
{
$data = $this->API('programma/schema/onair');
return response()->json($data);
}
public function program($id)
public function program($id)
{
$apiResult = $this->API('programma/details/' . (int)$id);
$apiResult = $this->API('programma/details/' . (int)$id);
if($apiResult == null) {
return abort(404);
}
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);
$apiResult = $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult);
$related = [];
if($podcast->program != null)
$page = (int)$request->get('pagina', 1);
$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')}");
foreach($apiRelated->podcasts as $relatedItem)
{
$related[] = new \Model\Podcast($relatedItem);
}
$podcasts[] = new \Model\Podcast($_podcast);
}
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)
@@ -65,20 +85,21 @@ class RadioController extends Controller
$action = 'programma/' . (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)
{
return $this->getPodcastList($request, 'zoeken/' . $query)->with('query', urldecode($query));
}
}
public function terugluisteren(Request $request)
{
$programs = [];
$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) {
if(!$item->program->nonstop && !$item->program->rerun) {
$item->start = self::JsonToDateTime($item->start);
@@ -89,9 +110,9 @@ 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 = [])
{
$page = (int)$request->get('pagina', 1);
@@ -102,7 +123,7 @@ class RadioController extends Controller
$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

@@ -13,23 +13,36 @@ class StreamController extends Controller
{
return view('listen', [
'source' => self::$STREAM_URL . 'mp3live',
'title' => 'Luister live',
'title' => 'Luister live',
'lengte' => 0,
'waveform' => null,
'content' => 'de live-uitzending van NH Gooi.',
'isStream' => true ]);
}
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']);
}
public function 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)
{
$apiResult = $this->API('podcast/details/' . (int)$id);
@@ -39,16 +52,23 @@ class StreamController extends Controller
}
return view('listen', [
'source' => $this->API_URL . 'podcast/download' . $apiResult->url . '?auth=' . $podcast->auth,
'title' => $podcast->title,
'source' => $this->API_URL . 'podcast/stream/' . $apiResult->url,
'title' => $podcast->title,
'content' => $podcast->title,
'isStream' => false,
'canDownload' => true ]);
'lengte' => $podcast->duration / 1000,
'waveform' => $podcast->waveform,
'isStream' => false,
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
}
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
$date = (new \DateTimeImmutable())->setDate($year, $month, $day)->setTime($hour, 0, 0);
$current = $date->add(\DateInterval::createFromDateString($offset . ' hours'));
$current = $date->add(\DateInterval::createFromDateString($offset . ' hours'));
$programma = $this->API("programma/details/" . $current->Format("Y/m/d/H"));
if(!$programma->is_beschikbaar) {
return view('listen', ['notAvailable' => true]);
}
$hours = [];
for($i = 0; $i < $duration; $i++) {
@@ -56,12 +76,14 @@ class StreamController extends Controller
$url = '/luister/programma/' . $date->format('Y/m/d/H') . '/' . $duration . '/' . $i;
$hours[$offset == $i ? '#' : $url] = 'Uur ' . ($i + 1) . ' (' . $other->format('H') . ':00)';
}
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,
'title' => 'Uitzending terugluisteren',
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
'lengte' => $programma->waveform->length,
'waveform' => $programma->waveform,
'content' => $programma->programma->name . ' van ' . $current->format('d-m-Y, H') . ':00 uur',
'isStream' => false,
'canDownload' => false ]);
}
@@ -69,18 +91,18 @@ class StreamController extends Controller
public function gemeenteraad(Request $request) {
return view('listen', [
'source' => self::$STREAM_URL . 'gemhuizen',
'title' => 'Gemeenteraad Huizen',
'content' => 'de openbare vergadering van de gemeenteraad Huizen',
'title' => 'Gemeenteraad Huizen',
'content' => 'de openbare vergadering van de gemeenteraad Huizen',
'isStream' => true,
'canDownload' => false ]);
}
public function kerkdienst(Request $request) {
return view('listen', [
'source' => $this->API_URL . 'kerkdienst/download',
'title' => 'Kerkdienst gemist',
'source' => $this->API_URL . 'kerkdienst/stream',
'title' => 'Kerkdienst gemist',
'content' => 'de kerkdienst van afgelopen zondag',
'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\\Seeders\\": "database/seeders/",
"Helpers\\": "app/Helpers",
"Model\\": "/srv/api/common/classes"
"Model\\": "app/Models"
}
},
"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>
ServerName localhost
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
AllowOverride All
Order deny,allow
@@ -23,7 +23,7 @@ ServerTokens Prod
<VirtualHost *:443>
ServerName localhost
ServerAdmin support@websight.nl
DocumentRoot /var/www/html/public
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
@@ -32,7 +32,7 @@ ServerTokens Prod
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
<Directory /var/www/html/public/>
<Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
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,
"scripts": {
"sass": "sass 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"
},
"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

1165
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.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg id="Layer_1" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1"><path d="m40.873 54.653h72.749v-36.653a12 12 0 0 1 24 0v36.653h106.378v-36.653a12 12 0 0 1 24 0v36.653h106.378v-36.653a12 12 0 0 1 24 0v36.653h72.749a28.958 28.958 0 0 1 28.873 28.873v81.25h-488v-81.25a28.958 28.958 0 0 1 28.873-28.873zm72.749 0v36.653a12 12 0 0 0 24 0v-36.653zm130.378 0v36.653a12 12 0 0 0 24 0v-36.653zm130.378 0v36.653a12 12 0 0 0 24 0v-36.653zm-85.24 186.469a12 12 0 0 1 16.969 16.968l-55.5 55.5a12 12 0 0 1 -16.969 0l-27.748-27.748a12 12 0 0 1 16.969-16.969l19.264 19.264 47.012-47.012zm-148.879 0a12 12 0 0 1 16.968 16.968l-55.5 55.5a12 12 0 0 1 -16.969 0l-27.744-27.751a12 12 0 0 1 16.969-16.969l19.264 19.264zm223 124.551h83.241a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.243a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.247v31.5h59.243v-31.5zm-220.124-24h83.245a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.247a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.247v31.5h59.245v-31.5zm-220.125-24h83.245a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.245a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.245v31.5h59.245zm226.512-152.067h83.243a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.243a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.245v31.5h59.243v-31.5zm65.5-72.83h-488.002v288.351a28.958 28.958 0 0 0 28.873 28.873h430.254a28.958 28.958 0 0 0 28.873-28.873z" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.5 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

217
public/js/functions.js vendored
View File

@@ -1,37 +1,63 @@
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 ($) {
/**
* @param {object} _options
*/
$.fn.loadMoreNews = function (_options) {
var nextPage = 2;
var isLoading = false;
var page = 1;
var options = {
loadingElementId: '#loading',
container: '',
url: document.location.pathname
url: document.location.pathname,
nextPage: 2,
dateStart: null,
dateEnd:null
};
$.extend(options, _options);
var $isLoading = $(options.loadingElementId, this);
$isLoading.hide();
this.click(function (e) {
this.unbind('click').click(function (e) {
e.preventDefault();
if (!isLoading) {
// Set flag and update UI
isLoading = 1;
$isLoading.show();
var $button = $(this).attr("disabled", "disabled");
var $container = $(options.container)
var $container = $(options.container);
$container.each(function(){$(this).find('.no-results').remove();});
// 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 + (options.dateStart ? '&dateStart=' + options.dateStart : '') + (options.dateEnd ? '&dateEnd=' + options.dateEnd : '')})
.always(function () {
// Whether success or failure, update the UI again
isLoading = 0;
$isLoading.hide();
$button.removeAttr("disabled");
$(options.container + ' .loader').remove();
})
.done(function (data) {
if (!data) {
@@ -45,7 +71,13 @@
var id = this.toString();
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
});
++nextPage;
$container.each(function () {
var id = this.toString();
if (!$(id).find('li').length) {
$(id).append('<li class="no-results">Geen items gevonden.</li>');
}
});
++options.nextPage;
});
}
});
@@ -80,25 +112,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 pos = $menuItem.offset();
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()});
$menuItem.removeClass('hover');
} );
$('body').append(submenu);
submenu.children('ul.submenu').slideDown();
submenu.find('ul.submenu li.has_submenu').click(function(){
$(this).find('ul.submenu').slideToggle();
$(this).toggleClass('opened');
});
submenu.find('ul.submenu').subMenu({});
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));
$(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 ($) {

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/js/wavesurfer.min.js vendored Normal file

File diff suppressed because one or more lines are too long

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,35 +3,39 @@
* @param {object} _options
*/
$.fn.loadMoreNews = function (_options) {
var nextPage = 2;
var isLoading = false;
var page = 1;
var options = {
loadingElementId: '#loading',
container: '',
url: document.location.pathname
url: document.location.pathname,
nextPage: 2,
dateStart: null,
dateEnd:null
};
$.extend(options, _options);
var $isLoading = $(options.loadingElementId, this);
$isLoading.hide();
this.click(function (e) {
this.unbind('click').click(function (e) {
e.preventDefault();
if (!isLoading) {
// Set flag and update UI
isLoading = 1;
$isLoading.show();
var $button = $(this).attr("disabled", "disabled");
var $container = $(options.container)
var $container = $(options.container);
$container.each(function(){$(this).find('.no-results').remove();});
// 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 + (options.dateStart ? '&dateStart=' + options.dateStart : '') + (options.dateEnd ? '&dateEnd=' + options.dateEnd : '')})
.always(function () {
// Whether success or failure, update the UI again
isLoading = 0;
$isLoading.hide();
$button.removeAttr("disabled");
$(options.container + ' .loader').remove();
})
.done(function (data) {
if (!data) {
@@ -45,7 +49,13 @@
var id = this.toString();
$(id).append($('<div>'+data+'</div>').find(id).length ? $('<div>'+data+'</div>').find(id).children() : $(data));
});
++nextPage;
$container.each(function () {
var id = this.toString();
if (!$(id).find('li').length) {
$(id).append('<li class="no-results">Geen items gevonden.</li>');
}
});
++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 pos = $menuItem.offset();
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()});
$menuItem.removeClass('hover');
} );
$('body').append(submenu);
submenu.children('ul.submenu').slideDown();
submenu.find('ul.submenu li.has_submenu').click(function(){
$(this).find('ul.submenu').slideToggle();
$(this).toggleClass('opened');
});
submenu.find('ul.submenu').subMenu({});
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));
$(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 *;
@mixin container {
max-width: 1170px;
margin: 0 auto;
}
@mixin reset-list {
margin: 0;
padding: 0;
list-style: none;
}
@mixin post_date {
display: block;
height: 30px;
@mixin font_base {
font-family: Nunito, serif;
font-size: 12px;
font-weight: 500;
line-height: 3.17;
letter-spacing: normal;
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;
overflow: hidden;
white-space: nowrap;
@@ -30,11 +44,7 @@
}
@mixin program_name {
font-family: Nunito, serif;
font-size: 12px;
font-weight: 500;
line-height: 3.17;
text-align: left;
@include font_small;
color: #000;
margin-right: 10px;
text-decoration: none;

View File

@@ -1,46 +1,14 @@
// Body
$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;
// Container
$container-bg: #f9f9f9;
// Nav
$nav-text-color: #1a1a1a;
$nav-text-weight: bold;
$nav-text-size: 14px;
// News
$news-banner-text-color: #fff;
// Base
$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,37 @@
@use "clearfix";
@use "container";
@use "../components/button";
@use "../components/pretty_photo";
@use "../components/cookie";
@use "../components/list";
@use "../components/banners";
@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 {
max-width: 1440px;
margin: 0 auto;
}
.body_container {
padding: 67px 135px;
background-color: #f9f9f9;
margin: 0;
}
@include container;
padding: 67px 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

@@ -0,0 +1,9 @@
.ad-prefix {
width: 100%;
font-family: Nunito, serif;
font-size: 12px;
font-weight: 500;
line-height: 3.17;
text-align: center;
color: #666;
}

View File

@@ -1,27 +1,36 @@
@use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.blog {
@include reset-list;
.post {
margin-bottom: 27px;
&:not(.auto_height) {
height: 90px;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
h2 {
.post_title {
margin: 0;
font-family: Montserrat, serif;
font-size: 14px;
font-weight: 600;
line-height: 1.43;
color: $text-color;
a {
font-family: Montserrat, serif;
font-size: 14px;
font-weight: 600;
line-height: 1.43;
color: #1a1a1a;
text-decoration: none;
display: inline-block;
color: $text-color;
&.clipText {
display: -webkit-box;
}
}
}
@@ -32,5 +41,17 @@
.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 {
span {
font-family: Nunito, serif;
@@ -9,33 +11,77 @@
text-transform: uppercase;
height: 30px;
}
&.extra_small span {
font-size: 12px;
}
&.small span {
font-size: 14px;
}
&.medium span {
font-size: 18px;
}
border-bottom: 1px solid #efefef;
padding-right: 20px;
}
.box {
display: inline-block;
width: auto;
padding: 30px 23px 30px 30px;
border-radius: 3px;
box-shadow: 0 0 15px 0 rgba(35, 31, 32, 0.1);
background-color: #fff;
background-color: $element-bg;
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 {
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 {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
&.fit_content {
width: fit-content;
}
.box_header {
padding-right: 20px;
&:last-of-type {
padding-right: 0;
}
span {
color: #999;
border-bottom: none;
cursor: pointer;
padding-bottom: 3px;
}
&.extra_small span {
font-size: 12px;
}
&.small span {
font-size: 13px;
font-size: 14px;
}
&.medium span {
@@ -46,12 +92,14 @@
span {
color: #0f259d;
border-bottom: 3px solid #0f259d;
padding-bottom: 0;
}
}
}
}
.tab_content {
display: none;
padding: 20px 23px 20px 20px;
&.active {
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 {
display: block;
width: CALC(100% - 78px);
@@ -9,13 +11,30 @@
font-weight: bold;
line-height: 0.93;
text-align: center;
color: #fff;
color: $text-inverted-color;
margin-bottom: 10px;
text-decoration: none;
text-transform: uppercase;
&:hover, &:active {
color: $text-inverted-color;
}
&.auto_width {
width: fit-content;
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/variables" as *;
.contact_box {
position: relative;
padding: 15px 23px 15px 15px;
.logo-whatsapp {
position: absolute;
right: 0;
@@ -13,7 +16,7 @@
font-size: 24px;
font-weight: 600;
line-height: 1.17;
color: #282828;
color: $text-dark-color;
margin-top: 0;
padding-right: 60px;
}
@@ -23,10 +26,15 @@
font-size: 14px;
font-weight: 500;
line-height: 1.57;
color: #666;
color: $text-secondary-color;
}
.read_more {
@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/variables" as *;
.featured {
img {
width: 100%;
object-fit: cover;
max-height: 218px;
}
h2 {
margin: 0;
@@ -12,7 +15,7 @@
font-weight: 600;
line-height: 1.35;
text-align: left;
color: #1a1a1a;
color: $text-color;
text-decoration: none;
}
}
@@ -27,7 +30,7 @@
font-weight: 500;
line-height: 1.57;
text-align: left;
color: #666;
color: $text-secondary-color;
margin: 10px 0;
}
}

View File

@@ -1,4 +1,5 @@
@use "../abstracts/mixin" as *;
@use "../abstracts/variables" as *;
.footer_container {
font-family: Montserrat, serif;
@@ -6,36 +7,48 @@
font-weight: 600;
line-height: 1.71;
text-align: left;
color: #fff;
color: $text-inverted-color;
.footer_menu {
padding: 61px 135px 38px 134px;
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 {
padding-bottom: 70px;
margin-bottom: 34px;
border-bottom: 1px solid #fff;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
a {
color: #fff;
color: $text-inverted-color;
text-decoration: none;
display: block;
width: 100%;
}
.about a {
display: inline;
text-decoration: underline;
}
.buttons a {
text-transform: uppercase;
margin-bottom: 10px;
}
.box_header {
border-bottom: 1px solid #fff;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
span {
border-bottom: 3px solid #fff;
color: #fff;
color: $text-inverted-color;
font-size: 14px;
}
}
@@ -54,7 +67,7 @@
width: 38px;
height: 38px;
background-color: #5ba8f4;
color: #fff;
color: $text-inverted-color;
text-decoration: none;
line-height: 40px;
border-radius: 5px;
@@ -63,10 +76,27 @@
.footer_menu2 {
@include reset-list;
float: left;
margin-bottom: 20px;
li {
float: left;
@media (min-width: 768px) {
float: left;
}
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 {
text-decoration: underline;

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