From 840f79e7fc90f9a946df279bf825456eedf71cf3 Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Wed, 7 Dec 2022 14:57:15 +0100 Subject: [PATCH] book cases added --- .blueprint | 9 +- .../Livewire/Frontend/CommentBookCase.php | 43 + app/Http/Livewire/Tables/BookCaseTable.php | 28 +- app/Models/BookCase.php | 20 + app/Models/OrangePill.php | 40 + app/Models/User.php | 5 +- app/Nova/OrangePill.php | 103 +++ composer.json | 7 + composer.lock | 748 ++++++++++++++++-- config/comments.php | 145 ++++ config/markdown.php | 92 +++ database/factories/OrangePillFactory.php | 34 + ...2_12_06_222651_create_book_cases_table.php | 4 + ...12_07_095709_create_orange_pills_table.php | 39 + ...22_12_07_122722_create_comments_tables.php | 47 ++ draft.yaml | 17 - lang/de.json | 1 + public/vendor/maps/css/index.css | 1 + public/vendor/maps/js/index.js | 2 + public/vendor/maps/js/index.js.LICENSE.txt | 4 + public/vendor/maps/mix-manifest.json | 4 + .../book_cases/oranged-pilled.blade.php | 30 +- resources/views/layouts/app.blade.php | 54 +- resources/views/layouts/guest.blade.php | 36 +- .../frontend/comment-book-case.blade.php | 123 +++ .../views/livewire/frontend/header.blade.php | 2 + .../frontend/search-book-case.blade.php | 4 +- .../modals/book_cases/orange_pill.blade.php | 42 + .../comments/components/avatar.blade.php | 15 + .../comments/components/button.blade.php | 12 + .../vendor/comments/components/date.blade.php | 7 + .../components/editors/easymde.blade.php | 104 +++ .../components/editors/textarea.blade.php | 1 + .../comments/components/icons/close.blade.php | 1 + .../comments/components/icons/copy.blade.php | 1 + .../components/icons/delete.blade.php | 1 + .../comments/components/icons/edit.blade.php | 1 + .../comments/components/icons/menu.blade.php | 1 + .../comments/components/icons/smile.blade.php | 1 + .../comments/components/modal.blade.php | 14 + .../comments/components/scripts.blade.php | 9 + .../comments/components/styles.blade.php | 3 + .../extraCommentHeaderActions.blade.php | 0 .../comments/livewire/comment.blade.php | 196 +++++ .../comments/livewire/comments.blade.php | 61 ++ .../livewire/partials/newComment.blade.php | 24 + .../livewire/partials/replyTo.blade.php | 47 ++ .../approvedCommentNotification.blade.php | 24 + .../mail/pendingCommentNotification.blade.php | 20 + .../signed/approval/approveComment.blade.php | 5 + .../approveCommentConfirmation.blade.php | 15 + .../signed/approval/rejectComment.blade.php | 5 + .../approval/rejectCommentApproval.blade.php | 14 + .../unsubscribe.blade.php | 5 + .../unsubscribeAll.blade.php | 5 + .../unsubscribeAllApproval.blade.php | 14 + .../unsubscribeApproval.blade.php | 14 + .../comments/signed/signedLayout.blade.php | 10 + routes/web.php | 3 + 59 files changed, 2175 insertions(+), 142 deletions(-) create mode 100644 app/Http/Livewire/Frontend/CommentBookCase.php create mode 100644 app/Models/OrangePill.php create mode 100644 app/Nova/OrangePill.php create mode 100644 config/comments.php create mode 100644 config/markdown.php create mode 100644 database/factories/OrangePillFactory.php create mode 100644 database/migrations/2022_12_07_095709_create_orange_pills_table.php create mode 100644 database/migrations/2022_12_07_122722_create_comments_tables.php create mode 100644 public/vendor/maps/css/index.css create mode 100644 public/vendor/maps/js/index.js create mode 100644 public/vendor/maps/js/index.js.LICENSE.txt create mode 100644 public/vendor/maps/mix-manifest.json create mode 100644 resources/views/livewire/frontend/comment-book-case.blade.php create mode 100644 resources/views/modals/book_cases/orange_pill.blade.php create mode 100644 resources/views/vendor/comments/components/avatar.blade.php create mode 100644 resources/views/vendor/comments/components/button.blade.php create mode 100644 resources/views/vendor/comments/components/date.blade.php create mode 100644 resources/views/vendor/comments/components/editors/easymde.blade.php create mode 100644 resources/views/vendor/comments/components/editors/textarea.blade.php create mode 100644 resources/views/vendor/comments/components/icons/close.blade.php create mode 100644 resources/views/vendor/comments/components/icons/copy.blade.php create mode 100644 resources/views/vendor/comments/components/icons/delete.blade.php create mode 100644 resources/views/vendor/comments/components/icons/edit.blade.php create mode 100644 resources/views/vendor/comments/components/icons/menu.blade.php create mode 100644 resources/views/vendor/comments/components/icons/smile.blade.php create mode 100644 resources/views/vendor/comments/components/modal.blade.php create mode 100644 resources/views/vendor/comments/components/scripts.blade.php create mode 100644 resources/views/vendor/comments/components/styles.blade.php create mode 100644 resources/views/vendor/comments/extraCommentHeaderActions.blade.php create mode 100644 resources/views/vendor/comments/livewire/comment.blade.php create mode 100644 resources/views/vendor/comments/livewire/comments.blade.php create mode 100644 resources/views/vendor/comments/livewire/partials/newComment.blade.php create mode 100644 resources/views/vendor/comments/livewire/partials/replyTo.blade.php create mode 100644 resources/views/vendor/comments/mail/approvedCommentNotification.blade.php create mode 100644 resources/views/vendor/comments/mail/pendingCommentNotification.blade.php create mode 100644 resources/views/vendor/comments/signed/approval/approveComment.blade.php create mode 100644 resources/views/vendor/comments/signed/approval/approveCommentConfirmation.blade.php create mode 100644 resources/views/vendor/comments/signed/approval/rejectComment.blade.php create mode 100644 resources/views/vendor/comments/signed/approval/rejectCommentApproval.blade.php create mode 100644 resources/views/vendor/comments/signed/notificationSubscription/unsubscribe.blade.php create mode 100644 resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAll.blade.php create mode 100644 resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAllApproval.blade.php create mode 100644 resources/views/vendor/comments/signed/notificationSubscription/unsubscribeApproval.blade.php create mode 100644 resources/views/vendor/comments/signed/signedLayout.blade.php diff --git a/.blueprint b/.blueprint index 069eace2..31acea7a 100644 --- a/.blueprint +++ b/.blueprint @@ -1,8 +1,8 @@ created: - - database/factories/BookCaseFactory.php - - database/migrations/2022_12_06_222651_create_book_cases_table.php - - app/Models/BookCase.php - - app/Nova/BookCase.php + - database/factories/OrangePillFactory.php + - database/migrations/2022_12_07_095709_create_orange_pills_table.php + - app/Models/OrangePill.php + - app/Nova/OrangePill.php models: Category: { name: string, slug: string } City: { country_id: biginteger, name: string, slug: string, longitude: 'float:10', latitude: 'float:10' } @@ -25,3 +25,4 @@ models: Venue: { city_id: biginteger, name: string, slug: string, street: string } Case: { title: string, lat: double, lon: json, address: text, type: string, open: string, comment: text, contact: text, bcz: text, digital: boolean, icontype: string, deactivated: boolean, deactreason: string, entrytype: string, homepage: string } BookCase: { title: string, lat: double, lon: json, address: text, type: string, open: string, comment: text, contact: text, bcz: text, digital: boolean, icontype: string, deactivated: boolean, deactreason: string, entrytype: string, homepage: string } + OrangePill: { user_id: foreign, book_case_id: foreign, date: datetime, amount: 'integer unsigned' } diff --git a/app/Http/Livewire/Frontend/CommentBookCase.php b/app/Http/Livewire/Frontend/CommentBookCase.php new file mode 100644 index 00000000..004fe365 --- /dev/null +++ b/app/Http/Livewire/Frontend/CommentBookCase.php @@ -0,0 +1,43 @@ + 1, + 'date' => null, + ]; protected $model = BookCase::class; public function configure(): void @@ -22,6 +27,7 @@ class BookCaseTable extends DataTableComponent ]; }) ->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) { + return [ 'class' => 'px-6 py-4 text-sm font-medium dark:text-white', 'default' => false, @@ -48,8 +54,8 @@ class BookCaseTable extends DataTableComponent ) => $row->homepage ? 'Link' : null ) ->html(), - Column::make('Oranged-Pilled', 'deactivated') - ->label(fn($row, Column $column) => view('columns.book_cases.oranged-pilled')->withRow($row)), + Column::make('Orange-Pilled', 'orange_pilled') + ->label(fn($row, Column $column) => view('columns.book_cases.oranged-pilled')->withRow($row)), ]; } @@ -77,4 +83,20 @@ class BookCaseTable extends DataTableComponent // Return the absolute version of a Relative URL return $request_protocol.'://'.$_SERVER['HTTP_HOST'].'/'.$url; } + + public function viewHistoryModal($modelId): void + { + $this->viewingModal = true; + $this->currentModal = BookCase::findOrFail($modelId); + } + + public function resetModal(): void + { + $this->reset('viewingModal', 'currentModal'); + } + + public function customView(): string + { + return 'modals.book_cases.orange_pill'; + } } diff --git a/app/Models/BookCase.php b/app/Models/BookCase.php index 4ffac1a3..e89591ee 100644 --- a/app/Models/BookCase.php +++ b/app/Models/BookCase.php @@ -4,10 +4,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Spatie\Comments\Models\Concerns\HasComments; class BookCase extends Model { use HasFactory; + use HasComments; /** * The attributes that aren't mass assignable. @@ -28,4 +30,22 @@ class BookCase extends Model 'digital' => 'boolean', 'deactivated' => 'boolean', ]; + + /* + * This string will be used in notifications on what a new comment + * was made. + */ + public function commentableName(): string + { + // + } + + /* + * This URL will be used in notifications to let the user know + * where the comment itself can be read. + */ + public function commentUrl(): string + { + + } } diff --git a/app/Models/OrangePill.php b/app/Models/OrangePill.php new file mode 100644 index 00000000..66637c2b --- /dev/null +++ b/app/Models/OrangePill.php @@ -0,0 +1,40 @@ + 'integer', + 'user_id' => 'integer', + 'book_case_id' => 'integer', + 'date' => 'datetime', + ]; + + public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(User::class); + } + + public function bookCase(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(BookCase::class); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 4ab7f2eb..12e21048 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,9 +10,11 @@ use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Jetstream\HasProfilePhoto; use Laravel\Jetstream\HasTeams; use Laravel\Sanctum\HasApiTokens; +use Spatie\Comments\Models\Concerns\InteractsWithComments; +use Spatie\Comments\Models\Concerns\Interfaces\CanComment; use Spatie\Permission\Traits\HasRoles; -class User extends Authenticatable implements MustVerifyEmail +class User extends Authenticatable implements MustVerifyEmail, CanComment { use HasApiTokens; use HasFactory; @@ -21,6 +23,7 @@ class User extends Authenticatable implements MustVerifyEmail use Notifiable; use TwoFactorAuthenticatable; use HasRoles; + use InteractsWithComments; protected $guarded = []; diff --git a/app/Nova/OrangePill.php b/app/Nova/OrangePill.php new file mode 100644 index 00000000..6cb883cd --- /dev/null +++ b/app/Nova/OrangePill.php @@ -0,0 +1,103 @@ +sortable(), + + DateTime::make('Date') + ->rules('required'), + + Number::make('Amount') + ->rules('required', 'integer'), + + BelongsTo::make('User'), + BelongsTo::make('BookCase'), + + + ]; + } + + /** + * Get the cards available for the request. + * + * @param \Illuminate\Http\Request $request + * @return array + */ + public function cards(Request $request) + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @param \Illuminate\Http\Request $request + * @return array + */ + public function filters(Request $request) + { + return []; + } + + /** + * Get the lenses available for the resource. + * + * @param \Illuminate\Http\Request $request + * @return array + */ + public function lenses(Request $request) + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @param \Illuminate\Http\Request $request + * @return array + */ + public function actions(Request $request) + { + return []; + } +} diff --git a/composer.json b/composer.json index c6a206e2..68fc894e 100644 --- a/composer.json +++ b/composer.json @@ -13,6 +13,7 @@ "archtechx/enums": "^0.3.1", "ebess/advanced-nova-media-library": "^4.0", "ezadr/lnurl-php": "^1.0", + "gonoware/laravel-maps": "^2.0", "guzzlehttp/guzzle": "^7.2", "itsmejoshua/novaspatiepermissions": "^1.0", "jackiedo/timezonelist": "^5.1", @@ -28,6 +29,8 @@ "sentry/sentry-laravel": "^3.1", "simplesoftwareio/simple-qrcode": "^4.2", "spatie/eloquent-sortable": "^4.0", + "spatie/laravel-comments": "^1.4", + "spatie/laravel-comments-livewire": "^1.2", "spatie/laravel-google-fonts": "^1.2", "spatie/laravel-markdown": "^2.2", "spatie/laravel-medialibrary": "^10.0.0", @@ -116,6 +119,10 @@ { "type": "path", "url": "./nova-components/Start" + }, + { + "type": "composer", + "url": "https://satis.spatie.be" } ] } diff --git a/composer.lock b/composer.lock index 65c72316..b5d39acd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bdaacd0e3b0592028578169251930b7a", + "content-hash": "5e1d276278d181610fa0fab60d465ebc", "packages": [ { "name": "akuechler/laravel-geoly", @@ -1396,6 +1396,82 @@ ], "time": "2022-02-20T15:07:15+00:00" }, + { + "name": "gonoware/laravel-maps", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "git@gitlab.com:gonoware/laravel-maps.git", + "reference": "ea42092b92ee17c3931cb59b0b8fa8d14b29cbd4" + }, + "dist": { + "type": "zip", + "url": "https://gitlab.com/api/v4/projects/gonoware%2Flaravel-maps/repository/archive.zip?sha=ea42092b92ee17c3931cb59b0b8fa8d14b29cbd4", + "reference": "ea42092b92ee17c3931cb59b0b8fa8d14b29cbd4", + "shasum": "" + }, + "require": { + "illuminate/support": "^9.0", + "php": "^8.1" + }, + "require-dev": { + "mockery/mockery": "^1.4.4", + "phpunit/phpunit": "^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + }, + "laravel": { + "providers": [ + "GoNoWare\\Maps\\MapsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "GoNoWare\\Maps\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuel Mutschlechner", + "email": "em@gonoware.com" + }, + { + "name": "Benedikt Tuschter", + "email": "bt@gonoware.com" + } + ], + "description": "Maps for your Laravel application", + "homepage": "https://gitlab.com/gonoware/laravel-maps", + "keywords": [ + "OpenStreetMap", + "bing", + "bingmaps", + "gonoware", + "google", + "googlemaps", + "laravel", + "mapkit", + "mapkitjs", + "mapquest", + "maps", + "osm", + "yandex", + "yandexmaps" + ], + "support": { + "issues": "https://gitlab.com/gonoware/laravel-maps/issues", + "source": "https://gitlab.com/gonoware/laravel-maps" + }, + "time": "2022-11-16T23:10:53+00:00" + }, { "name": "graham-campbell/result-type", "version": "v1.1.0", @@ -2369,16 +2445,16 @@ }, { "name": "laravel/framework", - "version": "v9.42.2", + "version": "v9.43.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "607d7867c93706eae20e28e46679f8a66e2a23ec" + "reference": "011f2e1d49a11c22519a7899b46ddf3bc5b0f40b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/607d7867c93706eae20e28e46679f8a66e2a23ec", - "reference": "607d7867c93706eae20e28e46679f8a66e2a23ec", + "url": "https://api.github.com/repos/laravel/framework/zipball/011f2e1d49a11c22519a7899b46ddf3bc5b0f40b", + "reference": "011f2e1d49a11c22519a7899b46ddf3bc5b0f40b", "shasum": "" }, "require": { @@ -2551,20 +2627,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-11-30T16:23:52+00:00" + "time": "2022-12-06T14:26:07+00:00" }, { "name": "laravel/jetstream", - "version": "v2.12.5", + "version": "v2.12.6", "source": { "type": "git", "url": "https://github.com/laravel/jetstream.git", - "reference": "78a3f7d182a4e91c74af8fd62c42eb68c65b8ee2" + "reference": "bfed92ddacb22053ddfe1208f098fbd9d9404d89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/jetstream/zipball/78a3f7d182a4e91c74af8fd62c42eb68c65b8ee2", - "reference": "78a3f7d182a4e91c74af8fd62c42eb68c65b8ee2", + "url": "https://api.github.com/repos/laravel/jetstream/zipball/bfed92ddacb22053ddfe1208f098fbd9d9404d89", + "reference": "bfed92ddacb22053ddfe1208f098fbd9d9404d89", "shasum": "" }, "require": { @@ -2579,7 +2655,7 @@ "laravel/framework": "<9.37.0" }, "require-dev": { - "inertiajs/inertia-laravel": "^0.6.3", + "inertiajs/inertia-laravel": "^0.6.4", "laravel/sanctum": "^3.0", "mockery/mockery": "^1.0", "orchestra/testbench": "^7.0", @@ -2621,7 +2697,7 @@ "issues": "https://github.com/laravel/jetstream/issues", "source": "https://github.com/laravel/jetstream" }, - "time": "2022-10-26T08:15:07+00:00" + "time": "2022-12-05T15:16:43+00:00" }, { "name": "laravel/nova", @@ -2929,16 +3005,16 @@ }, { "name": "laravel/ui", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "f2f879e9f0947a1ede12b0ff7446ce4e249479cd" + "reference": "ac94e596ffd39c63cfa41f5407b765b07df97483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/f2f879e9f0947a1ede12b0ff7446ce4e249479cd", - "reference": "f2f879e9f0947a1ede12b0ff7446ce4e249479cd", + "url": "https://api.github.com/repos/laravel/ui/zipball/ac94e596ffd39c63cfa41f5407b765b07df97483", + "reference": "ac94e596ffd39c63cfa41f5407b765b07df97483", "shasum": "" }, "require": { @@ -2984,9 +3060,9 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v4.1.0" + "source": "https://github.com/laravel/ui/tree/v4.1.1" }, - "time": "2022-11-15T14:36:57+00:00" + "time": "2022-12-05T15:09:21+00:00" }, { "name": "league/commonmark", @@ -3388,6 +3464,177 @@ ], "time": "2022-04-17T13:12:02+00:00" }, + { + "name": "league/uri", + "version": "6.8.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/a700b4656e4c54371b799ac61e300ab25a2d1d39", + "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39", + "shasum": "" + }, + "require": { + "ext-json": "*", + "league/uri-interfaces": "^2.3", + "php": "^8.1", + "psr/http-message": "^1.0.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v3.9.5", + "nyholm/psr7": "^1.5.1", + "php-http/psr7-integration-tests": "^1.1.1", + "phpbench/phpbench": "^1.2.6", + "phpstan/phpstan": "^1.8.5", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.1.1", + "phpstan/phpstan-strict-rules": "^1.4.3", + "phpunit/phpunit": "^9.5.24", + "psr/http-factory": "^1.0.1" + }, + "suggest": { + "ext-fileinfo": "Needed to create Data URI from a filepath", + "ext-intl": "Needed to improve host validation", + "league/uri-components": "Needed to easily manipulate URI objects", + "psr/http-factory": "Needed to use the URI factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri/issues", + "source": "https://github.com/thephpleague/uri/tree/6.8.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2022-09-13T19:58:47+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.19", + "phpstan/phpstan": "^0.12.90", + "phpstan/phpstan-phpunit": "^0.12.19", + "phpstan/phpstan-strict-rules": "^0.12.9", + "phpunit/phpunit": "^8.5.15 || ^9.5" + }, + "suggest": { + "ext-intl": "to use the IDNA feature", + "symfony/intl": "to use the IDNA feature via Symfony Polyfill" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interface for URI representation", + "homepage": "http://github.com/thephpleague/uri-interfaces", + "keywords": [ + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-interfaces/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2021-06-28T04:27:21+00:00" + }, { "name": "livewire/livewire", "version": "v2.10.7", @@ -3539,6 +3786,75 @@ ], "time": "2022-11-28T12:13:34+00:00" }, + { + "name": "masterminds/html5", + "version": "2.7.6", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" + }, + "time": "2022-08-18T16:18:26+00:00" + }, { "name": "mobiledetect/mobiledetectlib", "version": "2.8.41", @@ -6701,6 +7017,198 @@ }, "time": "2021-12-21T10:08:05+00:00" }, + { + "name": "spatie/laravel-comments", + "version": "1.4.0", + "source": { + "type": "git", + "url": "git@github.com:spatie/laravel-comments.git", + "reference": "7b7fda0ac6b0ffb28796580f7bee3188d2547c81" + }, + "dist": { + "type": "zip", + "url": "https://satis.spatie.be/dist/spatie/laravel-comments/spatie-laravel-comments-7b7fda0ac6b0ffb28796580f7bee3188d2547c81-zip-f8d817.zip", + "reference": "7b7fda0ac6b0ffb28796580f7bee3188d2547c81", + "shasum": "b4c9b2f05ce82ba6721e4e404be83d6f173384ba" + }, + "require": { + "illuminate/contracts": "^9.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9.2", + "spatie/once": "^3.0", + "symfony/html-sanitizer": "^6.1" + }, + "require-dev": { + "nunomaduro/collision": "^6.0", + "nunomaduro/larastan": "^2.0", + "orchestra/testbench": "^7.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "spatie/laravel-markdown": "^2.1", + "spatie/laravel-ray": "^1.26", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "suggest": { + "spatie/laravel-markdown": "Required to convert markdown to HTML" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Comments\\CommentsServiceProvider" + ], + "aliases": { + "Comments": "Spatie\\Comments\\Facades\\Comments" + } + } + }, + "autoload": { + "psr-4": { + "Spatie\\Comments\\": "src", + "Spatie\\Comments\\Database\\Factories\\": "database/factories" + } + }, + "autoload-dev": { + "psr-4": { + "Spatie\\Comments\\Tests\\": "tests" + } + }, + "scripts": { + "analyse": [ + "vendor/bin/phpstan analyse" + ], + "baseline": [ + "vendor/bin/phpstan --generate-baseline" + ], + "test": [ + "vendor/bin/pest" + ], + "test-coverage": [ + "vendor/bin/pest coverage" + ] + }, + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Associate comments and reactions with Eloquent models", + "homepage": "https://github.com/spatie/laravel-comments", + "keywords": [ + "laravel", + "laravel-comments", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-comments/tree/1.4.0", + "issues": "https://github.com/spatie/laravel-comments/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/spatie" + } + ], + "time": "2022-11-26T13:34:44+00:00" + }, + { + "name": "spatie/laravel-comments-livewire", + "version": "1.2.8", + "source": { + "type": "git", + "url": "git@github.com:spatie/laravel-comments-livewire.git", + "reference": "ac34fbb12bb1f3c8cecf1caef1d0372ad0410d09" + }, + "dist": { + "type": "zip", + "url": "https://satis.spatie.be/dist/spatie/laravel-comments-livewire/spatie-laravel-comments-livewire-ac34fbb12bb1f3c8cecf1caef1d0372ad0410d09-zip-03d069.zip", + "reference": "ac34fbb12bb1f3c8cecf1caef1d0372ad0410d09", + "shasum": "039266a75856ba8c7eab0844c68fffb996d0dff0" + }, + "require": { + "illuminate/contracts": "^9.0", + "livewire/livewire": "^2.8", + "php": "^8.1", + "spatie/laravel-comments": "^1.3", + "spatie/laravel-markdown": "^2.1", + "spatie/laravel-package-tools": "^1.10.0" + }, + "require-dev": { + "nunomaduro/collision": "^6.0", + "nunomaduro/larastan": "^2.0", + "orchestra/testbench": "^7.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LivewireComments\\LivewireCommentsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\LivewireComments\\": "src", + "Spatie\\LivewireComments\\Database\\Factories\\": "database/factories" + } + }, + "autoload-dev": { + "psr-4": { + "Spatie\\LivewireComments\\Tests\\": "tests" + } + }, + "scripts": { + "analyse": [ + "vendor/bin/phpstan analyse" + ], + "test": [ + "vendor/bin/pest" + ], + "test-coverage": [ + "vendor/bin/pest coverage" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Livewire components for laravel-comments", + "homepage": "https://github.com/spatie/laravel-comments", + "keywords": [ + "laravel", + "laravel-comments", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-comments-livewire/tree/1.2.8" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/spatie" + } + ], + "time": "2022-10-17T07:19:57+00:00" + }, { "name": "spatie/laravel-google-fonts", "version": "1.2.1", @@ -8001,16 +8509,16 @@ }, { "name": "symfony/console", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682" + "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/75d4749d9620a8fa21a2d2847800a84b5c4e7682", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682", + "url": "https://api.github.com/repos/symfony/console/zipball/58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", + "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", "shasum": "" }, "require": { @@ -8077,7 +8585,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.0" + "source": "https://github.com/symfony/console/tree/v6.2.1" }, "funding": [ { @@ -8093,7 +8601,7 @@ "type": "tidelift" } ], - "time": "2022-11-29T16:44:51+00:00" + "time": "2022-12-01T13:44:20+00:00" }, { "name": "symfony/css-selector", @@ -8162,16 +8670,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3", + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3", "shasum": "" }, "require": { @@ -8180,7 +8688,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -8209,7 +8717,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0" }, "funding": [ { @@ -8225,20 +8733,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/error-handler", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e" + "reference": "b4e41f62c1124378863ff2705158a60da3e4c6b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/d9894724a9d20afd3329e36b36e45835b5c2ab3e", - "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/b4e41f62c1124378863ff2705158a60da3e4c6b9", + "reference": "b4e41f62c1124378863ff2705158a60da3e4c6b9", "shasum": "" }, "require": { @@ -8280,7 +8788,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.2.0" + "source": "https://github.com/symfony/error-handler/tree/v6.2.1" }, "funding": [ { @@ -8296,7 +8804,7 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2022-12-01T21:07:46+00:00" }, { "name": "symfony/event-dispatcher", @@ -8383,16 +8891,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448" + "reference": "0782b0b52a737a05b4383d0df35a474303cabdae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae", + "reference": "0782b0b52a737a05b4383d0df35a474303cabdae", "shasum": "" }, "require": { @@ -8405,7 +8913,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -8442,7 +8950,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0" }, "funding": [ { @@ -8458,7 +8966,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/finder", @@ -8524,6 +9032,75 @@ ], "time": "2022-10-09T08:55:40+00:00" }, + { + "name": "symfony/html-sanitizer", + "version": "v6.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/html-sanitizer.git", + "reference": "28d19124099e860ef52da06ae251e37738b750fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/28d19124099e860ef52da06ae251e37738b750fe", + "reference": "28d19124099e860ef52da06ae251e37738b750fe", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "league/uri": "^6.5", + "masterminds/html5": "^2.7.2", + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HtmlSanitizer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's DOM.", + "homepage": "https://symfony.com", + "keywords": [ + "Purifier", + "html", + "sanitizer" + ], + "support": { + "source": "https://github.com/symfony/html-sanitizer/tree/v6.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-06T15:18:34+00:00" + }, { "name": "symfony/http-client", "version": "v6.2.0", @@ -8692,16 +9269,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854" + "reference": "d0bbd5a7e81b38f32504399b9199f265505b7bac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/edc56ed49a2955383d59e9b7043fd3bbc26f1854", - "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0bbd5a7e81b38f32504399b9199f265505b7bac", + "reference": "d0bbd5a7e81b38f32504399b9199f265505b7bac", "shasum": "" }, "require": { @@ -8750,7 +9327,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.2.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.1" }, "funding": [ { @@ -8766,20 +9343,20 @@ "type": "tidelift" } ], - "time": "2022-11-21T16:03:04+00:00" + "time": "2022-12-04T18:26:13+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e" + "reference": "bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e008ce658dbd995b3c3ab3d9be0555ea3b11867e", - "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404", + "reference": "bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404", "shasum": "" }, "require": { @@ -8861,7 +9438,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.2.0" + "source": "https://github.com/symfony/http-kernel/tree/v6.2.1" }, "funding": [ { @@ -8877,20 +9454,20 @@ "type": "tidelift" } ], - "time": "2022-11-30T17:37:58+00:00" + "time": "2022-12-06T17:28:26+00:00" }, { "name": "symfony/mailer", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c" + "reference": "a18c3dd41cfcf011e3866802e39b9ae9e541deaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", - "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a18c3dd41cfcf011e3866802e39b9ae9e541deaf", + "reference": "a18c3dd41cfcf011e3866802e39b9ae9e541deaf", "shasum": "" }, "require": { @@ -8905,7 +9482,8 @@ "conflict": { "symfony/http-kernel": "<5.4", "symfony/messenger": "<6.2", - "symfony/mime": "<6.2" + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" }, "require-dev": { "symfony/console": "^5.4|^6.0", @@ -8939,7 +9517,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.2.0" + "source": "https://github.com/symfony/mailer/tree/v6.2.1" }, "funding": [ { @@ -8955,7 +9533,7 @@ "type": "tidelift" } ], - "time": "2022-11-28T17:18:31+00:00" + "time": "2022-12-06T16:54:23+00:00" }, { "name": "symfony/mailgun-mailer", @@ -10649,16 +11227,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc" + "reference": "68cce71402305a015f8c1589bfada1280dc64fe7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/68cce71402305a015f8c1589bfada1280dc64fe7", + "reference": "68cce71402305a015f8c1589bfada1280dc64fe7", "shasum": "" }, "require": { @@ -10670,7 +11248,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -10710,7 +11288,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.2.0" }, "funding": [ { @@ -10726,7 +11304,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/uid", @@ -10804,16 +11382,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6228b11059d7b279be699682f164a107ba9a268d" + "reference": "1e7544c8698627b908657e5276854d52ab70087a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6228b11059d7b279be699682f164a107ba9a268d", - "reference": "6228b11059d7b279be699682f164a107ba9a268d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1e7544c8698627b908657e5276854d52ab70087a", + "reference": "1e7544c8698627b908657e5276854d52ab70087a", "shasum": "" }, "require": { @@ -10872,7 +11450,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.1" }, "funding": [ { @@ -10888,7 +11466,7 @@ "type": "tidelift" } ], - "time": "2022-11-28T13:41:56+00:00" + "time": "2022-12-03T22:32:58+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -12211,7 +12789,7 @@ }, { "name": "laravel-lang/attributes", - "version": "v2.0.8", + "version": "v2.0.9", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/attributes.git", @@ -12278,7 +12856,7 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/attributes/issues", - "source": "https://github.com/Laravel-Lang/attributes/tree/v2.0.8" + "source": "https://github.com/Laravel-Lang/attributes/tree/v2.0.9" }, "funding": [ { @@ -12290,7 +12868,7 @@ }, { "name": "laravel-lang/http-statuses", - "version": "v3.1.2", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/http-statuses.git", @@ -12354,7 +12932,7 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/http-statuses/issues", - "source": "https://github.com/Laravel-Lang/http-statuses/tree/v3.1.2" + "source": "https://github.com/Laravel-Lang/http-statuses/tree/v3.1.3" }, "funding": [ { @@ -12366,16 +12944,16 @@ }, { "name": "laravel-lang/lang", - "version": "12.5.7", + "version": "12.5.8", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/lang.git", - "reference": "166a07a7f6cda95fa3c9b3b1d1ff872d44e7e71d" + "reference": "c11b2cb92a8873b9ea16b25012b5b13dce7a2935" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/166a07a7f6cda95fa3c9b3b1d1ff872d44e7e71d", - "reference": "166a07a7f6cda95fa3c9b3b1d1ff872d44e7e71d", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/c11b2cb92a8873b9ea16b25012b5b13dce7a2935", + "reference": "c11b2cb92a8873b9ea16b25012b5b13dce7a2935", "shasum": "" }, "require": { @@ -12437,7 +13015,7 @@ "type": "open_collective" } ], - "time": "2022-12-05T07:46:36+00:00" + "time": "2022-12-05T18:46:34+00:00" }, { "name": "laravel-lang/publisher", diff --git a/config/comments.php b/config/comments.php new file mode 100644 index 00000000..4308fca9 --- /dev/null +++ b/config/comments.php @@ -0,0 +1,145 @@ + ['👍', '🔥', '🥳', '👀', '😍', '⚡'], + + /* + * You can allow guests to post comments. They will not be able to use + * reactions. + */ + 'allow_anonymous_comments' => false, + + /* + * A comment transformer is a class that will transform the comment text + * for example from Markdown to HTML + */ + 'comment_transformers' => [ + MarkdownToHtmlTransformer::class, + ], + + /* + * After all transformers have transformed the comment text, it will + * be passed to this class to sanitize it + */ + 'comment_sanitizer' => CommentSanitizer::class, + + /* + * Comments need to be approved before they are shown. You can opt + * to have all comments to be approved automatically. + */ + 'automatically_approve_all_comments' => true, + + 'models' => [ + /* + * The class that will comment on other things. Typically, this + * would be a user model. + */ + 'commentator' => App\Models\User::class, + + /* + * The field to use to display the name from the commentator model. + */ + 'name' => 'name', + + /* + * The model you want to use as a Comment model. It needs to be or + * extend the `Spatie\Comments\Models\Comment::class` model. + */ + 'comment' => Comment::class, + + /* + * The model you want to use as a React model. It needs to be or + * extend the `Spatie\Comments\Models\Reaction::class` model. + */ + 'reaction' => Reaction::class, + + /* + * The model you want to use as an opt-out model. It needs to be or + * extend the `Spatie\Comments\Models\CommentNotificationSubscription::class` model. + */ + 'comment_notification_subscription' => CommentNotificationSubscription::class, + ], + + 'notifications' => [ + /* + * When somebody creates a comment, a notification will be sent to other persons + * that commented on the same thing. + */ + 'enabled' => true, + + 'notifications' => [ + 'pending_comment' => PendingCommentNotification::class, + 'approved_comment' => ApprovedCommentNotification::class, + ], + + /* + * Here you can configure the notifications that will be sent via mail. + */ + 'mail' => [ + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + ], + ], + + 'pagination' => [ + /* + * Here you can configure the number of results to show before + * pagination links are displayed. + */ + 'results' => 10000, + + /* + * If you have multiple paginators on the same page, you can configure the + * query string page name to avoid conflicts with the other paginator. + * For example, you could set the page_name to be 'comments_page'. + */ + 'page_name' => 'page', + + /* + * You can choose a different pagination theme like "simple-tailwind" or build + * a custom pagination "vendor.livewire.custom-pagination" See the livewire + * docs for more information: https://laravel-livewire.com/docs/2.x/pagination#custom-pagination-view + */ + 'theme' => 'tailwind', + ], + + /* + * Unless you need fine-grained customization, you don't need to change + * these action classes. If you do change any of them, make sure that your class + * extends the original action class. + */ + 'actions' => [ + 'process_comment' => ProcessCommentAction::class, + 'send_notifications_for_pending_comment' => SendNotificationsForPendingCommentAction::class, + 'approve_comment' => ApproveCommentAction::class, + 'reject_comment' => RejectCommentAction::class, + 'send_notifications_for_approved_comment' => SendNotificationsForApprovedCommentAction::class, + ], + + 'gravatar' => [ + /* + * Here you can choose which default image to show when a user does not have a Gravatar profile. + * See the Gravatar docs for further information https://en.gravatar.com/site/implement/images/ + */ + 'default_image' => 'mp', + ], +]; diff --git a/config/markdown.php b/config/markdown.php new file mode 100644 index 00000000..8d9068e6 --- /dev/null +++ b/config/markdown.php @@ -0,0 +1,92 @@ + [ + /* + * To highlight code, we'll use Shiki under the hood. Make sure it's installed. + * + * More info: https://spatie.be/docs/laravel-markdown/v1/installation-setup + */ + 'enabled' => true, + + /* + * The name of or path to a Shiki theme + * + * More info: https://github.com/shikijs/shiki/blob/master/docs/themes.md + */ + 'theme' => 'github-dark', + ], + + /* + * When enabled, anchor links will be added to all titles + */ + 'add_anchors_to_headings' => true, + + /* + * These options will be passed to the league/commonmark package which is + * used under the hood to render markdown. + * + * More info: https://spatie.be/docs/laravel-markdown/v1/using-the-blade-component/passing-options-to-commonmark + */ + 'commonmark_options' => [], + + /* + * Rendering markdown to HTML can be resource intensive. By default + * we'll cache the results. + * + * You can specify the name of a cache store here. When set to `null` + * the default cache store will be used. If you do not want to use + * caching set this value to `false`. + */ + 'cache_store' => null, + + /* + * This class will convert markdown to HTML + * + * You can change this to a class of your own to greatly + * customize the rendering process + * + * More info: https://spatie.be/docs/laravel-markdown/v1/advanced-usage/customizing-the-rendering-process + */ + 'renderer_class' => Spatie\LaravelMarkdown\MarkdownRenderer::class, + + /* + * These extensions should be added to the markdown environment. A valid + * extension implements League\CommonMark\Extension\ExtensionInterface + * + * More info: https://commonmark.thephpleague.com/2.1/extensions/overview/ + */ + 'extensions' => [ + // + ], + + /* + * These block renderers should be added to the markdown environment. A valid + * renderer implements League\CommonMark\Renderer\NodeRendererInterface; + * + * More info: https://commonmark.thephpleague.com/2.1/customization/rendering/ + */ + 'block_renderers' => [ + // ['class' => FencedCode::class, 'renderer' => new MyCustomCodeRenderer(), 'priority' => 0] + ], + + /* + * These inline renderers should be added to the markdown environment. A valid + * renderer implements League\CommonMark\Renderer\NodeRendererInterface; + * + * More info: https://commonmark.thephpleague.com/2.1/customization/rendering/ + */ + 'inline_renderers' => [ + // ['class' => FencedCode::class, 'renderer' => new MyCustomCodeRenderer(), 'priority' => 0] + ], + + /* + * These inline parsers should be added to the markdown environment. A valid + * parser implements League\CommonMark\Renderer\InlineParserInterface; + * + * More info: https://commonmark.thephpleague.com/2.3/customization/inline-parsing/ + */ + 'inline_parsers' => [ + // ['parser' => new MyCustomInlineParser(), 'priority' => 0] + ], +]; diff --git a/database/factories/OrangePillFactory.php b/database/factories/OrangePillFactory.php new file mode 100644 index 00000000..0af15b09 --- /dev/null +++ b/database/factories/OrangePillFactory.php @@ -0,0 +1,34 @@ + User::factory(), + 'book_case_id' => BookCase::factory(), + 'date' => $this->faker->dateTime(), + 'amount' => $this->faker->randomNumber(), + ]; + } +} diff --git a/database/migrations/2022_12_06_222651_create_book_cases_table.php b/database/migrations/2022_12_06_222651_create_book_cases_table.php index 39b865f5..6b72d9b1 100644 --- a/database/migrations/2022_12_06_222651_create_book_cases_table.php +++ b/database/migrations/2022_12_06_222651_create_book_cases_table.php @@ -14,6 +14,10 @@ class CreateBookCasesTable extends Migration { Schema::create('book_cases', function (Blueprint $table) { $table->id(); + $table->boolean('orange_pilled') + ->default(false); + $table->unsignedInteger('orange_pilled_amount') + ->default(0); $table->string('title'); $table->double('lat'); $table->double('lon'); diff --git a/database/migrations/2022_12_07_095709_create_orange_pills_table.php b/database/migrations/2022_12_07_095709_create_orange_pills_table.php new file mode 100644 index 00000000..fd920455 --- /dev/null +++ b/database/migrations/2022_12_07_095709_create_orange_pills_table.php @@ -0,0 +1,39 @@ +id(); + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignId('book_case_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->dateTime('date'); + $table->unsignedInteger('amount'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::dropIfExists('orange_pills'); + } +} diff --git a/database/migrations/2022_12_07_122722_create_comments_tables.php b/database/migrations/2022_12_07_122722_create_comments_tables.php new file mode 100644 index 00000000..cf826bd2 --- /dev/null +++ b/database/migrations/2022_12_07_122722_create_comments_tables.php @@ -0,0 +1,47 @@ +id(); + $this->nullableMorphs($table, 'commentator', 'commentator_comments'); + $table->morphs('commentable'); + $table->foreignId('parent_id')->nullable()->constrained('comments')->onDelete('cascade'); + $table->longText('original_text'); + $table->longText('text'); + $table->json('extra')->nullable(); + $table->timestamp('approved_at')->nullable(); + $table->timestamps(); + }); + + Schema::create('reactions', function (Blueprint $table) { + $table->id(); + $this->nullableMorphs($table, 'commentator', 'commentator_reactions'); + $table->foreignId('comment_id')->references('id')->on('comments')->cascadeOnDelete(); + $table->string('reaction')->collation('C.UTF-8'); + $table->timestamps(); + }); + + Schema::create('comment_notification_subscriptions', function(Blueprint $table) { + $table->id(); + $table->morphs('commentable', 'cn_subscriptions_commentable'); + $table->morphs('subscriber', 'cn_subscriptions_subscriber'); + $table->string('type'); + + $table->timestamps(); + }); + } + + protected function nullableMorphs(Blueprint $table, string $name, string $indexName): void + { + $table->string("{$name}_type")->nullable(); + $table->unsignedBigInteger("{$name}_id")->nullable(); + $table->index(["{$name}_type", "{$name}_id"], $indexName); + } +}; diff --git a/draft.yaml b/draft.yaml index 145d95b9..e69de29b 100644 --- a/draft.yaml +++ b/draft.yaml @@ -1,17 +0,0 @@ -models: - BookCase: - title: string - lat: double - lon: json - address: text - type: string - open: string - comment: text - contact: text - bcz: text - digital: boolean - icontype: string - deactivated: boolean - deactreason: string - entrytype: string - homepage: string diff --git a/lang/de.json b/lang/de.json index 3b931524..dea854bd 100644 --- a/lang/de.json +++ b/lang/de.json @@ -1,4 +1,5 @@ { + "Orange Pill Book Case": "Bücher-Schrank wurde orange pilled.", "Book": "Buch", "Article": "Artikel", "Markdown Article": "Interner Artikel", diff --git a/public/vendor/maps/css/index.css b/public/vendor/maps/css/index.css new file mode 100644 index 00000000..0c66cacd --- /dev/null +++ b/public/vendor/maps/css/index.css @@ -0,0 +1 @@ +.gnw-map-service{height:400px;position:relative}.gnw-map-service__google{background:#e5e3df}.gnw-map-service__bing,.gnw-map-service__mapquest,.gnw-map-service__osm{background:#ddd}.gnw-map-service__yandex{background:#f3f1ed}.gnw-map-service__mapkit{background:#f8f4ec}.gnw-map{height:inherit}.gnw-map .mk-map-view>.syrup-canvas{margin-left:-50%} diff --git a/public/vendor/maps/js/index.js b/public/vendor/maps/js/index.js new file mode 100644 index 00000000..b1dd9dd6 --- /dev/null +++ b/public/vendor/maps/js/index.js @@ -0,0 +1,2 @@ +/*! For license information please see index.js.LICENSE.txt */ +!function(){var t,e={557:function(t,e,i){"use strict";var n=function(t){return void 0!==t},o=function(t){var e=t.closest(".fade");e.classList.add("show"),e.classList.add("in")},s=function(t){return window.open(t,"_blank")},r=function(t){return n(console)&&console.error("[laravel-maps] error:",t)};function a(t,e,i,n){var o=new CustomEvent("LaravelMaps:MarkerClicked",{detail:{element:e,map:i,marker:n,service:t}});window.dispatchEvent(o)}function h(t,e,i){return h=u()?Reflect.construct.bind():function(t,e,i){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return i&&l(o,i.prototype),o},h.apply(null,arguments)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function l(t,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},l(t,e)}function c(t){return function(t){if(Array.isArray(t))return d(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return d(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return d(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);iOpenStreetMap contributors'}).addTo(u),u}r("leaflet is undefined")},createMarker:m.bind(null,"osm")},g=(i(977),"bing"),v={name:g,createMap:function(t,e){if(n(window.L)){var i=e.lat,s=e.lng,a=e.zoom,h=e.service,u=window.L.map(t,{}).on("load",(function(){o(t)})).setView([i,s],a);return window.L.tileLayer.bing({bingMapsKey:h.key,imagerySet:"CanvasLight"}).addTo(u),u}r("leaflet is undefined")},createMarker:m.bind(null,g)},y="mapquest",w={name:y,createMap:function(t,e){if(n(window.L)){if(n(window.L.mapquest)){var i=e.lat,s=e.lng,a=e.zoom,h=e.service;return window.L.mapquest.key=h.key,window.L.mapquest.map(t,{center:[i,s],zoom:a,layers:window.L.mapquest.tileLayer(h.type||"map")}).on("load",(function(){o(t)})).setView([i,s],a)}r("mapquest is undefined")}else r("leaflet is undefined")},createMarker:m.bind(null,y)},x="yandex",b={name:x,createMap:function(t,e){if(n(window.ymaps)){var i=e.lat,o=e.lng,s=e.zoom;return new window.ymaps.Map(t,{center:[i,o],zoom:s})}r("ymaps is undefined")},createMarker:function(t,e,i){var n=i.title,o=i.lat,r=i.lng,h=i.url,u=i.popup,l=i.icon,c=i.iconSize,d=i.iconAnchor,_={hintContent:n},p={};l&&(p.iconLayout="default#imageWithContent",p.iconImageHref=l,c&&(p.iconImageSize=c),d&&(p.iconImageOffset=d)),u&&(_.balloonContentBody=u);var m=new window.ymaps.Placemark([o,r],_,p);return m.events.add("click",(function(i){a(x,t,e,m),u||h&&s(h)})),e.geoObjects.add(m),m}},L="mapkit",P={name:L,createMap:function(t,e){if(n(window.mapkit)){var i=e.lat,s=e.lng,a=e.zoom,h=e.service;window.mapkit.init({authorizationCallback:function(t){t(h.key)}}),window.mapkit.addEventListener("configuration-change",(function(e){"Initialized"===e.status&&o(t)}));var u=new window.mapkit.Map(t,{mapType:h.type||window.mapkit.Map.MapTypes.Standard}),l=Math.exp(Math.log(360)-a*Math.LN2);return u.region=new window.mapkit.CoordinateRegion(new window.mapkit.Coordinate(i,s),new window.mapkit.CoordinateSpan(l,l)),u}r("mapkit is undefined")},createMarker:function(t,e,i){var n=i.title,o=i.lat,r=i.lng,h=i.url,u=i.popup,l=i.icon,c=new window.mapkit.Coordinate(o,r),d={title:n};l&&(d.glyphImage={1:l});var _=new window.mapkit.MarkerAnnotation(c,d);return _.addEventListener("select",(function(i){a(L,t,e,_),u||h&&s(h)})),e.showItems([_]),_}},T=function(t){return"string"==typeof t?parseFloat(t):t},M=function(t){try{var e=function(t){return JSON.parse(t.dataset.mapGoogle||t.dataset.mapOsm||t.dataset.mapBing||t.dataset.mapMapquest||t.dataset.mapYandex||t.dataset.mapMapkit)}(t),i=T(e.lat),n=T(e.lng),o="string"==typeof(h=e.zoom)?parseFloat(h):h,s=function(t){var e=JSON.parse(t.dataset.mapService);return{key:e.key,type:e.type}}(t),a=function(t){return(JSON.parse(t.dataset.mapMarkers)||[]).map((function(t){var e=T(t.lat),i=T(t.lng),n=t.title,o=t.url,s=t.popup,r=t.icon,a=t.icon_size,h=t.icon_anchor;return{title:n,lat:e,lng:i,url:o,popup:s,icon:r,iconSize:a||t.iconSize,iconAnchor:h||t.iconAnchor}}))}(t);return{lat:i,lng:n,zoom:o,service:s,markers:a}}catch(t){r(t)}var h},z=(i(882),function(t){var e=function(e){return function(t,e,i){if(n(t)){var o=M(t);if(n(o)){var s=e(t,o);if(n(s)){var a=o.markers.map((function(e){return i(t,s,e)}));return{map:s,markers:a}}r("map is undefined")}else r("map data is undefined")}else r("element is undefined")}(e,t.createMap,t.createMarker)},i="[data-map-".concat(t.name,"]");Array.prototype.slice.call(document.querySelectorAll(i)||[]).forEach((function(i){if(!0!==i.getAttribute("data-map-initialized")){var n=e(i);!function(t,e,i){var n=new CustomEvent("LaravelMaps:MapInitialized",{detail:{element:e,map:i.map,markers:i.markers||[],service:t}});window.dispatchEvent(n)}(t.name,i,n),i.setAttribute("data-map-initialized",!0)}}))});window.onGoogleMapsReady=function(){return z(p)},window.onYandexMapsReady=function(){return z(b)},window.addEventListener("DOMContentLoaded",(function(){z(f),z(v),z(w),z(P)}))},882:function(){!function(){if(window.CustomEvent)return!1;function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}t.prototype=window.Event.prototype,window.CustomEvent=t}()},568:function(t){t.exports=function(t,e){return!(t[0]>e[2]||t[2]e[3])}},144:function(t,e){var i,n,o;n=[e,t],i=function(t,e){"use strict";var i={timeout:5e3,jsonpCallback:"callback",jsonpCallbackFunction:null};function n(){return"jsonp_"+Date.now()+"_"+Math.ceil(1e5*Math.random())}function o(t){try{delete window[t]}catch(e){window[t]=void 0}}function s(t){var e=document.getElementById(t);e&&document.getElementsByTagName("head")[0].removeChild(e)}function r(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=t,a=e.timeout||i.timeout,h=e.jsonpCallback||i.jsonpCallback,u=void 0;return new Promise((function(i,l){var c=e.jsonpCallbackFunction||n(),d=h+"_"+c;window[c]=function(t){i({ok:!0,json:function(){return Promise.resolve(t)}}),u&&clearTimeout(u),s(d),o(c)},r+=-1===r.indexOf("?")?"?":"&";var _=document.createElement("script");_.setAttribute("src",""+r+h+"="+c),e.charset&&_.setAttribute("charset",e.charset),e.nonce&&_.setAttribute("nonce",e.nonce),e.referrerPolicy&&_.setAttribute("referrerPolicy",e.referrerPolicy),_.id=d,document.getElementsByTagName("head")[0].appendChild(_),u=setTimeout((function(){l(new Error("JSONP request to "+t+" timed out")),o(c),s(d),window[c]=function(){o(c)}}),a),_.onerror=function(){l(new Error("JSONP request to "+t+" failed")),o(c),s(d),u&&clearTimeout(u)}}))}e.exports=r},void 0===(o="function"==typeof i?i.apply(e,n):i)||(t.exports=o)},977:function(t,e,i){var n=i(243),o=i(144),s=i(568);var r=["Aerial","AerialWithLabels","AerialWithLabelsOnDemand","Road","RoadOnDemand","CanvasLight","CanvasDark","CanvasGray","OrdnanceSurvey"],a=["AerialWithLabelsOnDemand","RoadOnDemand"];n.TileLayer.Bing=n.TileLayer.extend({options:{bingMapsKey:null,imagerySet:"Aerial",culture:"en-US",minZoom:1,minNativeZoom:1,maxNativeZoom:19},statics:{METADATA_URL:"https://dev.virtualearth.net/REST/v1/Imagery/Metadata/{imagerySet}?key={bingMapsKey}&include=ImageryProviders&uriScheme=https&c={culture}",POINT_METADATA_URL:"https://dev.virtualearth.net/REST/v1/Imagery/Metadata/{imagerySet}/{lat},{lng}?zl={z}&key={bingMapsKey}&uriScheme=https&c={culture}"},initialize:function(t){if("string"==typeof t&&(t={bingMapsKey:t}),t&&t.BingMapsKey&&(t.bingMapsKey=t.BingMapsKey,console.warn("use options.bingMapsKey instead of options.BingMapsKey")),!t||!t.bingMapsKey)throw new Error("Must supply options.BingMapsKey");if(t=n.setOptions(this,t),r.indexOf(t.imagerySet)<0)throw new Error("'"+t.imagerySet+"' is an invalid imagerySet, see https://github.com/digidem/leaflet-bing-layer#parameters");t&&t.style&&a.indexOf(t.imagerySet)<0&&console.warn("Dynamic styles will only work with these imagerySet choices: "+a.join(", "));var e=n.Util.template(n.TileLayer.Bing.METADATA_URL,{bingMapsKey:this.options.bingMapsKey,imagerySet:this.options.imagerySet,culture:this.options.culture});this._imageryProviders=[],this._attributions=[],this._fetch=o(e,{jsonpCallback:"jsonp"}).then((function(t){return t.json()})).then(this._metaDataOnLoad.bind(this)).catch(console.error.bind(console)),n.Browser.android||this.on("tileunload",this._onTileRemove)},createTile:function(t,e){var i=document.createElement("img");return n.DomEvent.on(i,"load",n.bind(this._tileOnLoad,this,e,i)),n.DomEvent.on(i,"error",n.bind(this._tileOnError,this,e,i)),this.options.crossOrigin&&(i.crossOrigin=""),i.alt="",this._url?i.src=this.getTileUrl(t):this._fetch.then(function(){i.src=this.getTileUrl(t)}.bind(this)).catch((function(t){console.error(t),e(t)})),i},getTileUrl:function(t){var e=function(t,e,i){for(var n="",o=i;o>0;o--){var s=0,r=1<-1||t.attributionControl.addAttribution(e)})),o.filter((function(e){n.indexOf(e)>-1||t.attributionControl.removeAttribution(e)})),this._attributions=n}.bind(this))}},_getAttributions:function(t,e){return this._imageryProviders.reduce((function(i,n){for(var o=0;o=n.coverageAreas[o].zoomMin&&e<=n.coverageAreas[o].zoomMax)return i.push(n.attribution),i;return i}),[])}}),n.tileLayer.bing=function(t){return new n.TileLayer.Bing(t)},t.exports=n.TileLayer.Bing},243:function(t,e){!function(t){"use strict";var e="1.9.2";function i(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function B(t,e,i){return t instanceof Z?t:g(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function I(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=R(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=R(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,St=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,e),window.removeEventListener("testPassiveEventSupport",u,e)}catch(t){}return t}(),Et=!!document.createElement("canvas").getContext,At=!(!document.createElementNS||!X("svg").createSVGRect),Zt=!!At&&((Q=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(Q.firstChild&&Q.firstChild.namespaceURI)),Ot=!At&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),Bt=0===navigator.platform.indexOf("Mac"),It=0===navigator.platform.indexOf("Linux");function Rt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Dt={ie:et,ielt9:it,edge:nt,webkit:ot,android:st,android23:rt,androidStock:ht,opera:ut,chrome:lt,gecko:ct,safari:dt,phantom:_t,opera12:pt,win:mt,ie3d:ft,webkit3d:gt,gecko3d:vt,any3d:yt,mobile:wt,mobileWebkit:xt,mobileWebkit3d:bt,msPointer:Lt,pointer:Pt,touch:Mt,touchNative:Tt,mobileOpera:zt,mobileGecko:Ct,retina:kt,passiveEvents:St,canvas:Et,svg:At,vml:Ot,inlineSvg:Zt,mac:Bt,linux:It},Nt=Dt.msPointer?"MSPointerDown":"pointerdown",jt=Dt.msPointer?"MSPointerMove":"pointermove",Ht=Dt.msPointer?"MSPointerUp":"pointerup",Ft=Dt.msPointer?"MSPointerCancel":"pointercancel",Wt={touchstart:Nt,touchmove:jt,touchend:Ht,touchcancel:Ft},Ut={touchstart:te,touchmove:Qt,touchend:Qt,touchcancel:Qt},qt={},Vt=!1;function Gt(t,e,i){return"touchstart"===e&&$t(),Ut[e]?(i=Ut[e].bind(this,i),t.addEventListener(Wt[e],i,!1),i):(console.warn("wrong event specified:",e),L.Util.falseFn)}function Kt(t,e,i){Wt[e]?t.removeEventListener(Wt[e],i,!1):console.warn("wrong event specified:",e)}function Yt(t){qt[t.pointerId]=t}function Jt(t){qt[t.pointerId]&&(qt[t.pointerId]=t)}function Xt(t){delete qt[t.pointerId]}function $t(){Vt||(document.addEventListener(Nt,Yt,!0),document.addEventListener(jt,Jt,!0),document.addEventListener(Ht,Xt,!0),document.addEventListener(Ft,Xt,!0),Vt=!0)}function Qt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],qt)e.touches.push(qt[i]);e.changedTouches=[e],t(e)}}function te(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Ye(e),Qt(t,e)}function ee(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return t=n,n.type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}var ie=200;function ne(t,e){t.addEventListener("dblclick",e);var i,n=0;function o(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var o=Xe(t);if(!o.some((function(t){return t instanceof HTMLLabelElement&&t.attributes.for}))||o.some((function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement}))){var s=Date.now();s-n<=ie?2==++i&&e(ee(t)):i=1,n=s}}}else i=t.detail}return t.addEventListener("click",o),{dblclick:e,simDblclick:o}}function oe(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var se,re,ae,he,ue,le=ze(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=ze(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function me(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function fe(t){var e=t.parentNode;e&&e.removeChild(t)}function ge(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ve(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ye(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function we(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=Pe(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function xe(t,e){if(void 0!==t.classList)for(var i=d(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function ti(t){return Dt.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Qe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function ei(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var ii={__proto__:null,on:Ne,off:He,stopPropagation:Ve,disableScrollPropagation:Ge,disableClickPropagation:Ke,preventDefault:Ye,stop:Je,getPropagationPath:Xe,getMousePosition:$e,getWheelDelta:ti,isExternalTarget:ei,addListener:Ne,removeListener:He},ni=A.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Se(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=M(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,N(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=B((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=B(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=R([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=e.divideBy(2).round(),r=n.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o(this._handleGeolocationResponse,this),n=o(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,n,t):navigator.geolocation.getCurrentPosition(e,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new j(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),fe(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)fe(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=me("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new D(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=N(t),i=B(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=R(this.project(a,n),this.project(r,n)).getSize(),l=Dt.any3d?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new I(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(H(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(B(t),e)},layerPointToLatLng:function(t){var e=B(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(H(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(H(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(N(t))},distance:function(t,e){return this.options.crs.distance(H(t),H(e))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(H(t)))},mouseEventToContainerPoint:function(t){return $e(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=_e(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Ne(e,"scroll",this._onScroll,this),this._containerId=r(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Dt.any3d,xe(t,"leaflet-container"+(Dt.touch?" leaflet-touch":"")+(Dt.retina?" leaflet-retina":"")+(Dt.ielt9?" leaflet-oldie":"")+(Dt.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=pe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),ke(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(xe(t.markerPane,"leaflet-zoom-hide"),xe(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){ke(this._mapPane,new Z(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){ke(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[r(this._container)]=this;var e=t?He:Ne;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Dt.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=M((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,a=!1;s;){if((i=this._targets[r(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!ei(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n.length||a||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Oe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,e);if(n){for(var r=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=Dt.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){be(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=me("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=le,i=this._proxy.style[e];Ce(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){fe(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Ce(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(M((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,xe(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&be(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function si(t,e){return new oi(t,e)}var ri=k.extend({options:{position:"topright"},initialize:function(t){_(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return xe(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(fe(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ai=function(t){return new ri(t)};oi.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=me("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=me("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)fe(this._controlCorners[t]);fe(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var hi=ri.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(r(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+r(this),n),this._layerControlInputs.push(e),e.layerId=r(t.layer),Ne(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),ui=function(t,e,i){return new hi(t,e,i)},li=ri.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=me("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=me("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ke(s),Ne(s,"click",Je),Ne(s,"click",o,this),Ne(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";be(this._zoomInButton,e),be(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(xe(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(xe(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});oi.mergeOptions({zoomControl:!0}),oi.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new li,this.addControl(this.zoomControl))}));var ci=function(t){return new li(t)},di=ri.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=me("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=me("div",e,i)),t.imperial&&(this._iScale=me("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),_i=function(t){return new di(t)},pi='',mi=ri.extend({options:{position:"bottomright",prefix:''+(Dt.inlineSvg?pi+" ":"")+"Leaflet"},initialize:function(t){_(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=me("div","leaflet-control-attribution"),Ke(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});oi.mergeOptions({attributionControl:!0}),oi.addInitHook((function(){this.options.attributionControl&&(new mi).addTo(this)}));var fi=function(t){return new mi(t)};ri.Layers=hi,ri.Zoom=li,ri.Scale=di,ri.Attribution=mi,ai.layers=ui,ai.zoom=ci,ai.scale=_i,ai.attribution=fi;var gi=k.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});gi.addTo=function(t,e){return t.addHandler(e,this),this};var vi,yi={Events:E},wi=Dt.touch?"touchstart mousedown":"mousedown",xi=A.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){_(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Ne(this._dragStartTarget,wi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(xi._dragging===this&&this.finishDrag(!0),He(this._dragStartTarget,wi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!we(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)xi._dragging===this&&this.finishDrag();else if(!(xi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(xi._dragging=this,this._preventOutline&&Oe(this._element),Ae(),se(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ie(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._startPos=Se(this._element),this._parentScale=Re(i);var n="mousedown"===t.type;Ne(document,n?"mousemove":"touchmove",this._onMove,this),Ne(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)h&&(s=r,h=a);h>i&&(e[s]=1,Mi(t,e,i,n,s),Mi(t,e,i,s,o))}function zi(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function Ei(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function Ai(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new Z(s,r)}function Zi(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Oi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Zi(t)}function Bi(t,e){var i,n,o,s,r,a,h,u;if(!t||0===t.length)throw new Error("latlngs not passed");Zi(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var l=[];for(var c in t)l.push(e.project(H(t[c])));var d=l.length;for(i=0,n=0;in){h=(s-n)/o,u=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}return e.unproject(B(u))}var Ii={__proto__:null,simplify:bi,pointToSegmentDistance:Li,closestPointOnSegment:Pi,clipSegment:Ci,_getEdgeIntersection:ki,_getBitCode:Si,_sqClosestPointOnSegment:Ai,isFlat:Zi,_flat:Oi,polylineCenter:Bi};function Ri(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new j(a*i,t.x*i/n)}},Fi={__proto__:null,LonLat:ji,Mercator:Hi,SphericalMercator:V},Wi=i({},U,{code:"EPSG:3395",projection:Hi,transformation:function(){var t=.5/(Math.PI*Hi.R);return K(t,.5,-t,.5)}()}),Ui=i({},U,{code:"EPSG:4326",projection:ji,transformation:K(1/180,1,-1/180,.5)}),qi=i({},W,{projection:ji,transformation:K(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});W.Earth=U,W.EPSG3395=Wi,W.EPSG3857=Y,W.EPSG900913=J,W.EPSG4326=Ui,W.Simple=qi;var Vi=A.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[r(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[r(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});oi.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=r(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=r(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return r(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?g(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof j&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){un.prototype._setLatLngs.call(this,t),Zi(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Zi(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new I(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||un.prototype._containsPoint.call(this,t,!0)}});function dn(t,e){return new cn(t,e)}var _n=Yi.extend({initialize:function(t,e){_(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=g(t)?t:t.features;if(o){for(e=0,i=o.length;e0?n:[e.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var r=0;ro?(e.height=o+"px",xe(t,s)):be(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();ke(this._container,e.add(i))},_adjustPan:function(t){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var e=this._map,i=parseInt(pe(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+i,o=this._containerWidth,s=new Z(this._containerLeft,-n-this._containerBottom);s._add(Se(this._container));var r=e.layerPointToContainerPoint(s),a=B(this.options.autoPanPadding),h=B(this.options.autoPanPaddingTopLeft||a),u=B(this.options.autoPanPaddingBottomRight||a),l=e.getSize(),c=0,d=0;r.x+o+u.x>l.x&&(c=r.x+o-l.x+u.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+n+u.y>l.y&&(d=r.y+n-l.y+u.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&e.fire("autopanstart").panBy([c,d],{animate:t&&"moveend"===t.type})}},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Zn=function(t,e){return new An(t,e)};oi.mergeOptions({closePopupOnClick:!0}),oi.include({openPopup:function(t,e,i){return this._initOverlay(An,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Vi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(An,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Je(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof on?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var On=En.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){En.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){En.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=En.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=me("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+r(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=B(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new Z(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new Z(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return N(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new D(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(fe(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){xe(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,Dt.ielt9&&this.options.opacity<1&&Te(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&M(o(this._tileReady,this,t,null,s)),ke(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(Te(i.el,0),z(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(xe(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Dt.ielt9||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?h(t.x,this._wrapX):t.x,this._wrapY?h(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new I(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Nn(t){return new Dn(t)}var jn=Dn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=_(this,e)).detectRetina&&Dt.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Ne(i,"load",o(this._tileOnLoad,this,e,i)),Ne(i,"error",o(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:Dt.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return f(this._url,i(e,this.options))},_tileOnLoad:function(t,e){Dt.ielt9?setTimeout(o(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=u,e.onerror=u,!e.complete)){e.src=y;var i=this._tiles[t].coords;fe(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",y),Dn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==y))return Dn.prototype._tileReady.call(this,t,e,i)}});function Hn(t,e){return new jn(t,e)}var Fn=jn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=_(this,e)).detectRetina&&Dt.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,jn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=R(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ui?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=jn.prototype.getTileUrl.call(this,t);return a+p(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});function Wn(t,e){return new Fn(t,e)}jn.WMS=Fn,Hn.wms=Wn;var Un=Vi.extend({options:{padding:.1},initialize:function(t){_(this,t),r(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&xe(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));Dt.any3d?Ce(this._container,s,i):ke(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new I(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),qn=Un.extend({options:{tolerance:0},getEvents:function(){var t=Un.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Un.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ne(t,"mousemove",this._onMouseMove,this),Ne(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ne(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,fe(this._container),He(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){Un.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Dt.retina?2:1;ke(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Dt.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){Un.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[r(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[r(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Kn={_initContainer:function(){this._container=me("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Un.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Gn("shape");xe(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Gn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;fe(e),t.removeInteractiveTarget(e),delete this._layers[r(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Gn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Gn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ve(t._container)},_bringToBack:function(t){ye(t._container)}},Yn=Dt.vml?Gn:X,Jn=Un.extend({_initContainer:function(){this._container=Yn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Yn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){fe(this._container),He(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){Un.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),ke(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Yn("path");t.options.className&&xe(e,t.options.className),t.options.interactive&&xe(e,"leaflet-interactive"),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){fe(t._path),t.removeInteractiveTarget(t._path),delete this._layers[r(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,$(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ve(t._path)},_bringToBack:function(t){ye(t._path)}});function Xn(t){return Dt.svg||Dt.vml?new Jn(t):null}Dt.vml&&Jn.include(Kn),oi.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Vn(t)||Xn(t)}});var $n=cn.extend({initialize:function(t,e){cn.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=N(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Qn(t,e){return new $n(t,e)}Jn.create=Yn,Jn.pointsToPath=$,_n.geometryToLayer=pn,_n.coordsToLatLng=fn,_n.coordsToLatLngs=gn,_n.latLngToCoords=vn,_n.latLngsToCoords=yn,_n.getFeature=wn,_n.asFeature=xn,oi.mergeOptions({boxZoom:!0});var to=gi.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ne(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){He(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){fe(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),se(),Ae(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ne(document,{contextmenu:Je,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=me("div","leaflet-zoom-box",this._container),xe(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new I(this._point,this._startPoint),i=e.getSize();ke(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(fe(this._box),be(this._container,"leaflet-crosshair")),re(),Ze(),He(document,{contextmenu:Je,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var e=new D(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});oi.addInitHook("addHandler","boxZoom",to),oi.mergeOptions({doubleClickZoom:!0});var eo=gi.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});oi.addInitHook("addHandler","doubleClickZoom",eo),oi.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var io=gi.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new xi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}xe(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){be(this._map._container,"leaflet-grab"),be(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=N(this._map.options.maxBounds);this._offsetLimit=R(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});oi.addInitHook("addHandler","scrollWheelZoom",oo);var so=600;oi.mergeOptions({tapHold:Dt.touchNative&&Dt.safari&&Dt.mobile,tapTolerance:15});var ro=gi.extend({addHooks:function(){Ne(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){He(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new Z(e.clientX,e.clientY),this._holdTimeout=setTimeout(o((function(){this._cancel(),this._isTapValid()&&(Ne(document,"touchend",Ye),Ne(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),so),Ne(document,"touchend touchcancel contextmenu",this._cancel,this),Ne(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){He(document,"touchend",Ye),He(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),He(document,"touchend touchcancel contextmenu",this._cancel,this),He(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});oi.addInitHook("addHandler","tapHold",ro),oi.mergeOptions({touchZoom:Dt.touch,bounceAtZoomLimits:!0});var ao=gi.extend({addHooks:function(){xe(this._map._container,"leaflet-touch-zoom"),Ne(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){be(this._map._container,"leaflet-touch-zoom"),He(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Ne(document,"touchmove",this._onTouchMove,this),Ne(document,"touchend touchcancel",this._onTouchEnd,this),Ye(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var a=o(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=M(a,this,!0),Ye(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,z(this._animRequest),He(document,"touchmove",this._onTouchMove,this),He(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});oi.addInitHook("addHandler","touchZoom",ao),oi.BoxZoom=to,oi.DoubleClickZoom=eo,oi.Drag=io,oi.Keyboard=no,oi.ScrollWheelZoom=oo,oi.TapHold=ro,oi.TouchZoom=ao,t.Bounds=I,t.Browser=Dt,t.CRS=W,t.Canvas=qn,t.Circle=an,t.CircleMarker=sn,t.Class=k,t.Control=ri,t.DivIcon=In,t.DivOverlay=En,t.DomEvent=ii,t.DomUtil=De,t.Draggable=xi,t.Evented=A,t.FeatureGroup=Yi,t.GeoJSON=_n,t.GridLayer=Dn,t.Handler=gi,t.Icon=Xi,t.ImageOverlay=Tn,t.LatLng=j,t.LatLngBounds=D,t.Layer=Vi,t.LayerGroup=Gi,t.LineUtil=Ii,t.Map=oi,t.Marker=en,t.Mixin=yi,t.Path=on,t.Point=Z,t.PolyUtil=Ni,t.Polygon=cn,t.Polyline=un,t.Popup=An,t.PosAnimation=ni,t.Projection=Fi,t.Rectangle=$n,t.Renderer=Un,t.SVG=Jn,t.SVGOverlay=kn,t.TileLayer=jn,t.Tooltip=On,t.Transformation=G,t.Util=C,t.VideoOverlay=zn,t.bind=o,t.bounds=R,t.canvas=Vn,t.circle=hn,t.circleMarker=rn,t.control=ai,t.divIcon=Rn,t.extend=i,t.featureGroup=Ji,t.geoJSON=Ln,t.geoJson=Pn,t.gridLayer=Nn,t.icon=$i,t.imageOverlay=Mn,t.latLng=H,t.latLngBounds=N,t.layerGroup=Ki,t.map=si,t.marker=nn,t.point=B,t.polygon=dn,t.polyline=ln,t.popup=Zn,t.rectangle=Qn,t.setOptions=_,t.stamp=r,t.svg=Xn,t.svgOverlay=Sn,t.tileLayer=Hn,t.tooltip=Bn,t.transformation=K,t.version=e,t.videoOverlay=Cn;var ho=window.L;t.noConflict=function(){return window.L=ho,this},window.L=t}(e)},925:function(){}},i={};function n(t){var o=i[t];if(void 0!==o)return o.exports;var s=i[t]={exports:{}};return e[t].call(s.exports,s,s.exports,n),s.exports}n.m=e,t=[],n.O=function(e,i,o,s){if(!i){var r=1/0;for(l=0;l=s)&&Object.keys(n.O).every((function(t){return n.O[t](i[h])}))?i.splice(h--,1):(a=!1,s0&&t[l-1][2]>s;l--)t[l]=t[l-1];t[l]=[i,o,s]},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t={396:0,425:0};n.O.j=function(e){return 0===t[e]};var e=function(e,i){var o,s,r=i[0],a=i[1],h=i[2],u=0;if(r.some((function(e){return 0!==t[e]}))){for(o in a)n.o(a,o)&&(n.m[o]=a[o]);if(h)var l=h(n)}for(e&&e(i);u - @php - $a = (bool)rand(0, 1); - @endphp - @if($a) - - @endif - @if(!$a) - - @endif +
+ @auth + @if($row->orange_pilled) + + @endif + @if(!$row->orange_pilled) + + @endif +
+ 💊 Orange Pill Now + Kommentare +
+ @else +
+ + + {{ __('noch keine Bitcoin-Bücher') }} + +
+ @endauth
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index df9680cc..839a22a3 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -9,32 +9,46 @@ @googlefonts + @mapscripts + @vite(['resources/css/app.css', 'resources/js/app.js']) + @livewireStyles + @mapstyles - +
@auth diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php index 921b2cd4..2c2c44d3 100644 --- a/resources/views/layouts/guest.blade.php +++ b/resources/views/layouts/guest.blade.php @@ -10,17 +10,51 @@ + @vite(['resources/css/app.css', 'resources/js/app.js']) @livewireStyles - + {{ $slot }} @stack('modals') @livewireScripts diff --git a/resources/views/livewire/frontend/comment-book-case.blade.php b/resources/views/livewire/frontend/comment-book-case.blade.php new file mode 100644 index 00000000..006075c1 --- /dev/null +++ b/resources/views/livewire/frontend/comment-book-case.blade.php @@ -0,0 +1,123 @@ +
+ + + {{-- HEADER --}} +
+
+
+
+
+ + + + +
+ @auth +
+ @else + + @endauth +
+
+
+
+ {{-- MAIN --}} +
+
+
+ + + Zurück zur Übersicht + +
+ +
+ +
+ {{--
+ +
--}} +
+
+

Name

+

{{ $bookCase->title }}

+

Link

+

+ {{ $this->url_to_absolute($bookCase->homepage) }} +

+

Adresse

+

{{ $bookCase->address }}

+
+
+
+ +
+ @map([ + 'lat' => $bookCase->lat, + 'lng' => $bookCase->lon, + 'zoom' => 24, + 'markers' => [ + [ + 'title' => $bookCase->title, + 'lat' => $bookCase->lat, + 'lng' => $bookCase->lon, + 'url' => 'https://gonoware.com', + 'icon' => asset('img/btc-logo-6219386_1280.png'), + 'icon_size' => [42, 42], + ], + ], + ]) +
+ +
+ +
+ +
+
+
+ {{-- FOOTER --}} + +
diff --git a/resources/views/livewire/frontend/header.blade.php b/resources/views/livewire/frontend/header.blade.php index 7bf81ef8..4321e9fd 100644 --- a/resources/views/livewire/frontend/header.blade.php +++ b/resources/views/livewire/frontend/header.blade.php @@ -33,6 +33,8 @@ class="{{ request()->routeIs('search.event') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Termine Bibliothek + Bücher-Schränke @if(auth()->user()?->is_lecturer) Dozenten-Bibliothek diff --git a/resources/views/livewire/frontend/search-book-case.blade.php b/resources/views/livewire/frontend/search-book-case.blade.php index bc613c15..436fafee 100644 --- a/resources/views/livewire/frontend/search-book-case.blade.php +++ b/resources/views/livewire/frontend/search-book-case.blade.php @@ -35,6 +35,8 @@ class="{{ request()->routeIs('search.event') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Termine Bibliothek + Bücher-Schränke @if(auth()->user()?->is_lecturer) Dozenten-Bibliothek @@ -79,7 +81,7 @@ init() { this.earth = new Earth(this.$refs.myearth, { location : {lat: {{ $bookCases->first()->lat }}, lng: {{ $bookCases->first()->lon }}}, - zoom: 2, + zoom: 1, light: 'sun', polarLimit: 0.6, diff --git a/resources/views/modals/book_cases/orange_pill.blade.php b/resources/views/modals/book_cases/orange_pill.blade.php new file mode 100644 index 00000000..e1d89d5c --- /dev/null +++ b/resources/views/modals/book_cases/orange_pill.blade.php @@ -0,0 +1,42 @@ + + +
+ {{ __('Orange Pill Book Case') }} +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+
+ + + + 💊 @lang('Orange Pill Now') + + +
diff --git a/resources/views/vendor/comments/components/avatar.blade.php b/resources/views/vendor/comments/components/avatar.blade.php new file mode 100644 index 00000000..7c3d4f08 --- /dev/null +++ b/resources/views/vendor/comments/components/avatar.blade.php @@ -0,0 +1,15 @@ +@php + $defaultImage = Spatie\Comments\Support\Config::getGravatarDefaultImage(); + $defaultAvatar = "https://www.gravatar.com/avatar/unknown?d={$defaultImage}"; + + if ($user = auth()->user()) { + $segment = md5(strtolower($user->email)); + $defaultAvatar = "https://www.gravatar.com/avatar/{$segment}?d={$defaultImage}"; + } +@endphp + +avatar diff --git a/resources/views/vendor/comments/components/button.blade.php b/resources/views/vendor/comments/components/button.blade.php new file mode 100644 index 00000000..3ca9d0e8 --- /dev/null +++ b/resources/views/vendor/comments/components/button.blade.php @@ -0,0 +1,12 @@ + diff --git a/resources/views/vendor/comments/components/date.blade.php b/resources/views/vendor/comments/components/date.blade.php new file mode 100644 index 00000000..9f8fe9cf --- /dev/null +++ b/resources/views/vendor/comments/components/date.blade.php @@ -0,0 +1,7 @@ + diff --git a/resources/views/vendor/comments/components/editors/easymde.blade.php b/resources/views/vendor/comments/components/editors/easymde.blade.php new file mode 100644 index 00000000..d315053a --- /dev/null +++ b/resources/views/vendor/comments/components/editors/easymde.blade.php @@ -0,0 +1,104 @@ +
+
+ +
+ +
+ You can use Markdown +
+
+ +@push('comments-scripts') + +@endpush diff --git a/resources/views/vendor/comments/components/editors/textarea.blade.php b/resources/views/vendor/comments/components/editors/textarea.blade.php new file mode 100644 index 00000000..9da655da --- /dev/null +++ b/resources/views/vendor/comments/components/editors/textarea.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/close.blade.php b/resources/views/vendor/comments/components/icons/close.blade.php new file mode 100644 index 00000000..ee17689f --- /dev/null +++ b/resources/views/vendor/comments/components/icons/close.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/copy.blade.php b/resources/views/vendor/comments/components/icons/copy.blade.php new file mode 100644 index 00000000..3ed38263 --- /dev/null +++ b/resources/views/vendor/comments/components/icons/copy.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/delete.blade.php b/resources/views/vendor/comments/components/icons/delete.blade.php new file mode 100644 index 00000000..42d105a1 --- /dev/null +++ b/resources/views/vendor/comments/components/icons/delete.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/edit.blade.php b/resources/views/vendor/comments/components/icons/edit.blade.php new file mode 100644 index 00000000..eaf2288f --- /dev/null +++ b/resources/views/vendor/comments/components/icons/edit.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/menu.blade.php b/resources/views/vendor/comments/components/icons/menu.blade.php new file mode 100644 index 00000000..a3aaf2ca --- /dev/null +++ b/resources/views/vendor/comments/components/icons/menu.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/icons/smile.blade.php b/resources/views/vendor/comments/components/icons/smile.blade.php new file mode 100644 index 00000000..511534cf --- /dev/null +++ b/resources/views/vendor/comments/components/icons/smile.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/vendor/comments/components/modal.blade.php b/resources/views/vendor/comments/components/modal.blade.php new file mode 100644 index 00000000..94d1b4d3 --- /dev/null +++ b/resources/views/vendor/comments/components/modal.blade.php @@ -0,0 +1,14 @@ +
$compact ?? false, 'is-left' => $left ?? false, 'is-bottom' => $bottom ?? false]) + {{ $attributes }} +> + @isset($title) +

+ {{ $title }} +

+ @endisset +
+ {{ $slot }} +
+
diff --git a/resources/views/vendor/comments/components/scripts.blade.php b/resources/views/vendor/comments/components/scripts.blade.php new file mode 100644 index 00000000..fa709f54 --- /dev/null +++ b/resources/views/vendor/comments/components/scripts.blade.php @@ -0,0 +1,9 @@ + +@stack('comments-scripts') diff --git a/resources/views/vendor/comments/components/styles.blade.php b/resources/views/vendor/comments/components/styles.blade.php new file mode 100644 index 00000000..2eb158a0 --- /dev/null +++ b/resources/views/vendor/comments/components/styles.blade.php @@ -0,0 +1,3 @@ + diff --git a/resources/views/vendor/comments/extraCommentHeaderActions.blade.php b/resources/views/vendor/comments/extraCommentHeaderActions.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/vendor/comments/livewire/comment.blade.php b/resources/views/vendor/comments/livewire/comment.blade.php new file mode 100644 index 00000000..57a4898a --- /dev/null +++ b/resources/views/vendor/comments/livewire/comment.blade.php @@ -0,0 +1,196 @@ +
+
+ @if($showAvatar) + + @endif +
+
+ @if($url = $comment->commentatorProperties()?->url) + + {{ $comment->commentatorProperties()->name }} + + @else + {{ $comment->commentatorProperties()?->name ?? __('comments::comments.guest') }} + @endif + +
+ @if($comment->isPending()) +
+ + {{__('comments::comments.awaits_approval')}} + + + @can('reject', $comment) + + @endcan + @can('approve', $comment) + + @endcan + +
+ @endif + @if($isEditing) +
+
+ + @error('editText') +

+ {{ $message }} +

+ @enderror + + {{ __('comments::comments.edit_comment') }} + + + {{ __('comments::comments.cancel') }} + + +
+ @else +
+ {!! $comment->text !!} +
+ @if($writable || $comment->reactions->summary()->isNotEmpty()) +
+ @foreach($comment->reactions->summary() as $summary) +
$summary['commentator_reacted']]) + > + {{ $summary['reaction'] }} {{ $summary['count'] }} +
+ @endforeach + @if($writable) +
+ @can('react', $comment) + + +
+ @foreach(config('comments.allowed_reactions') as $reaction) + @php + $commentatorReacted = ! is_bool(array_search( + $reaction, + array_column($comment->reactions->toArray(), 'reaction'), + )); + @endphp + + @endforeach +
+
+ @endcan +
+ @endif +
+ @endif + @endif +
+
+ + @if($showReplies) + + @if($comment->isTopLevel()) + +
+ @if($this->newestFirst) + @if(auth()->check() || config('comments.allow_anonymous_comments')) + @include('comments::livewire.partials.replyTo') + @endif + + @endif + @foreach ($comment->nestedComments as $nestedComment) + @can('see', $nestedComment) + + @endcan + @endforeach + @if(! $this->newestFirst) + @if(auth()->check() || config('comments.allow_anonymous_comments')) + @include('comments::livewire.partials.replyTo') + @endif + @endif +
+ @endif + @endif +
diff --git a/resources/views/vendor/comments/livewire/comments.blade.php b/resources/views/vendor/comments/livewire/comments.blade.php new file mode 100644 index 00000000..9404da6d --- /dev/null +++ b/resources/views/vendor/comments/livewire/comments.blade.php @@ -0,0 +1,61 @@ +@php + use Spatie\Comments\Enums\NotificationSubscriptionType; +@endphp + +
+
+ @if($writable) + @auth + @if($showNotificationOptions) +
+ + + @foreach(NotificationSubscriptionType::cases() as $case) + + @endforeach + +
+ @endif + @endif + @endauth +
+ + @if ($newestFirst) + @include('comments::livewire.partials.newComment') + @endif + + @if($comments->count()) + @foreach($comments as $comment) + @can('see', $comment) + + @endcan + @endforeach + + @if ($comments->hasPages()) + {{ $comments->links() }} + @endif + + @else +

{{ $noCommentsText ?? __('comments::comments.no_comments_yet') }}

+ @endif + + @if (! $newestFirst) + @include('comments::livewire.partials.newComment') + @endif +
diff --git a/resources/views/vendor/comments/livewire/partials/newComment.blade.php b/resources/views/vendor/comments/livewire/partials/newComment.blade.php new file mode 100644 index 00000000..c6172b9b --- /dev/null +++ b/resources/views/vendor/comments/livewire/partials/newComment.blade.php @@ -0,0 +1,24 @@ +@if($writable) + @can('createComment', $model) +
+ @if($showAvatars) + + @endif +
+ + @error('text') +

+ {{ $message }} +

+ @enderror + + {{ __('comments::comments.create_comment') }} + + +
+ @endcan +@endif diff --git a/resources/views/vendor/comments/livewire/partials/replyTo.blade.php b/resources/views/vendor/comments/livewire/partials/replyTo.blade.php new file mode 100644 index 00000000..e3c6ddf9 --- /dev/null +++ b/resources/views/vendor/comments/livewire/partials/replyTo.blade.php @@ -0,0 +1,47 @@ +@if($writable) +
+ @if($showAvatar) + + @endif +
+
+ +
+
+ + @error('replyText') +

+ {{ $message }} +

+ @enderror + + {{ __('comments::comments.create_reply') }} + + + {{ __('comments::comments.cancel') }} + +
+
+
+
+
+@endif diff --git a/resources/views/vendor/comments/mail/approvedCommentNotification.blade.php b/resources/views/vendor/comments/mail/approvedCommentNotification.blade.php new file mode 100644 index 00000000..4e18abed --- /dev/null +++ b/resources/views/vendor/comments/mail/approvedCommentNotification.blade.php @@ -0,0 +1,24 @@ +@component('mail::message') +# {{ __('comments::notifications.approved_comment_mail_title', [ + 'commentable_name' => $topLevelComment->commentable->commentableName(), + 'commentable_url' => $topLevelComment->commentable->commentUrl(), + 'commentator_name' => $comment->commentatorProperties()->name ?? 'anonymous', +]) }} + +{{ __('comments::notifications.approved_comment_mail_body', [ + 'commentable_name' => $topLevelComment->commentable->commentableName(), + 'commentable_url' => $topLevelComment->commentable->commentUrl(), + 'commentator_name' => $comment->commentatorProperties()->name ?? 'anonymous', +]) }} + +{!! $comment->text !!} + +@component('mail::button', ['url' => $comment->commentUrl()]) +{{ __('comments::notifications.view_comment') }} +@endcomponent + +@if($unsubscribeUrl = $commentator->unsubscribeFromCommentNotificationsUrl($comment)) +Unsubscribe from receive notification about {{ $topLevelComment->commentable->commentableName() }} +@endif + +@endcomponent diff --git a/resources/views/vendor/comments/mail/pendingCommentNotification.blade.php b/resources/views/vendor/comments/mail/pendingCommentNotification.blade.php new file mode 100644 index 00000000..ea3eb0c3 --- /dev/null +++ b/resources/views/vendor/comments/mail/pendingCommentNotification.blade.php @@ -0,0 +1,20 @@ +@component('mail::message') + +{{ __('comments::notifications.pending_comment_mail_body', [ + 'commentable_name' => $topLevelComment->commentable->commentableName(), + 'commentator_name' => $comment->commentatorProperties()->name ?? 'anonymous', +]) }} + +[{{ __('comments::notifications.view_comment') }}]({{ $comment->commentUrl() }}) + +{!! $comment->text !!} + +@component('mail::button', ['url' => $comment->approveUrl()]) + {{ __('comments::notifications.approve_comment') }} +@endcomponent + +@component('mail::button', ['url' => $comment->rejectUrl()]) + {{ __('comments::notifications.reject_comment') }} +@endcomponent + +@endcomponent diff --git a/resources/views/vendor/comments/signed/approval/approveComment.blade.php b/resources/views/vendor/comments/signed/approval/approveComment.blade.php new file mode 100644 index 00000000..b2d1e25f --- /dev/null +++ b/resources/views/vendor/comments/signed/approval/approveComment.blade.php @@ -0,0 +1,5 @@ + + + The comment has been approved. + + diff --git a/resources/views/vendor/comments/signed/approval/approveCommentConfirmation.blade.php b/resources/views/vendor/comments/signed/approval/approveCommentConfirmation.blade.php new file mode 100644 index 00000000..feadafed --- /dev/null +++ b/resources/views/vendor/comments/signed/approval/approveCommentConfirmation.blade.php @@ -0,0 +1,15 @@ + + + Do you want to approve the comment? + +
+ @csrf + +
+ +
+ + + diff --git a/resources/views/vendor/comments/signed/approval/rejectComment.blade.php b/resources/views/vendor/comments/signed/approval/rejectComment.blade.php new file mode 100644 index 00000000..91c7048c --- /dev/null +++ b/resources/views/vendor/comments/signed/approval/rejectComment.blade.php @@ -0,0 +1,5 @@ + + + The comment has been rejected. + + diff --git a/resources/views/vendor/comments/signed/approval/rejectCommentApproval.blade.php b/resources/views/vendor/comments/signed/approval/rejectCommentApproval.blade.php new file mode 100644 index 00000000..a49a06b3 --- /dev/null +++ b/resources/views/vendor/comments/signed/approval/rejectCommentApproval.blade.php @@ -0,0 +1,14 @@ + + + Do you want to reject the comment? + +
+ @csrf + +
+ +
+ + diff --git a/resources/views/vendor/comments/signed/notificationSubscription/unsubscribe.blade.php b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribe.blade.php new file mode 100644 index 00000000..23c836cc --- /dev/null +++ b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribe.blade.php @@ -0,0 +1,5 @@ + + + You have been unsubscribed. + + diff --git a/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAll.blade.php b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAll.blade.php new file mode 100644 index 00000000..5e76192c --- /dev/null +++ b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAll.blade.php @@ -0,0 +1,5 @@ + + + You have been unsubscribed from every comment notification. + + diff --git a/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAllApproval.blade.php b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAllApproval.blade.php new file mode 100644 index 00000000..ed1672af --- /dev/null +++ b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeAllApproval.blade.php @@ -0,0 +1,14 @@ + + + Do you want to unsubscribe from every comment notification? + +
+ @csrf + +
+ +
+ + diff --git a/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeApproval.blade.php b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeApproval.blade.php new file mode 100644 index 00000000..e68876ff --- /dev/null +++ b/resources/views/vendor/comments/signed/notificationSubscription/unsubscribeApproval.blade.php @@ -0,0 +1,14 @@ + + + Do you want to unsubscribe? + +
+ @csrf + +
+ +
+ + diff --git a/resources/views/vendor/comments/signed/signedLayout.blade.php b/resources/views/vendor/comments/signed/signedLayout.blade.php new file mode 100644 index 00000000..d634ae1b --- /dev/null +++ b/resources/views/vendor/comments/signed/signedLayout.blade.php @@ -0,0 +1,10 @@ + + + + + +
+ {{ $slot }} +
+ + diff --git a/routes/web.php b/routes/web.php index fba03b74..a4bb22c0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -42,6 +42,9 @@ Route::get('/dozenten', \App\Http\Livewire\Guest\Welcome::class) Route::get('/buecher-schraenke', \App\Http\Livewire\Frontend\SearchBookCase::class) ->name('search.bookcases'); +Route::get('/buecher-schrank/{bookCase}', \App\Http\Livewire\Frontend\CommentBookCase::class) + ->name('comment.bookcase'); + Route::middleware([ 'auth:sanctum', config('jetstream.auth_session'),